version 1.317, 2009/10/22 13:48:55
|
version 1.331, 2011/12/09 01:04:27
|
Line 78 use HTML::Entities();
|
Line 78 use HTML::Entities();
|
use Parse::RecDescent; |
use Parse::RecDescent; |
use Apache::lonnavmaps; |
use Apache::lonnavmaps; |
use Apache::lonindexer(); |
use Apache::lonindexer(); |
|
use Apache::lonwishlist(); |
use LONCAPA; |
use LONCAPA; |
|
|
###################################################################### |
###################################################################### |
Line 118 sub handler {
|
Line 119 sub handler {
|
# This is set and used in &handler() and is also used in |
# This is set and used in &handler() and is also used in |
# &output_results(). |
# &output_results(). |
|
|
my $loaderror=&Apache::lonnet::overloaderror($r); |
|
if ($loaderror) { return $loaderror; } |
|
# |
# |
my $closebutton; # button that closes the search window |
my $closebutton; # button that closes the search window |
# This button is different for the RAT compared to |
# This button is different for the RAT compared to |
Line 153 sub handler {
|
Line 152 sub handler {
|
## Initialize global variables |
## Initialize global variables |
## |
## |
my $domain = $r->dir_config('lonDefDomain'); |
my $domain = $r->dir_config('lonDefDomain'); |
$diropendb= "/home/httpd/perl/tmp/". |
my $temp_file_dir = LONCAPA::tempdir(); |
|
$diropendb= $temp_file_dir . |
"$env{'user.domain'}_$env{'user.name'}_sel_res.db"; |
"$env{'user.domain'}_$env{'user.name'}_sel_res.db"; |
# |
# |
# set the name of the persistent database |
# set the name of the persistent database |
Line 164 sub handler {
|
Line 164 sub handler {
|
$env{'form.persistent_db_id'} = time; |
$env{'form.persistent_db_id'} = time; |
} |
} |
|
|
my $persistent_db_file = "/home/httpd/perl/tmp/". |
my $persistent_db_file = $temp_file_dir . |
&escape($domain). |
&escape($domain). |
'_'.&escape($env{'user.name'}). |
'_'.&escape($env{'user.name'}). |
'_'.$env{'form.persistent_db_id'}.'_persistent_search.db'; |
'_'.$env{'form.persistent_db_id'}.'_persistent_search.db'; |
Line 175 sub handler {
|
Line 175 sub handler {
|
if (&Apache::lonnet::allowed('bre',$env{'request.role.domain'})) { |
if (&Apache::lonnet::allowed('bre',$env{'request.role.domain'})) { |
push(@allowed_searches,'res'); |
push(@allowed_searches,'res'); |
} |
} |
if (exists($env{'request.course.id'}) && $env{'request.course.id'} ne '') { |
|
push(@allowed_searches,'course'); |
|
} |
|
my $crumb_text = 'Portfolio Search'; |
my $crumb_text = 'Portfolio Search'; |
if (@allowed_searches == 3) { |
if (@allowed_searches ==2) { |
$crumb_text = 'Course, Portfolio and Catalog Search'; |
$crumb_text = 'Portfolio and Catalog Search'; |
} elsif (@allowed_searches ==2) { |
|
if (grep(/^res$/,@allowed_searches)) { |
|
$crumb_text = 'Portfolio and Catalog Search'; |
|
} elsif (grep(/^course$/,@allowed_searches)) { |
|
$crumb_text = 'Portfolio and Course Search'; |
|
} |
|
} |
} |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>'/adm/searchcat?'. |
({href=>'/adm/searchcat?'. |
Line 303 END
|
Line 294 END
|
if ($env{'form.phase'} eq 'adv_search' || |
if ($env{'form.phase'} eq 'adv_search' || |
$env{'form.phase'} eq 'disp_adv') { |
$env{'form.phase'} eq 'disp_adv') { |
$env{'form.searchmode'} = 'advanced'; |
$env{'form.searchmode'} = 'advanced'; |
} elsif ($env{'form.phase'} eq 'course_search') { |
|
$env{'form.searchmode'} = 'course_search'; |
|
} |
} |
# |
# |
if ($env{'form.searchmode'} eq 'advanced') { |
if ($env{'form.searchmode'} eq 'advanced') { |
Line 320 END
|
Line 309 END
|
'&mode='.$env{'form.mode'}, |
'&mode='.$env{'form.mode'}, |
text=>"Advanced $srchtype Search", |
text=>"Advanced $srchtype Search", |
bug=>'Searching',}); |
bug=>'Searching',}); |
} elsif ($env{'form.searchmode'} eq 'course search') { |
} |
&Apache::lonhtmlcommon::add_breadcrumb |
|
({href=>'/adm/searchcat?'.&Apache::loncommon::inhibit_menu_check(). |
|
'&phase=disp_adv'. |
|
'catalogmode='.$env{'form.catalogmode'}. |
|
'&launch='.$env{'form.launch'}. |
|
'&mode='.$env{'form.mode'}, |
|
text=>"Course Search", |
|
bug=>'Searching',}); |
|
} |
|
## |
## |
## Switch on the phase |
## Switch on the phase |
## |
## |
Line 351 END
|
Line 331 END
|
&run_search($r,$query,$customquery,$customshow, |
&run_search($r,$query,$customquery,$customshow, |
$libraries,$pretty_string,$env{'form.area'}); |
$libraries,$pretty_string,$env{'form.area'}); |
} |
} |
} elsif ($env{'form.phase'} eq 'course_search') { |
|
&course_search($r); |
|
} elsif(($env{'form.phase'} eq 'basic_search') || |
} elsif(($env{'form.phase'} eq 'basic_search') || |
($env{'form.phase'} eq 'adv_search')) { |
($env{'form.phase'} eq 'adv_search')) { |
# |
# |
Line 448 sub hidden_field {
|
Line 426 sub hidden_field {
|
} |
} |
|
|
###################################################################### |
###################################################################### |
###################################################################### |
|
## |
|
## Course Search |
|
## |
|
###################################################################### |
|
###################################################################### |
|
{ # Scope the course search to avoid global variables |
|
# |
|
# Variables For course search |
|
my %alreadyseen; |
|
my %hash; |
|
my $totalfound; |
|
|
|
sub make_symb { |
|
my ($id)=@_; |
|
my ($mapid,$resid)=split(/\./,$id); |
|
my $map=$hash{'map_id_'.$mapid}; |
|
my $res=$hash{'src_'.$id}; |
|
my $symb=&Apache::lonnet::encode_symb($map,$resid,$res); |
|
return $symb; |
|
} |
|
|
|
sub course_search { |
|
my $r=shift; |
|
my $pretty_search_string = '<b>'.$env{'form.courseexp'}.'</b>'; |
|
my $search_string = $env{'form.courseexp'}; |
|
my @New_Words; |
|
undef(%alreadyseen); |
|
if ($env{'form.crsrelated'}) { |
|
($search_string,@New_Words) = &related_version($env{'form.courseexp'}); |
|
if (@New_Words) { |
|
$pretty_search_string .= ' '.&mt("with related words").": <b>@New_Words</b>."; |
|
} else { |
|
$pretty_search_string .= ' '.&mt('with no related words')."."; |
|
} |
|
} |
|
my $fulltext=$env{'form.crsfulltext'}; |
|
my $discuss=$env{'form.crsdiscuss'}; |
|
my @allwords=($search_string,@New_Words); |
|
$totalfound=0; |
|
|
|
&Apache::lonhtmlcommon::add_breadcrumb |
|
({href=>'/adm/searchcat?'.&Apache::loncommon::inhibit_menu_check(). |
|
'&phase=disp_adv'. |
|
'catalogmode='.$env{'form.catalogmode'}. |
|
'&launch='.$env{'form.launch'}. |
|
'&mode='.$env{'form.mode'}, |
|
text=>"Course Search", |
|
bug=>'Searching',}); |
|
$r->print(&Apache::loncommon::start_page('Course Search')); |
|
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Searching','Searching', |
|
$env{'form.catalogmode'} ne 'import')); |
|
|
|
$r->print( |
|
'<hr /><center><font size="+2" face="arial">'. |
|
$pretty_search_string.'</font></center>'. |
|
'<hr /><b>'.&mt('Course content').':</b><br />'); |
|
$r->rflush(); |
|
# ======================================================= Go through the course |
|
my $c=$r->connection; |
|
if (tie(%hash,'GDBM_File',$env{'request.course.fn'}.".db", |
|
&GDBM_READER(),0640)) { |
|
foreach (sort(keys(%hash))) { |
|
if ($c->aborted()) { last; } |
|
if (($_=~/^src\_(.+)$/)) { |
|
if ($hash{'randomout_'.$1} & !$env{'request.role.adv'}) { |
|
next; |
|
} |
|
my $symb=&make_symb($1); |
|
&checkonthis($r,$1,$hash{$_},0,&Apache::lonnet::gettitle($symb), |
|
$fulltext,$symb,@allwords); |
|
} |
|
} |
|
untie(%hash); |
|
} |
|
unless ($totalfound) { |
|
$r->print('<p class="LC_info">'.&mt('No matches found in resources.').'</p>'); |
|
} |
|
|
|
# Check discussions if requested |
|
if ($discuss) { |
|
my $totaldiscussions = 0; |
|
$r->print('<br /><br /><b>'.&mt('Discussion postings').':</b><br />'); |
|
my $navmap = Apache::lonnavmaps::navmap->new(); |
|
if (defined($navmap)) { |
|
my @allres=$navmap->retrieveResources(); |
|
my %discussiontime = &Apache::lonnet::dump('discussiontimes', |
|
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
|
$env{'course.'.$env{'request.course.id'}.'.num'}); |
|
foreach my $resource (@allres) { |
|
my $result = ''; |
|
my $applies = 0; |
|
my $symb = $resource->symb(); |
|
my $ressymb = $symb; |
|
if ($symb =~ m#(___adm/$LONCAPA::domain_re/$LONCAPA::username_re)/(\d+)/bulletinboard$#) { |
|
$ressymb = 'bulletin___'.$2.$1.'/'.$2.'/bulletinboard'; |
|
unless ($ressymb =~ m#bulletin___\d+___adm/wrapper#) { |
|
$ressymb=~s#(bulletin___\d+___)#$1adm/wrapper/#; |
|
} |
|
} |
|
if (defined($discussiontime{$ressymb})) { |
|
my %contrib = &Apache::lonnet::restore($ressymb,$env{'request.course.id'}, |
|
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
|
$env{'course.'.$env{'request.course.id'}.'.num'}); |
|
if ($contrib{'version'}) { |
|
for (my $id=1;$id<=$contrib{'version'};$id++) { |
|
unless (($contrib{'hidden'}=~/\.$id\./) || ($contrib{'deleted'}=~/\.$id\./)) { |
|
if ($contrib{$id.':subject'}) { |
|
$result .= $contrib{$id.':subject'}; |
|
} |
|
if ($contrib{$id.':message'}) { |
|
$result .= $contrib{$id.':message'}; |
|
} |
|
if ($contrib{$id,':attachmenturl'}) { |
|
if ($contrib{$id,':attachmenturl'} =~ m-/([^/]+)$-) { |
|
$result .= $1; |
|
} |
|
} |
|
$applies = &checkwords($result,$applies,@allwords); |
|
} |
|
} |
|
} |
|
} |
|
# Does this discussion apply? |
|
if ($applies) { |
|
my ($map,$ind,$url)=&Apache::lonnet::decode_symb($ressymb); |
|
my $disctype = &mt('resource'); |
|
if ($url =~ m#/bulletinboard$#) { |
|
if ($url =~m#^adm/wrapper/adm/.*/bulletinboard$#) { |
|
$url =~s#^adm/wrapper##; |
|
} |
|
$disctype = &mt('discussion board'); |
|
} else { |
|
$url = '/res/'.$url; |
|
} |
|
if ($url =~ /\?/) { |
|
$url .= '&symb='; |
|
} else { |
|
$url .= '?symb='; |
|
} |
|
$url .= &escape($resource->symb()); |
|
my $title = $resource->compTitle(); |
|
$r->print('<br /><a href="'.$url.'" target="cat">'. |
|
($title?$title:$url).'</a> - '. |
|
$disctype.'<br />'); |
|
$totaldiscussions++; |
|
} else { |
|
$r->print(' .'); |
|
} |
|
} |
|
unless ($totaldiscussions) { |
|
$r->print('<p class="LC_info">'.&mt('No matches found in postings.').'</p>'); |
|
} |
|
} else { |
|
$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 |
|
|
|
sub checkonthis { |
|
my ($r,$id,$url,$level,$title,$fulltext,$symb,@allwords)=@_; |
|
$alreadyseen{$id}=1; |
|
if (&Apache::loncommon::connection_aborted($r)) { return; } |
|
$r->rflush(); |
|
|
|
my $result=$title.' '; |
|
if ($env{'request.role.adv'} || !$hash{'encrypted_'.$id}) { |
|
$result.=&Apache::lonnet::metadata($url,'title').' '. |
|
&Apache::lonnet::metadata($url,'subject').' '. |
|
&Apache::lonnet::metadata($url,'abstract').' '. |
|
&Apache::lonnet::metadata($url,'keywords'); |
|
} |
|
my ($extension)=($url=~/\.(\w+)$/); |
|
if (&Apache::loncommon::fileembstyle($extension) eq 'ssi' && |
|
($url) && ($fulltext)) { |
|
$result.=&Apache::lonnet::ssi_body($url.'?symb='.&escape($symb)); |
|
} |
|
$result=~s/\s+/ /gs; |
|
my $applies = 0; |
|
$applies = &checkwords($result,$applies,@allwords); |
|
# Does this resource apply? |
|
if ($applies) { |
|
$r->print('<br />'); |
|
for (my $i=0;$i<=$level*5;$i++) { |
|
$r->print(' '); |
|
} |
|
my $href=$url; |
|
if ($hash{'encrypted_'.$id} && !$env{'request.role.adv'}) { |
|
$href=&Apache::lonenc::encrypted($href) |
|
.'?symb='.&Apache::lonenc::encrypted($symb); |
|
} else { |
|
$href.='?symb='.&escape($symb); |
|
} |
|
$r->print('<a href="'.$href.'" target="cat">'.($title?$title:$url). |
|
'</a><br />'); |
|
$totalfound++; |
|
} elsif ($fulltext) { |
|
$r->print(' .'); |
|
} |
|
$r->rflush(); |
|
# Check also the dependencies of this one |
|
my $dependencies= |
|
&Apache::lonnet::metadata($url,'dependencies'); |
|
foreach (split(/\,/,$dependencies)) { |
|
if (($_=~/^\/res\//) && (!$alreadyseen{$id})) { |
|
&checkonthis($r,$id,$_,$level+1,'',$fulltext,undef,@allwords); |
|
} |
|
} |
|
} |
|
|
|
sub checkwords { |
|
my ($result,$applies,@allwords) = @_; |
|
foreach (@allwords) { |
|
if ($_=~/\w/) { |
|
if ($result=~/$_/si) { |
|
$applies++; |
|
} |
|
} |
|
} |
|
return $applies; |
|
} |
|
|
|
sub untiehash { |
|
if (tied(%hash)) { |
|
untie(%hash); |
|
} |
|
} |
|
|
|
} # End of course search scoping |
|
|
|
|
|
###################################################################### |
|
###################################################################### |
|
|
|
=pod |
=pod |
|
|
Line 711 sub print_basic_search_form {
|
Line 451 sub print_basic_search_form {
|
} |
} |
# Search form for accessible portfolio files |
# Search form for accessible portfolio files |
$scrout.= &setup_basic_search($r,'portfolio',$hidden_fields,$closebutton); |
$scrout.= &setup_basic_search($r,'portfolio',$hidden_fields,$closebutton); |
if ($env{'request.course.id'}) { |
|
my %lt=&Apache::lonlocal::texthash('srch' => 'Search', |
|
'header' => 'Course Search', |
|
'note' => 'Enter terms or phrases, then press "Search" below', |
|
'use' => 'use related words', |
|
'full' =>'fulltext search (time consuming)', |
|
'disc' => 'search discussion postings (resources and discussion boards)', |
|
); |
|
$scrout.=(<<ENDCOURSESEARCH); |
|
<form name="loncapa_search" method="post" action="/adm/searchcat"> |
|
<center> |
|
<hr /> |
|
<h1>$lt{'header'}</h1> |
|
<input type="hidden" name="phase" value="course_search" /> |
|
$hidden_fields |
|
<p> |
|
$lt{'note'}. |
|
</p> |
|
<table> |
|
<tr><td> |
|
ENDCOURSESEARCH |
|
$scrout.=' '. |
|
&Apache::lonhtmlcommon::textbox('courseexp', |
|
$env{'form.courseexp'},40); |
|
my $crscheckbox = |
|
&Apache::lonhtmlcommon::checkbox('crsfulltext', |
|
$env{'form.crsfulltext'}); |
|
my $relcheckbox = |
|
&Apache::lonhtmlcommon::checkbox('crsrelated', |
|
$env{'form.crsrelated'}); |
|
my $discheckbox = |
|
&Apache::lonhtmlcommon::checkbox('crsdiscuss', |
|
$env{'form.crsrelated'}); |
|
$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> |
|
<input type="submit" name="coursesubmit" value='$lt{'srch'}' /> |
|
</p> |
|
</center> |
|
</form> |
|
ENDENDCOURSE |
|
} |
|
$scrout .= &Apache::loncommon::end_page(); |
$scrout .= &Apache::loncommon::end_page(); |
$r->print($scrout); |
$r->print($scrout); |
return; |
return; |
Line 770 sub setup_basic_search {
|
Line 464 sub setup_basic_search {
|
portfolio => 'Portfolio Search', |
portfolio => 'Portfolio Search', |
); |
); |
my ($userelatedwords,$onlysearchdomain,$inclext,$adv_search_link,$scrout); |
my ($userelatedwords,$onlysearchdomain,$inclext,$adv_search_link,$scrout); |
$userelatedwords = '<label>'.&mt('[_1] use related words', |
|
&Apache::lonhtmlcommon::checkbox('related',$env{'form.related'},'related')). |
$userelatedwords = '<label>' |
'</label>'; |
.&Apache::lonhtmlcommon::checkbox( |
$onlysearchdomain = '<label>'.&mt('[_1] only search domain [_2]', |
'related', |
&Apache::lonhtmlcommon::checkbox('domains',$env{'form.domains'}, |
$env{'form.related'}, |
$r->dir_config('lonDefDomain')), |
'related') |
$r->dir_config('lonDefDomain')). |
.' ' |
'</label>'; |
.&mt('use related words') |
|
.'</label>'; |
|
|
|
$onlysearchdomain = '<label>' |
|
.&Apache::lonhtmlcommon::checkbox( |
|
'domains', |
|
$env{'form.domains'}, |
|
$r->dir_config('lonDefDomain')) |
|
.' ' |
|
.&mt('only search domain [_1]' |
|
,'<b>'.$r->dir_config('lonDefDomain').'</b>') |
|
.'</label>'; |
|
|
$adv_search_link = '<a href="/adm/searchcat?'. |
$adv_search_link = '<a href="/adm/searchcat?'. |
&Apache::loncommon::inhibit_menu_check(). |
&Apache::loncommon::inhibit_menu_check(). |
'&phase=disp_adv'. |
'&phase=disp_adv'. |
Line 1723 sub parse_domain_restrictions {
|
Line 1429 sub parse_domain_restrictions {
|
foreach (sort @allowed_domains) { |
foreach (sort @allowed_domains) { |
$pretty_domains_string .= "<b>".$_."</b> "; |
$pretty_domains_string .= "<b>".$_."</b> "; |
} |
} |
my %servers = &Apache::lonnet::get_servers(\@allowed_domains, |
my %servers = &Apache::lonnet::get_unique_servers(\@allowed_domains, |
'library'); |
'library'); |
$libraries_to_query = [keys(%servers)]; |
$libraries_to_query = [keys(%servers)]; |
} |
} |
Line 2286 sub print_sort_form {
|
Line 1992 sub print_sort_form {
|
// <![CDATA[ |
// <![CDATA[ |
function change_sort() { |
function change_sort() { |
var newloc = "/adm/searchcat?phase=results"; |
var newloc = "/adm/searchcat?phase=results"; |
newloc += "&persistent_db_id=$env{'form.persistent_db_id'}"; |
newloc += "&persistent_db_id=$env{'form.persistent_db_id'}"; |
newloc += "&sortby="; |
newloc += "&sortby="; |
newloc += document.forms.statusform.elements.sortby.value; |
newloc += document.forms.statusform.elements.sortby.value; |
parent.resultsframe.location= newloc; |
parent.resultsframe.location= newloc; |
} |
} |
Line 2581 END
|
Line 2287 END
|
@Servers_to_contact = ($serverlist); |
@Servers_to_contact = ($serverlist); |
} |
} |
} else { |
} else { |
my %all_library_servers = &Apache::lonnet::all_library(); |
my %all_library_servers = &Apache::lonnet::unique_library(); |
@Servers_to_contact = sort(keys(%all_library_servers)); |
@Servers_to_contact = sort(keys(%all_library_servers)); |
} |
} |
my %Server_status; |
my %Server_status; |
Line 2678 END
|
Line 2384 END
|
next; |
next; |
} |
} |
$status=~s|/||g; |
$status=~s|/||g; |
my $datafile=$r->dir_config('lonDaemons').'/tmp/'.$status; |
|
|
|
|
|
|
my $datafile=LONCAPA::tempdir().$status; |
if (-e $datafile && ! -e "$datafile.end") { |
if (-e $datafile && ! -e "$datafile.end") { |
&update_status($r,&mt('Receiving results from [_1]',$server)); |
&update_status($r,&mt('Receiving results from [_1]',$server)); |
next; |
next; |
Line 2960 sub display_results {
|
Line 2669 sub display_results {
|
.&mt('Sort by:').' ' |
.&mt('Sort by:').' ' |
.&Apache::loncommon::select_form($env{'form.sortfield'}, |
.&Apache::loncommon::select_form($env{'form.sortfield'}, |
'sortfield', |
'sortfield', |
%sort_fields) |
\%sort_fields) |
.' ' |
.' ' |
.&Apache::loncommon::select_form($env{'form.sortorder'}, |
.&Apache::loncommon::select_form($env{'form.sortorder'}, |
'sortorder', |
'sortorder', |
(asc =>&mt('Ascending'), |
{asc =>&mt('Ascending'), |
desc=>&mt('Descending') |
desc=>&mt('Descending') |
)) |
}) |
.'</span>'; |
.'</span>'; |
## |
## |
## Display links for 'prev' and 'next' pages (if necessary) and Display Options |
## Display links for 'prev' and 'next' pages (if necessary) and Display Options |
Line 3347 SCRIPT
|
Line 3056 SCRIPT
|
} |
} |
function select_group() { |
function select_group() { |
parent.window.location= |
parent.window.location= |
"/adm/groupsort?mode=$env{'form.mode'}&catalogmode=import$inhibit_menu&acts="+ |
"/adm/groupsort?mode=$env{'form.mode'}&catalogmode=import$inhibit_menu&acts="+ |
parent.statusframe.document.forms.statusform.elements.acts.value; |
parent.statusframe.document.forms.statusform.elements.acts.value; |
} |
} |
// ]]> |
// ]]> |
Line 3355 SCRIPT
|
Line 3064 SCRIPT
|
SCRIPT |
SCRIPT |
|
|
my $start_page = &Apache::loncommon::start_page(undef,$js, |
my $start_page = &Apache::loncommon::start_page(undef,$js, |
{'only_body' =>1}); |
{'only_body' =>1, |
|
'add_wishlist' =>1}); |
my $result=<<END; |
my $result=<<END; |
$start_page |
$start_page |
<form name="results" method="post" action="/adm/searchcat"> |
<form name="results" method="post" action="/adm/searchcat"> |
Line 3474 sub detailed_citation_view {
|
Line 3184 sub detailed_citation_view {
|
$result .= '<b>'.$prefix. |
$result .= '<b>'.$prefix. |
'<img src="'.&Apache::loncommon::icon($values{'url'}).'" alt="" />'.' '. |
'<img src="'.&Apache::loncommon::icon($values{'url'}).'" alt="" />'.' '. |
'<a href="'.$jumpurl.'?inhibitmenu=yes" '. |
'<a href="'.$jumpurl.'?inhibitmenu=yes" '. |
'target="preview">'.$values{'title'}."</a></b>\n"; |
'target="preview">'.$values{'title'}."</a></b>\n". |
|
'<a href="javascript:;" onclick="set_wishlistlink('."'$values{'title'}','$jumpurl'".')" '. |
|
'title="'.&mt('Set link to wishlist').'">'. |
|
'<img class="LC_icon" src="/res/adm/pages/wishlist.png" '. |
|
'alt="set wishlistlink" style="width:22px;"/></a>'; |
$result .= "<p>\n"; |
$result .= "<p>\n"; |
$result .= '<b>'.$values{'author'}.'</b>,'. |
$result .= '<b>'.$values{'author'}.'</b>,'. |
' <i>'.$values{'owner'}.'</i><br />'; |
' <i>'.$values{'owner'}.'</i><br />'; |
Line 3541 sub detailed_citation_view {
|
Line 3255 sub detailed_citation_view {
|
$result .= '<b>'.&mt($field->{'translate'}).'</b>'; |
$result .= '<b>'.&mt($field->{'translate'}).'</b>'; |
foreach my $item (split(',',$values{$field->{'name'}})){ |
foreach my $item (split(',',$values{$field->{'name'}})){ |
$item = &Apache::lonnet::clutter($item); |
$item = &Apache::lonnet::clutter($item); |
$result .= &display_url($item,[2,0,1]); |
$result .= '<br />'.&display_url($item,1).'<br />'; |
} |
} |
} elsif (exists($field->{'format'}) && $field->{'format'} ne ''){ |
} elsif (exists($field->{'format'}) && $field->{'format'} ne ''){ |
$result.= &mt($field->{'translate'}, |
$result.= &mt($field->{'translate'}, |
Line 3549 sub detailed_citation_view {
|
Line 3263 sub detailed_citation_view {
|
$values{$field->{'name'}}))."<br />\n"; |
$values{$field->{'name'}}))."<br />\n"; |
} else { |
} else { |
if ($field->{'special'} eq 'url link') { |
if ($field->{'special'} eq 'url link') { |
$result .= &display_url($jumpurl,[3,0,1]); |
$result .= '<br />'.&display_url($jumpurl,1).'<br />'; |
} else { |
} else { |
$result.= &mt($field->{'translate'}, |
$result.= &mt($field->{'translate'}, |
$values{$field->{'name'}}); |
$values{$field->{'name'}}); |
Line 3603 sub summary_view {
|
Line 3317 sub summary_view {
|
} |
} |
my $jumpurl=$values{'url'}; |
my $jumpurl=$values{'url'}; |
$jumpurl=~s|^/ext/|http://|; |
$jumpurl=~s|^/ext/|http://|; |
my $link = &display_url($jumpurl,[2,0,1]); |
my $link = '<br />'.&display_url($jumpurl,1).'<br />'; |
|
|
|
my $titleWL = &mt('Set link to wishlist'); |
$result.=<<END; |
$result.=<<END; |
<a href="$jumpurl?inhibitmenu=yes" |
<a href="$jumpurl?inhibitmenu=yes" |
target="preview">$values{'title'}</a><br /> |
target="preview">$values{'title'}</a> |
|
<a href="javascript:;" onclick="set_wishlistlink('$values{'title'}','$jumpurl')" |
|
title="$titleWL"> |
|
<img class="LC_icon" src="/res/adm/pages/wishlist.png" |
|
alt="set wishlistlink" style="width:22px;"/> |
|
</a> |
|
<br /> |
$link<br /> |
$link<br /> |
$values{'author'}, $values{'owner'} -- $values{'lastrevisiondate'}<br /> |
$values{'author'}, $values{'owner'} -- $values{'lastrevisiondate'}<br /> |
$values{'copyrighttag'}<br /> |
$values{'copyrighttag'}<br /> |
Line 3639 sub compact_view {
|
Line 3360 sub compact_view {
|
my $jumpurl=$values{'url'}; |
my $jumpurl=$values{'url'}; |
$jumpurl=~s|^/ext/|http://|; |
$jumpurl=~s|^/ext/|http://|; |
|
|
my $link = &display_url($jumpurl,[1,1,1]); |
my $link = &display_url($jumpurl,1); |
|
|
my $result = |
my $result = |
$prefix.'<img src="'.&Apache::loncommon::icon($values{'url'}).'" alt="" />'; |
$prefix.'<img src="'.&Apache::loncommon::icon($values{'url'}).'" alt="" />'; |
Line 3653 sub compact_view {
|
Line 3374 sub compact_view {
|
$result.=' <span class="LC_nobreak">'. |
$result.=' <span class="LC_nobreak">'. |
'<a href="'.$jumpurl.'?inhibitmenu=yes" target="preview">'. |
'<a href="'.$jumpurl.'?inhibitmenu=yes" target="preview">'. |
&HTML::Entities::encode($values{'title'},'<>&"').'</a></span> '. |
&HTML::Entities::encode($values{'title'},'<>&"').'</a></span> '. |
|
'<a href="javascript:;" onclick="set_wishlistlink('."'$values{'title'}','$jumpurl'".')" '. |
|
'title="'.&mt('Set link to wishlist').'">'. |
|
'<img class="LC_icon" src="/res/adm/pages/wishlist.png" '. |
|
'alt="set wishlistlink" style="width:22px;"/>'. |
|
'</a>'. |
$link.' <b>'.$values{'author'}.'</b> ('.$values{'domain'}.')'; |
$link.' <b>'.$values{'author'}.'</b> ('.$values{'domain'}.')'; |
return $result; |
return $result; |
} |
} |
|
|
sub display_url { |
sub display_url { |
my ($url,$crumb_args) = @_; |
my ($url,$skiplast) = @_; |
my $link; |
my $link; |
if ($url=~m|^/ext/|) { |
if ($url=~m|^/ext/|) { |
$url=~s|^/ext/|http://|; |
$url=~s|^/ext/|http://|; |
Line 3666 sub display_url {
|
Line 3392 sub display_url {
|
} elsif ($url=~m{^(http://|/uploaded/)}) { |
} elsif ($url=~m{^(http://|/uploaded/)}) { |
$link='<span class="LC_filename">'.$url.'</span>'; |
$link='<span class="LC_filename">'.$url.'</span>'; |
} else { |
} else { |
$link=&Apache::lonhtmlcommon::crumbs($url, |
$link=&Apache::lonhtmlcommon::crumbs( |
'preview', |
$url, |
'', |
'preview', |
(($env{'form.catalogmode'} eq 'import')?'parent.statusframe.document.forms.statusform':''),@{$crumb_args}).' '; |
'', |
|
(($env{'form.catalogmode'} eq 'import')?'parent.statusframe.document.forms.statusform':''), |
|
$skiplast).' '; |
} |
} |
return $link; |
return $link; |
} |
} |
Line 3692 sub fielded_format_view {
|
Line 3420 sub fielded_format_view {
|
my $jumpurl=$values{'url'}; |
my $jumpurl=$values{'url'}; |
$jumpurl=~s|^/ext/|http://|; |
$jumpurl=~s|^/ext/|http://|; |
|
|
|
my $titleWL = ('Set link to wishlist'); |
my $result=<<END; |
my $result=<<END; |
$prefix <img src="$icon" alt="" /> |
$prefix <img src="$icon" alt="" /> |
<dl> |
<dl> |
<dt>URL:</dt> |
<dt>URL:</dt> |
<dd><a href="$jumpurl?inhibitmenu=yes" |
<dd><a href="$jumpurl?inhibitmenu=yes" |
target='preview'>$values{'url'}</a></dd> |
target='preview'>$values{'url'}</a> |
|
<a href="javascript:;" onclick="set_wishlistlink('$values{'title'}','$jumpurl')" |
|
title="$titleWL"> |
|
<img class="LC_icon" src="/res/adm/pages/wishlist.png" |
|
alt="set wishlistlink" style="width:22px;"/> |
|
</a> |
|
</dd> |
END |
END |
foreach my $field ('title','author','domain','subject','keywords','notes', |
foreach my $field ('title','author','domain','subject','keywords','notes', |
'mimetag','language','creationdate','lastrevisiondate', |
'mimetag','language','creationdate','lastrevisiondate', |