--- loncom/interface/lonsearchcourse.pm 2021/11/30 15:55:37 1.7 +++ loncom/interface/lonsearchcourse.pm 2024/02/11 21:41:48 1.10 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Search Course # -# $Id: lonsearchcourse.pm,v 1.7 2021/11/30 15:55:37 raeburn Exp $ +# $Id: lonsearchcourse.pm,v 1.10 2024/02/11 21:41:48 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -136,8 +136,15 @@ sub course_search { foreach (sort(keys(%hash))) { if ($c->aborted()) { last; } if (($_=~/^src\_(.+)$/)) { - if ($hash{'randomout_'.$1} & !$env{'request.role.adv'}) { - next; + 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); &checkonthis($r,$1,$hash{$_},0,&Apache::lonnet::gettitle($symb), @@ -261,10 +268,18 @@ sub checkonthis { } my $href=$url; if ($hash{'encrypted_'.$id} && !$env{'request.role.adv'}) { - $href=&Apache::lonenc::encrypted($href) - .'?symb='.&Apache::lonenc::encrypted($symb); + $href=&Apache::lonenc::encrypted($href); + if ($url =~ /\.sequence$/) { + $href .= '?navmap=1'; + } else { + $href .= '?symb='.&Apache::lonenc::encrypted($symb); + } } else { - $href.='?symb='.&escape($symb); + if ($href =~ /\.sequence$/) { + $href .= '?navmap=1'; + } else { + $href .= '?symb='.&escape($symb); + } } $r->print(''.($title?$title:$url). '
');