Diff for /rat/lonuserstate.pm between versions 1.1 and 1.2

version 1.1, 2000/07/18 17:32:32 version 1.2, 2000/08/02 15:27:10
Line 10 Line 10
 # 7/1 Gerd Kortemeyer)  # 7/1 Gerd Kortemeyer)
 # 7/1,7/3,7/4,7/7,7/8,7/10 Gerd Kortemeyer)  # 7/1,7/3,7/4,7/7,7/8,7/10 Gerd Kortemeyer)
 #  #
 # 7/15,7/17,7/18 Gerd Kortemeyer  # 7/15,7/17,7/18,8/1,8/2 Gerd Kortemeyer
   
 package Apache::lonuserstate;  package Apache::lonuserstate;
   
Line 106  sub loadmap { Line 106  sub loadmap {
                     }                      }
                     if ($token->[2]->{'type'}) {                      if ($token->[2]->{'type'}) {
  $hash{'type_'.$rid}=$token->[2]->{'type'};   $hash{'type_'.$rid}=$token->[2]->{'type'};
                           if ($token->[2]->{'type'} eq 'start') {
       $hash{'map_start_'.$uri}="$rid";
                           }
                           if ($token->[2]->{'type'} eq 'finish') {
       $hash{'map_finish_'.$uri}="$rid";
                           }
                     }  else {                      }  else {
                         $hash{'type_'.$rid}='normal';                          $hash{'type_'.$rid}='normal';
                     }                      }
Line 113  sub loadmap { Line 119  sub loadmap {
                     if (($turi=~/\.course$/) ||                      if (($turi=~/\.course$/) ||
                         ($turi=~/\.sequence$/) ||                          ($turi=~/\.sequence$/) ||
                         ($turi=~/\.page$/)) {                          ($turi=~/\.page$/)) {
                           $hash{'is_map_'.$rid}=1;
                         &loadmap($turi);                          &loadmap($turi);
                     }                       } 
                                           
Line 122  sub loadmap { Line 129  sub loadmap {
                     my $rid=$lpc.'.'.$token->[2]->{'id'};                      my $rid=$lpc.'.'.$token->[2]->{'id'};
   
                     $hash{'kind_'.$rid}='cond';                      $hash{'kind_'.$rid}='cond';
                     $hash{'value_'.$rid}=$token->[2]->{'value'};                      $cond[$#cond+1]=$token->[2]->{'value'};
                       $hash{'condid_'.$rid}=$#cond;
                     if ($token->[2]->{'type'}) {                      if ($token->[2]->{'type'}) {
  $hash{'type_'.$rid}=$token->[2]->{'type'};                          $cond[$#cond].=':'.$token->[2]->{'type'};
                     }  else {                      }  else {
                         $hash{'type_'.$rid}='normal';                          $cond[$#cond].=':normal';
                     }                      }
   
                 } elsif ($token->[1] eq 'link') {                  } elsif ($token->[1] eq 'link') {
Line 167  sub loadmap { Line 175  sub loadmap {
     }      }
 }  }
   
   # -------------------------------------------------------- Build condition hash
   
   sub traceroute {
       my ($sofar,$rid,$beenhere)=shift;
       unless ($beenhere=~/\&$rid\&/) {
          $beenhere.=$rid.'&';  
          if (defined($hash{'conditions_'.$rid})) {
      $hash{'conditions_'.$rid}=
          '('.$hash{'conditions_'.$rid}.')|('.$sofar.')';
          } else {
              $hash{'conditions_'.$rid}=$sofar;
          }
          if (defined($hash{'is_map_'.$rid})) {
              if () {
          &traceroute($sofar,$startrid,'&');
              }
          }
          if (defined($hash{'to_'.$rid})) {
             map {
    my $further=$sofar;
                   if ($hash{'undercond_'.$_}) {
      if (defined($hash{'condid_'.$hash{'undercond_'.$_}})) {
           $further.='&'.$hash{'condid_'.$hash{'undercond_'.$_}};
      } else {
                          $errtext.='Undefined condition ID: '
                                    .$hash{'undercond_'.$_}.'. ';
                      }
                   }
                   &traceroute($further,$hash{'goesto_'.$_},$beenhere);
             } split(/\,/,$hash{'to_'.$rid});
          }
       }
   }
   
 # ---------------------------------------------------- Read map and all submaps  # ---------------------------------------------------- Read map and all submaps
   
Line 179  sub readmap { Line 220  sub readmap {
    loadmap($uri);     loadmap($uri);
 }  }
   
   # ---------------------------------------------------------------- Testing only
   
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;
     $r->content_type('text/html');      $r->content_type('text/html');
Line 187  sub handler { Line 230  sub handler {
     readmap('/res/msu/korte/foo.course');      readmap('/res/msu/korte/foo.course');
     $r->print("<html><body>\n");      $r->print("<html><body>\n");
     my $hashkey;      my $hashkey;
     foreach $hashkey (keys %hash) {      foreach $hashkey (sort keys %hash) {
  $r->print("$hashkey: $hash{$hashkey}<br>\n");   $r->print("$hashkey: $hash{$hashkey}<br>\n");
     }      }
       my $i;
       $r->print('<hr>');
       for ($i=0;$i<=$#cond;$i++) {
           $r->print($i.' : '.$cond[$i]."<br>\n");
       }
     $r->print("<h1>$errtext</h1></body></html>\n");      $r->print("<h1>$errtext</h1></body></html>\n");
     return OK;      return OK;
 }  }

Removed from v.1.1  
changed lines
  Added in v.1.2


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