--- rat/lonambiguous.pm 2003/09/22 03:02:06 1.10 +++ rat/lonambiguous.pm 2004/12/17 22:40:24 1.11 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to resolve ambiguous file locations # -# $Id: lonambiguous.pm,v 1.10 2003/09/22 03:02:06 www Exp $ +# $Id: lonambiguous.pm,v 1.11 2004/12/17 22:40:24 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -67,6 +67,15 @@ sub getlost { # ================================================================ Main Handler +sub make_symb { + my ($id)=@_; + my ($mapid,$resid)=split(/\./,$id); + my $map=$bighash{'map_id_'.$mapid}; + my $res=$bighash{'src_'.$id}; + my $symb=&Apache::lonnet::encode_symb($map,$resid,$res); + return $symb; +} + sub handler { my $r=shift; @@ -151,15 +160,17 @@ sub handler { # ------------------------------------------------------------------- Has ID(s) my @possibilities=split(/\,/,$ids); my $couldbe=''; - map { - if (&Apache::lonnet::allowed('bre',$bighash{'src_'.$_})) { + foreach (@possibilities) { + if ($bighash{'encrypted_'.$_}) { next; } + my $symb=&make_symb($_); + if (&Apache::lonnet::allowed('bre',$bighash{'src_'.$_},$symb)) { if ($couldbe) { $couldbe.=','.$_; } else { $couldbe=$_; } } - } @possibilities; + } if ($couldbe) { @possibilities=split(/\,/,$couldbe); if ($#possibilities>0) { @@ -176,24 +187,21 @@ and LON-CAPA has insufficient session in of the resource you meant.

Please click on the instance of the resource you intended to access: -

-

- - - - +

+
 TitleTypePart of ...
+ ENDSTART map { + my $resurl=$bighash{'src_'.$_}; my $mapurl=$bighash{'map_id_'.(split(/\./,$_))[0]}; - $r->print(''); + my $symb=&make_symb($_); + $r->print(''); } @possibilities; - $r->print('
TitlePart of ...
'.$bighash{'title_'.$_}. - ''.$bighash{'type_'.$_}. - ''. - ($mapurl=~/^\/uploaded\//?'':''). - &Apache::lonnet::gettitle($mapurl).' '. - ($mapurl=~/^\/uploaded\//?'':'').'
'. + &Apache::lonnet::gettitle($symb). + ''. + &Apache::lonnet::gettitle($mapurl).' '. + '
'); + $r->print(''); untie(%bighash); return OK; }