version 1.41, 2011/07/04 09:25:17
|
version 1.46, 2017/08/21 21:30:05
|
Line 41 use Apache::lonpageflip();
|
Line 41 use Apache::lonpageflip();
|
use Apache::loncommon(); |
use Apache::loncommon(); |
use Apache::groupsort(); |
use Apache::groupsort(); |
use Apache::lonlocal; |
use Apache::lonlocal; |
|
use Apache::lonnavmaps(); |
|
use Apache::lonenc(); |
use HTML::Entities(); |
use HTML::Entities(); |
|
|
my %selhash; |
my %selhash; |
Line 133 ENDSELECT
|
Line 135 ENDSELECT
|
.'</p><br />'); |
.'</p><br />'); |
} |
} |
my $idx=0; |
my $idx=0; |
foreach (&attemptread(&Apache::lonnet::filelocation('',$url))) { |
foreach my $entry (&attemptread(&Apache::lonnet::filelocation('',$url))) { |
if (defined($_)) { |
if (defined($entry)) { |
$idx++; |
$idx++; |
if ($successtied) { |
if ($successtied) { |
$r->print('<form name="form'.$idx.'">'); |
$r->print('<form name="form'.$idx.'">'); |
} |
} |
my ($title,$url)=split(/\:/,$_); |
my ($title,$url)=split(/\:/,$entry); |
$title = &LONCAPA::map::qtescape($title); |
$title = &LONCAPA::map::qtescape($title); |
unless ($title) { $title=(split(/\//,$url))[-1] }; |
unless ($title) { $title=(split(/\//,$url))[-1] }; |
my $enc_title = &HTML::Entities::encode($title,'\'"<>&'); |
my $enc_title = &HTML::Entities::encode($title,'\'"<>&'); |
Line 184 ENDCHECKBOX
|
Line 186 ENDCHECKBOX
|
|
|
# ----------------------------------------------------------- Clean out selhash |
# ----------------------------------------------------------- Clean out selhash |
sub start_fresh_session { |
sub start_fresh_session { |
foreach (keys %selhash) { |
foreach my $item (keys(%selhash)) { |
if ($_ =~ /^pre_/) { |
if ($item =~ /^pre_/) { |
delete $selhash{$_}; |
delete $selhash{$item}; |
} |
} |
if ($_ =~ /^store/) { |
if ($item =~ /^store/) { |
delete $selhash{$_}; |
delete $selhash{$item}; |
} |
} |
} |
} |
} |
} |
Line 205 sub handler {
|
Line 207 sub handler {
|
$r->send_http_header; |
$r->send_http_header; |
return OK; |
return OK; |
} |
} |
|
|
|
my $requrl=$r->uri; |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
['forceselect','launch']); |
['forceselect','launch','navmap']); |
|
|
|
if (($env{'request.course.fn'}) && ($env{'form.navmap'}) && ($env{'request.course.id'})) { |
|
my $crstype = &Apache::loncommon::course_type(); |
|
unless (($crstype eq 'Placement') && (!$env{'request.role.adv'})) { |
|
|
|
# Check for critical messages and redirect if present. |
|
my ($redirect,$url) = &Apache::loncommon::critical_redirect(300,'contents'); |
|
if ($redirect) { |
|
&Apache::loncommon::content_type($r,'text/html'); |
|
$r->header_out(Location => $url); |
|
return REDIRECT; |
|
} |
|
|
|
# Check if course needs to be re-initialized |
|
my $loncaparev = $r->dir_config('lonVersion'); |
|
my ($result,@reinit) = &Apache::loncommon::needs_coursereinit($loncaparev); |
|
|
|
if ($result eq 'switch') { |
|
&Apache::loncommon::content_type($r,'text/html'); |
|
$r->send_http_header; |
|
$r->print(&Apache::loncommon::check_release_result(@reinit)); |
|
return OK; |
|
} elsif ($result eq 'update') { |
|
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
|
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
|
my ($furl,$ferr) = &Apache::lonuserstate::readmap("$cdom/$cnum"); |
|
if ($ferr) { |
|
my $requrl = $r->uri; |
|
$env{'user.error.msg'}="$requrl:bre:0:0:Course not initialized"; |
|
$env{'user.reinit'} = 1; |
|
return HTTP_NOT_ACCEPTABLE; |
|
} |
|
} |
|
|
|
# Create the nav map |
|
my $navmap = Apache::lonnavmaps::navmap->new(); |
|
|
|
if (ref($navmap)) { |
|
# renderer call |
|
if (&Apache::lonnet::is_on_map($requrl)) { |
|
my $mapurl = &Apache::lonnet::declutter($requrl); |
|
my @crumbs = ({text => $crstype.' Contents', |
|
href => "javascript:gopost('/adm/navmaps','')"}); |
|
my $res = $navmap->getResourceByUrl($mapurl); |
|
if (ref($res)) { |
|
my ($parent) = &Apache::lonnet::decode_symb($res->symb()); |
|
if ($parent ne $env{'course.'.$env{'request.course.id'}.'.url'}) { |
|
my @mapcrumbs = $navmap->recursed_crumbs($parent); |
|
if (@mapcrumbs) { |
|
push(@crumbs,@mapcrumbs); |
|
} else { |
|
push(@crumbs,{text => '...', |
|
no_mt => 1}); |
|
} |
|
} |
|
} |
|
my $maptitle = &Apache::lonnet::gettitle($mapurl); |
|
push(@crumbs,{text => $maptitle, no_mt => 1}); |
|
my $args = {'bread_crumbs' => \@crumbs, |
|
'bread_crumbs_nomenu' => 1}; |
|
&Apache::loncommon::content_type($r,'text/html'); |
|
$r->send_http_header; |
|
|
|
$r->print(&Apache::loncommon::start_page($maptitle,undef,$args)); |
|
|
|
my $renderArgs = { 'cols' => [0,1,2,3], |
|
'url' => $mapurl, |
|
'navmap' => $navmap, |
|
'suppressNavmap' => 1, |
|
'suppressEmptySequences' => 1, |
|
'filterFunc' => undef, |
|
'resource_no_folder_link' => 1, |
|
'r' => $r, |
|
'caller' => 'sequence', |
|
'notools' => 1, |
|
'iterator_map' => $mapurl, |
|
}; |
|
|
|
my $render = &Apache::lonnavmaps::render($renderArgs); |
|
|
|
# If no resources were found let the user know. |
|
if ($renderArgs->{'counter'} == 0) { |
|
$r->print("<p><span class=\"LC_info\">". |
|
&mt("This folder is empty.")."</span></p>"); |
|
} |
|
$r->print(&Apache::loncommon::end_page()); |
|
$r->rflush(); |
|
return OK; |
|
} |
|
} |
|
} |
|
} |
|
|
my %hash; |
my %hash; |
my %bighash; |
my %bighash; |
my $requrl=$r->uri; |
|
|
|
$successtied=0; |
$successtied=0; |
# ------------------------------------------------------------ Tie symb db file |
# ------------------------------------------------------------ Tie symb db file |
Line 303 sub handler {
|
Line 397 sub handler {
|
$r->send_http_header; |
$r->send_http_header; |
if ($exitdisid eq '' && $arrow_dir ne '') { |
if ($exitdisid eq '' && $arrow_dir ne '') { |
my %lt =&Apache::lonlocal::texthash( |
my %lt =&Apache::lonlocal::texthash( |
'back' => 'beginning', |
|
'forward' => 'end', |
|
'nere' => 'Next resource could not be displayed', |
'nere' => 'Next resource could not be displayed', |
'goba' => 'Go Back', |
'goba' => 'Go Back', |
'nacc' => 'Navigate Course Content', |
'nacc' => 'Course Contents', |
); |
); |
my $warnmsg = &mt('As all folders and sequences '); |
if (&Apache::loncommon::course_type() eq 'Community') { |
|
$lt{'nav'} = &mt('Community Contents'); |
|
} |
|
my $warnmsg; |
if ($arrow_dir eq 'forward') { |
if ($arrow_dir eq 'forward') { |
$warnmsg .= &mt('following the current resource were empty').','; |
$warnmsg = &mt('As all folders and sequences ' |
|
.'following the current resource were empty, ' |
|
.'you have now reached the end of the course.'); |
} elsif ($arrow_dir eq 'back') { |
} elsif ($arrow_dir eq 'back') { |
$warnmsg .= &mt('preceding the current resource were empty').','; |
$warnmsg = &mt('As all folders and sequences ' |
|
.'preceding the current resource were empty, ' |
|
.'you have now reached the beginning of the course.'); |
} |
} |
$warnmsg .= &mt('you have now reached the').' '.$lt{$arrow_dir}.' '.&mt('of the course.'); |
|
my $start_page= |
my $start_page= |
&Apache::loncommon::start_page('Empty Folder/Sequence'); |
&Apache::loncommon::start_page('Empty Folder/Sequence'); |
my $end_page= |
my $end_page= |