version 1.2, 2011/01/17 20:43:09
|
version 1.8.2.1, 2024/07/04 17:30:17
|
Line 41 use Apache::lonlocal;
|
Line 41 use Apache::lonlocal;
|
use LONCAPA::lonmetadata(); |
use LONCAPA::lonmetadata(); |
use HTML::Entities(); |
use HTML::Entities(); |
use Apache::lonnavmaps; |
use Apache::lonnavmaps; |
use Apache::londocs(); |
use Apache::lonnavdisplay(); |
use Apache::lonindexer(); |
use Apache::lonindexer(); |
use LONCAPA; |
use LONCAPA; |
|
|
Line 54 my $totalfound;
|
Line 54 my $totalfound;
|
sub menu { |
sub menu { |
my $scrout=''; |
my $scrout=''; |
if ($env{'request.course.id'}) { |
if ($env{'request.course.id'}) { |
my %lt=&Apache::lonlocal::texthash('srch' => 'Search', |
my %lt=&Apache::lonlocal::texthash( |
'header' => 'Course Search', |
'srch' => 'Search', |
'note' => 'Enter terms or phrases, then press "Search" below', |
'note' => 'Search terms', |
|
'options' => 'Options', |
'use' => 'use related words', |
'use' => 'use related words', |
'full' =>'fulltext search (time consuming)', |
'full' =>'fulltext search (time consuming)', |
'disc' => 'search discussion postings (resources and discussion boards)', |
'disc' => 'search discussion postings (resources and discussion boards)', |
); |
); |
$scrout.=(<<ENDCOURSESEARCH); |
$scrout.=(<<ENDCOURSESEARCH); |
<form name="loncapa_search" method="post" action="/adm/searchcourse"> |
<form name="loncapa_search" method="post" action="/adm/searchcourse"> |
<center> |
|
<hr /> |
|
<h1>$lt{'header'}</h1> |
|
<input type="hidden" name="phase" value="results" /> |
<input type="hidden" name="phase" value="results" /> |
<p> |
|
$lt{'note'}. |
|
</p> |
|
<table> |
|
<tr><td> |
|
ENDCOURSESEARCH |
ENDCOURSESEARCH |
$scrout.=' '. |
$scrout.=&Apache::lonhtmlcommon::start_pick_box(). |
&Apache::lonhtmlcommon::textbox('courseexp', |
&Apache::lonhtmlcommon::row_title($lt{'note'}). |
$env{'form.courseexp'},40); |
&Apache::lonhtmlcommon::textbox('courseexp', |
my $crscheckbox = |
$env{'form.courseexp'},40). |
&Apache::lonhtmlcommon::checkbox('crsfulltext', |
&Apache::lonhtmlcommon::row_closure(). |
$env{'form.crsfulltext'}); |
&Apache::lonhtmlcommon::row_title($lt{'options'}). |
my $relcheckbox = |
'<label>'.&Apache::lonhtmlcommon::checkbox('crsfulltext',$env{'form.crsfulltext'}).$lt{'full'}."</label><br />\n". |
&Apache::lonhtmlcommon::checkbox('crsrelated', |
'<label>'.&Apache::lonhtmlcommon::checkbox('crsrelated',$env{'form.crsrelated'}).$lt{'use'}."</label><br />\n". |
$env{'form.crsrelated'}); |
'<label>'.&Apache::lonhtmlcommon::checkbox('crsdiscuss',$env{'form.crsdiscuss'}).$lt{'disc'}."</label><br />\n". |
my $discheckbox = |
&Apache::lonhtmlcommon::end_pick_box(); |
&Apache::lonhtmlcommon::checkbox('crsdiscuss', |
|
$env{'form.crsrelated'}); |
|
$scrout.=(<<ENDENDCOURSE); |
$scrout.=(<<ENDENDCOURSE); |
</td></tr> |
|
<tr><td><label>$relcheckbox $lt{'use'}</label></td><td></td></tr> |
|
<tr><td><label>$crscheckbox $lt{'full'}</label></td><td></td></tr> |
|
<tr><td><label>$discheckbox $lt{'disc'}</label></td><td></td></tr> |
|
</table> |
|
<p> |
<p> |
<input type="submit" name="coursesubmit" value='$lt{'srch'}' /> |
<input type="submit" name="coursesubmit" value='$lt{'srch'}' /> |
</p> |
</p> |
</center> |
|
</form> |
</form> |
ENDENDCOURSE |
ENDENDCOURSE |
} |
} |
Line 151 sub course_search {
|
Line 136 sub course_search {
|
foreach (sort(keys(%hash))) { |
foreach (sort(keys(%hash))) { |
if ($c->aborted()) { last; } |
if ($c->aborted()) { last; } |
if (($_=~/^src\_(.+)$/)) { |
if (($_=~/^src\_(.+)$/)) { |
if ($hash{'randomout_'.$1} & !$env{'request.role.adv'}) { |
my $rid = $1; |
|
if ($hash{'randomout_'.$rid} & !$env{'request.role.adv'}) { |
next; |
next; |
} |
} |
my $symb=&make_symb($1); |
my $symb=&make_symb($rid); |
&checkonthis($r,$1,$hash{$_},0,&Apache::lonnet::gettitle($symb), |
&checkonthis($r,$rid,$hash{$_},0,&Apache::lonnet::gettitle($symb), |
$fulltext,$symb,@allwords); |
$fulltext,$symb,@allwords); |
} |
} |
} |
} |
Line 243 sub course_search {
|
Line 229 sub course_search {
|
$r->print('<div class="LC_error">'.&mt('An error occurred retrieving information about resources in the course.').'<br />'.&mt('It is recommended that you [_1]re-initialize the course[_2] and then try your search again.','<a href="/adm/roles">','</a>').'</div>'); |
$r->print('<div class="LC_error">'.&mt('An error occurred retrieving information about resources in the course.').'<br />'.&mt('It is recommended that you [_1]re-initialize the course[_2] and then try your search again.','<a href="/adm/roles">','</a>').'</div>'); |
} |
} |
} |
} |
|
|
# =================================================== Done going through course |
|
$r->print(&Apache::loncommon::end_page()); |
|
} |
} |
|
|
# =============================== This pulls up a resource and its dependencies |
# =============================== This pulls up a resource and its dependencies |
Line 279 sub checkonthis {
|
Line 262 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 ($href =~ /\.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="cat">'.($title?$title:$url). |
'</a><br />'); |
'</a><br />'); |
Line 329 sub handler {
|
Line 320 sub handler {
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['phase']); |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['phase']); |
$r->print(&Apache::loncommon::start_page("$crstype Search")); |
$r->print(&Apache::loncommon::start_page("$crstype Search")); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
|
if ($env{'request.course.id'} eq '') { |
|
$r->print(&Apache::lonhtmlcommon::breadcrumbs("$crstype Search")); |
|
$r->print(&Apache::loncommon::end_page()); |
|
my $requrl = $r->uri; |
|
$env{'user.error.msg'} = "$requrl:bre:0:0:Course not initialized"; |
|
$env{'user.reinit'} = 1; |
|
return HTTP_NOT_ACCEPTABLE; |
|
} |
&Apache::lonhtmlcommon::add_breadcrumb( |
&Apache::lonhtmlcommon::add_breadcrumb( |
{ href => '/adm/searchcourse', |
{ href => '/adm/searchcourse', |
text => "$crstype Search"}); |
text => "$crstype Search"}); |
Line 338 sub handler {
|
Line 337 sub handler {
|
text => 'Search Results'}); |
text => 'Search Results'}); |
} |
} |
$r->print(&Apache::lonhtmlcommon::breadcrumbs("$crstype Search")); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs("$crstype Search")); |
&Apache::londocs::startContentScreen($r,'coursesearch'); |
&Apache::lonnavdisplay::startContentScreen($r,'coursesearch'); |
if ($env{'form.phase'} eq 'results') { |
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
&course_search($r); |
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
|
my $clientip = &Apache::lonnet::get_requestor_ip($r); |
|
my ($blocked,$blocktext) = |
|
&Apache::loncommon::blocking_status('search',$clientip,$cnum,$cdom); |
|
if ($blocked) { |
|
my $checkrole = "cm./$cdom/$cnum"; |
|
if ($env{'request.course.sec'} ne '') { |
|
$checkrole .= "/$env{'request.course.sec'}"; |
|
} |
|
if ((&Apache::lonnet::allowed('evb',undef,undef,$checkrole)) && |
|
($env{'request.role'} !~ m{^st\./$cdom/$cnum})) { |
|
undef($blocked); |
|
} |
|
} |
|
if ($blocked) { |
|
$r->print($blocktext); |
|
} elsif ($env{'form.phase'} eq 'results') { |
|
&course_search($r); |
} else { |
} else { |
$r->print(&menu()); |
$r->print(&menu()); |
} |
} |
&Apache::londocs::endContentScreen($r); |
&Apache::lonnavdisplay::endContentScreen($r); |
$r->print(&Apache::loncommon::end_page()); |
$r->print(&Apache::loncommon::end_page()); |
return OK; |
return OK; |
} |
} |