--- loncom/lonnet/perl/lonnet.pm 2000/11/14 14:58:59 1.61 +++ loncom/lonnet/perl/lonnet.pm 2000/11/14 18:41:40 1.63 @@ -1264,11 +1264,12 @@ sub EXT { $ENV{'request.course.id'}.'.'.$spacequalifierrest; # ----------------------------------------------------------- first, check user - my %resourcedata=get('resourcedata',($reslevel,$seclevel,$courselevel)); + my %resourcedata=get('resourcedata',($reslevel,$seclevel,$courselevel)); + if ($resourcedata{$reslevel}!~/^error\:/) { if ($resourcedata{$reslevel}) { return $resourcedata{$reslevel}; } if ($resourcedata{$seclevel}) { return $resourcedata{$seclevel}; } if ($resourcedata{$courselevel}) { return $resourcedata{$courselevel}; } - + } # -------------------------------------------------------- second, check course my $section=''; if ($ENV{'request.course.sec'}) { @@ -1280,13 +1281,15 @@ sub EXT { ':resourcedata:'. escape($reslevel).':'.escape($seclevel).':'.escape($courselevel), $ENV{'course.'.$ENV{'request.course.id'}.$section.'.home'}); + if ($reply!~/^error\:/) { map { my ($name,$value)=split(/\=/,$_); $resourcedata{unescape($name)}=unescape($value); } split(/\&/,$reply); if ($resourcedata{$reslevel}) { return $resourcedata{$reslevel}; } - if ($resourcedata{$seclevel}) { return $resourcedata{$seclevel}; } + if ($resourcedata{$seclevel}) { return $resourcedata{$seclevel}; } if ($resourcedata{$courselevel}) { return $resourcedata{$courselevel}; } + } # ------------------------------------------------------ third, check map parms @@ -1368,6 +1371,7 @@ sub symbread { my %hash; my %bighash; my $syval=''; + my $parms=''; if (($ENV{'request.course.fn'}) && ($thisfn)) { if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'_symb.db', &GDBM_READER,0640)) { @@ -1395,6 +1399,7 @@ sub symbread { if ($#possibilities==0) { # ----------------------------------------------- There is only one possibility my ($mapid,$resid)=split(/\./,$ids); + $parms=$bighash{'param_'.$ids}; $syval=declutter($bighash{'map_id_'.$mapid}).'___'.$resid; } else { # ------------------------------------------ There is more than one possibility @@ -1405,6 +1410,7 @@ sub symbread { my ($mapid,$resid)=split(/\./,$_); if ($bighash{'map_type_'.$mapid} ne 'page') { $realpossible++; + $parms=$bighash{'param_'.$_}; $syval=declutter($bighash{'map_id_'.$mapid}). '___'.$resid; } @@ -1416,7 +1422,12 @@ sub symbread { untie(%bighash) } } - if ($syval) { return $syval.'___'.$thisfn; } + if ($syval) { + if ($parms) { + &appendparms($syval.'___'.$thisfn,$parms); + } + return $syval.'___'.$thisfn; + } } &appenv('request.ambiguous' => $thisfn); return '';