--- loncom/interface/lonindexcourse.pm 2011/01/18 00:22:02 1.1 +++ loncom/interface/lonindexcourse.pm 2024/02/12 04:04:06 1.4 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Index Course # -# $Id: lonindexcourse.pm,v 1.1 2011/01/18 00:22:02 www Exp $ +# $Id: lonindexcourse.pm,v 1.4 2024/02/12 04:04:06 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -41,7 +41,7 @@ use Apache::lonlocal; use LONCAPA::lonmetadata(); use HTML::Entities(); use Apache::lonnavmaps; -use Apache::londocs(); +use Apache::lonnavdisplay(); use Apache::lonindexer(); use LONCAPA; @@ -70,14 +70,21 @@ sub course_index { %alreadyseen=(); 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; + foreach my $key (sort(keys(%hash))) { + last if ($c->aborted()); + if ($key =~ /^src\_(.+)$/) { + my $rid = $1; + 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 %newwords=&checkonthis($r,$1,$hash{$_},0,&Apache::lonnet::gettitle($symb), + my $symb=&make_symb($rid); + my %newwords=&checkonthis($r,$rid,$hash{$key},0,&Apache::lonnet::gettitle($symb), $symb); } } @@ -136,9 +143,9 @@ sub checkonthis { # 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,''); + foreach my $item (split(/\,/,$dependencies)) { + if (($item =~ /^\/res\//) && (!$alreadyseen{$id})) { + &checkonthis($r,$id,$item,$level+1,''); } } } @@ -163,9 +170,9 @@ sub handler { { href => '/adm/indexcourse', text => "$crstype Index"}); $r->print(&Apache::lonhtmlcommon::breadcrumbs("$crstype Index")); - &Apache::londocs::startContentScreen($r,'courseindex'); + &Apache::lonnavdisplay::startContentScreen($r,'courseindex'); &course_index($r); - &Apache::londocs::endContentScreen($r); + &Apache::lonnavdisplay::endContentScreen($r); $r->print(&Apache::loncommon::end_page()); return OK; }