Diff for /rat/lonambiguous.pm between versions 1.14 and 1.17

version 1.14, 2005/02/17 09:09:57 version 1.17, 2006/02/07 19:46:08
Line 44  sub cleanup { Line 44  sub cleanup {
     &Apache::lonnet::logthis('Failed cleanup ambiguous: bighash');      &Apache::lonnet::logthis('Failed cleanup ambiguous: bighash');
         }          }
     }      }
       return OK;
 }  }
   
 # ----------------------------------------------------------- Could not resolve  # ----------------------------------------------------------- Could not resolve
Line 82  sub handler { Line 83  sub handler {
   
 # ---------------------------------------------------------- Is this selecting?  # ---------------------------------------------------------- Is this selecting?
     
    if ($ENV{'form.selecturl'}) {     if ($env{'form.selecturl'}) {
        my $envkey;         my $envkey;
        if (tie(%bighash,'GDBM_File',$ENV{'request.course.fn'}.'.db',         if (tie(%bighash,'GDBM_File',$env{'request.course.fn'}.'.db',
                     &GDBM_READER(),0640)) {                      &GDBM_READER(),0640)) {
           foreach $envkey (keys %ENV) {            foreach $envkey (keys %env) {
              if ($envkey=~/^form\.(\d+)\.(\d+)$/) {               if ($envkey=~/^form\.(\d+)\.(\d+)$/) {
 # ---------------------------------------------------- Update symb and redirect  # ---------------------------------------------------- Update symb and redirect
          my $mapid=$1;           my $mapid=$1;
                  my $resid=$2;                   my $resid=$2;
                  my $resurl=$bighash{'src_'.$mapid.'.'.$resid};                   my $resurl=$bighash{'src_'.$mapid.'.'.$resid};
                  &Apache::lonnet::symblist($bighash{'map_id_'.$mapid},                   &Apache::lonnet::symblist($bighash{'map_id_'.$mapid},
            $resurl => $resid);             $resurl => [$resurl,$resid]);
                  untie(%bighash);                   untie(%bighash);
                  $r->header_out(Location =>                    $r->header_out(Location => 
                                 'http://'.$ENV{'HTTP_HOST'}.$resurl);                                  'http://'.$ENV{'HTTP_HOST'}.$resurl);
Line 110  sub handler { Line 111  sub handler {
 # ---------------------------------------------------------- Do we have a case?  # ---------------------------------------------------------- Do we have a case?
   
    my $thisfn;     my $thisfn;
    unless (($thisfn=$ENV{'request.ambiguous'})&&($ENV{'request.course.fn'})) {     unless (($thisfn=$env{'request.ambiguous'})&&($env{'request.course.fn'})) {
        &getlost($r,'Could not find information on resource.');         &getlost($r,'Could not find information on resource.');
        return OK;         return OK;
    }     }
Line 121  sub handler { Line 122  sub handler {
     my %hash;      my %hash;
     my $syval='';      my $syval='';
           
     if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'_symb.db',      if (tie(%hash,'GDBM_File',$env{'request.course.fn'}.'_symb.db',
                   &GDBM_READER(),0640)) {                    &GDBM_READER(),0640)) {
        $syval=$hash{$thisfn};         $syval=$hash{$thisfn};
        untie(%hash);         untie(%hash);
Line 130  sub handler { Line 131  sub handler {
 # ---------------------------------------------------------- There was an entry  # ---------------------------------------------------------- There was an entry
   
     if ($syval) {      if ($syval) {
    my ($page,undef,$res)=&Apache::lonnet::decode_symb($syval);
        if ($syval=~/\_$/) {   if ($res eq 'page') {
 # ----------------------------------- Okay, this should have appeared on a page  # ----------------------------------- Okay, this should have appeared on a page
    $syval=~s/\_\_\_$//;  
    &Apache::loncommon::content_type($r,'text/html');     &Apache::loncommon::content_type($r,'text/html');
            $r->header_out(Location =>              $r->header_out(Location => 
                 'http://'.$ENV{'HTTP_HOST'}.'/res/'.$syval);    'http://'.$ENV{'HTTP_HOST'}.
     &Apache::lonnet::clutter($page));
            return REDIRECT;             return REDIRECT;
        } else {         } else {
 #  There is not really a problem (???), but cannot go back without endless loop  #  There is not really a problem (???), but cannot go back without endless loop
Line 145  sub handler { Line 146  sub handler {
        }         }
     }      }
 # ------------------------------------Encrypted requests go straight to navmaps  # ------------------------------------Encrypted requests go straight to navmaps
    if ($ENV{'request.enc'}) {     if ($env{'request.enc'}) {
        &Apache::loncommon::content_type($r,'text/html');         &Apache::loncommon::content_type($r,'text/html');
        $r->header_out(Location => 'http://'.$ENV{'HTTP_HOST'}.'/adm/navmaps');         $r->header_out(Location => 'http://'.$ENV{'HTTP_HOST'}.'/adm/navmaps');
        return REDIRECT;         return REDIRECT;
    }     }
 # ------------------------------------------------ Would be standalone resource  # ------------------------------------------------ Would be standalone resource
   
    if (tie(%bighash,'GDBM_File',$ENV{'request.course.fn'}.'.db',     if (tie(%bighash,'GDBM_File',$env{'request.course.fn'}.'.db',
                     &GDBM_READER(),0640)) {                      &GDBM_READER(),0640)) {
 # ---------------------------------------------- Get ID(s) for current resource  # ---------------------------------------------- Get ID(s) for current resource
       my $ids=$bighash{'ids_'.&Apache::lonnet::clutter($thisfn)};        my $ids=$bighash{'ids_'.&Apache::lonnet::clutter($thisfn)};

Removed from v.1.14  
changed lines
  Added in v.1.17


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>