version 1.7, 2021/11/30 15:55:37
|
version 1.15, 2025/02/04 03:07:44
|
Line 67 sub menu {
|
Line 67 sub menu {
|
<input type="hidden" name="phase" value="results" /> |
<input type="hidden" name="phase" value="results" /> |
ENDCOURSESEARCH |
ENDCOURSESEARCH |
$scrout.=&Apache::lonhtmlcommon::start_pick_box(). |
$scrout.=&Apache::lonhtmlcommon::start_pick_box(). |
&Apache::lonhtmlcommon::row_title($lt{'note'}). |
&Apache::lonhtmlcommon::row_title('<label for="courseexp">'. |
|
$lt{'note'}.'</label>'). |
&Apache::lonhtmlcommon::textbox('courseexp', |
&Apache::lonhtmlcommon::textbox('courseexp', |
$env{'form.courseexp'},40). |
$env{'form.courseexp'},40,'id="courseexp"'). |
&Apache::lonhtmlcommon::row_closure(). |
&Apache::lonhtmlcommon::row_closure(). |
&Apache::lonhtmlcommon::row_title($lt{'options'}). |
&Apache::lonhtmlcommon::row_title($lt{'options'}). |
'<label>'.&Apache::lonhtmlcommon::checkbox('crsfulltext',$env{'form.crsfulltext'}).$lt{'full'}."</label><br />\n". |
'<label>'.&Apache::lonhtmlcommon::checkbox('crsfulltext',$env{'form.crsfulltext'}).$lt{'full'}."</label><br />\n". |
Line 123 sub course_search {
|
Line 124 sub course_search {
|
my $discuss=$env{'form.crsdiscuss'}; |
my $discuss=$env{'form.crsdiscuss'}; |
my @allwords=($search_string,@New_Words); |
my @allwords=($search_string,@New_Words); |
$totalfound=0; |
$totalfound=0; |
|
my $target = 'cat'; |
|
if ((($env{'request.lti.login'}) && ($env{'request.lti.target'} eq 'iframe')) || |
|
(($env{'request.deeplink.login'}) && ($env{'request.deeplink.target'} eq '_self'))) { |
|
$target = '_self'; |
|
} |
|
|
$r->print( |
$r->print( |
'<hr /><center><font size="+2" face="arial">'. |
'<hr /><center><font size="+2" face="arial">'. |
Line 133 sub course_search {
|
Line 139 sub course_search {
|
my $c=$r->connection; |
my $c=$r->connection; |
if (tie(%hash,'GDBM_File',$env{'request.course.fn'}.".db", |
if (tie(%hash,'GDBM_File',$env{'request.course.fn'}.".db", |
&GDBM_READER(),0640)) { |
&GDBM_READER(),0640)) { |
foreach (sort(keys(%hash))) { |
foreach my $key (sort(keys(%hash))) { |
if ($c->aborted()) { last; } |
last if ($c->aborted()); |
if (($_=~/^src\_(.+)$/)) { |
if ($key =~ /^src\_(.+)$/) { |
if ($hash{'randomout_'.$1} & !$env{'request.role.adv'}) { |
my $rid = $1; |
next; |
unless ($env{'request.role.adv'}) { |
|
next if ($hash{'randomout_'.$rid} || $hash{'deeplinkout_'.$rid}); |
|
if (!$env{'request.deeplink.login'} && $hash{'deeplinkonly_'.$rid}) { |
|
my ($value) = map { &unescape($_); } split(/:/,$hash{'deeplinkonly_'.$rid}); |
|
my ($state,$others,$listed) = split(/,/,$value); |
|
next if (($state eq 'only') && |
|
(($listed eq 'absent') || ($listed eq 'grades'))); |
|
} |
} |
} |
my $symb=&make_symb($1); |
my $symb=&make_symb($rid); |
&checkonthis($r,$1,$hash{$_},0,&Apache::lonnet::gettitle($symb), |
&checkonthis($r,$rid,$hash{$key},0,&Apache::lonnet::gettitle($symb), |
$fulltext,$symb,@allwords); |
$fulltext,$symb,$target,@allwords); |
} |
} |
} |
} |
untie(%hash); |
untie(%hash); |
Line 213 sub course_search {
|
Line 226 sub course_search {
|
} |
} |
$url .= &escape($resource->symb()); |
$url .= &escape($resource->symb()); |
my $title = $resource->compTitle(); |
my $title = $resource->compTitle(); |
$r->print('<br /><a href="'.$url.'" target="cat">'. |
$r->print('<br /><a href="'.$url.'" target="'.$target.'">'. |
($title?$title:$url).'</a> - '. |
($title?$title:$url).'</a> - '. |
$disctype.'<br />'); |
$disctype.'<br />'); |
$totaldiscussions++; |
$totaldiscussions++; |
Line 233 sub course_search {
|
Line 246 sub course_search {
|
# =============================== This pulls up a resource and its dependencies |
# =============================== This pulls up a resource and its dependencies |
|
|
sub checkonthis { |
sub checkonthis { |
my ($r,$id,$url,$level,$title,$fulltext,$symb,@allwords)=@_; |
my ($r,$id,$url,$level,$title,$fulltext,$symb,$target,@allwords)=@_; |
$alreadyseen{$id}=1; |
$alreadyseen{$id}=1; |
if (&Apache::loncommon::connection_aborted($r)) { return; } |
if (&Apache::loncommon::connection_aborted($r)) { return; } |
$r->rflush(); |
$r->rflush(); |
Line 261 sub checkonthis {
|
Line 274 sub checkonthis {
|
} |
} |
my $href=$url; |
my $href=$url; |
if ($hash{'encrypted_'.$id} && !$env{'request.role.adv'}) { |
if ($hash{'encrypted_'.$id} && !$env{'request.role.adv'}) { |
$href=&Apache::lonenc::encrypted($href) |
$href=&Apache::lonenc::encrypted($href); |
.'?symb='.&Apache::lonenc::encrypted($symb); |
if ($url =~ /\.sequence$/) { |
|
$href .= '?navmap=1'; |
|
} else { |
|
$href .= '?symb='.&Apache::lonenc::encrypted($symb); |
|
} |
} else { |
} else { |
$href.='?symb='.&escape($symb); |
if ($href =~ /\.sequence$/) { |
|
$href .= '?navmap=1'; |
|
} else { |
|
$href .= '?symb='.&escape($symb); |
|
} |
} |
} |
$r->print('<a href="'.$href.'" target="cat">'.($title?$title:$url). |
$r->print('<a href="'.$href.'" target="'.$target.'">'.($title?$title:$url). |
'</a><br />'); |
'</a><br />'); |
$totalfound++; |
$totalfound++; |
} elsif ($fulltext) { |
} elsif ($fulltext) { |
Line 276 sub checkonthis {
|
Line 297 sub checkonthis {
|
# Check also the dependencies of this one |
# Check also the dependencies of this one |
my $dependencies= |
my $dependencies= |
&Apache::lonnet::metadata($url,'dependencies'); |
&Apache::lonnet::metadata($url,'dependencies'); |
foreach (split(/\,/,$dependencies)) { |
foreach my $item (split(/\,/,$dependencies)) { |
if (($_=~/^\/res\//) && (!$alreadyseen{$id})) { |
if (($item =~ /^\/res\//) && (!$alreadyseen{$id})) { |
&checkonthis($r,$id,$_,$level+1,'',$fulltext,undef,@allwords); |
&checkonthis($r,$id,$item,$level+1,'',$fulltext,undef,$target,@allwords); |
} |
} |
} |
} |
} |
} |
|
|
sub checkwords { |
sub checkwords { |
my ($result,$applies,@allwords) = @_; |
my ($result,$applies,@allwords) = @_; |
foreach (@allwords) { |
foreach my $word (@allwords) { |
if ($_=~/\w/) { |
if ($word =~ /\w/) { |
if ($result=~/$_/si) { |
if ($result =~ /$word/si) { |
$applies++; |
$applies++; |
} |
} |
} |
} |