Diff for /rat/lonratsrv.pm between versions 1.12 and 1.17

version 1.12, 2001/06/26 20:42:17 version 1.17, 2002/04/03 15:30:13
Line 1 Line 1
 # The LearningOnline Network with CAPA  # The LearningOnline Network with CAPA
 # Server for RAT Maps  # Server for RAT Maps
 #  #
   # $Id$
   #
   # Copyright Michigan State University Board of Trustees
   #
   # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
   #
   # LON-CAPA is free software; you can redistribute it and/or modify
   # it under the terms of the GNU General Public License as published by
   # the Free Software Foundation; either version 2 of the License, or
   # (at your option) any later version.
   #
   # LON-CAPA is distributed in the hope that it will be useful,
   # but WITHOUT ANY WARRANTY; without even the implied warranty of
   # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   # GNU General Public License for more details.
   #
   # You should have received a copy of the GNU General Public License
   # along with LON-CAPA; if not, write to the Free Software
   # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   #
   # /home/httpd/html/adm/gpl.txt
   #
   # http://www.lon-capa.org/
   #
 # (Edit Handler for RAT Maps  # (Edit Handler for RAT Maps
 # (TeX Content Handler  # (TeX Content Handler
 #  #
Line 8 Line 32
 # 7/1 Gerd Kortemeyer)  # 7/1 Gerd Kortemeyer)
 # 7/1,7/3,7/4,7/7,7/8,7/10,7/26,10/2 Gerd Kortemeyer  # 7/1,7/3,7/4,7/7,7/8,7/10,7/26,10/2 Gerd Kortemeyer
 # 4/30/2001 Scott Harrison  # 4/30/2001 Scott Harrison
 # 5/3,06/25 Gerd Kortemeyer  # 5/3,06/25,07/03,07/04,07/05 Gerd Kortemeyer
   
 package Apache::lonratsrv;  package Apache::lonratsrv;
   
Line 33  sub qtescape { Line 57  sub qtescape {
   
 sub qtunescape {  sub qtunescape {
     my $str=shift;      my $str=shift;
     $str=~s/\:/\&\#58\;/g;      $str=~s/\:/\&colon\;/g;
     $str=~s/\'/\&\#39\;/g;      $str=~s/\'/\&\#39\;/g;
     $str=~s/\,/\&\#44\;/g;      $str=~s/\,/\&\#44\;/g;
     $str=~s/\"/\&\#34\;/g;      $str=~s/\"/\&\#34\;/g;
Line 84  sub loadmap { Line 108  sub loadmap {
                     $outstr.='<:>';                      $outstr.='<:>';
                     $outstr.=qtunescape($token->[2]->{'title'}).":";                      $outstr.=qtunescape($token->[2]->{'title'}).":";
                     $outstr.=qtunescape($token->[2]->{'src'}).":";                      $outstr.=qtunescape($token->[2]->{'src'}).":";
                     if ($token->[2]->{'src'}=~/\/\//) {                      if ($token->[2]->{'external'} eq 'true') {
                         $outstr.='true:';                          $outstr.='true:';
                     } else {                      } else {
                         $outstr.='false:';                          $outstr.='false:';
Line 147  sub loadmap { Line 171  sub loadmap {
 # ------------------------------------------------------------------- Parameter  # ------------------------------------------------------------------- Parameter
                 } elsif ($token->[1] eq 'param') {                  } elsif ($token->[1] eq 'param') {
                     $outstr.='<&>objparms<:>'.$token->[2]->{'to'}.'<:>'.                      $outstr.='<&>objparms<:>'.$token->[2]->{'to'}.'<:>'.
                              $token->[2]->{'type'}.'___'.$token->[2]->{'name'}                                                                                 $token->[2]->{'type'}.'___'.$token->[2]->{'name'}
                                                  .'___'.$token->[2]->{'value'};                                                   .'___'.$token->[2]->{'value'};
                 } elsif ($graphmode) {                  } elsif ($graphmode) {
 # --------------------------------------------- All other tags (graphical only)  # --------------------------------------------- All other tags (graphical only)
Line 174  sub loadmap { Line 198  sub loadmap {
   
 sub savemap {  sub savemap {
     my ($fn,$errtext)=@_;      my ($fn,$errtext)=@_;
       my %alltypes;
       my %allvalues;
     if (($fn=~/\.sequence$/) ||      if (($fn=~/\.sequence$/) ||
         ($fn=~/\.page$/)) {          ($fn=~/\.page$/)) {
   
Line 199  sub savemap { Line 225  sub savemap {
        if ($comp[1]!~/^http\:\/\//) {         if ($comp[1]!~/^http\:\/\//) {
    $comp[1]='http://'.$comp[1];     $comp[1]='http://'.$comp[1];
                        }                         }
                          $comp[1].='" external="true';
                    } else {                     } else {
        if ($comp[1]=~/^http\:\/\//) {         if ($comp[1]=~/^http\:\/\//) {
    $comp[1]=~s/^http\:\/\/[^\/]*\//\//;     $comp[1]=~s/^http\:\/\/[^\/]*\//\//;
Line 233  sub savemap { Line 260  sub savemap {
                $outstr.=' index="'.$parts[1].'"';                 $outstr.=' index="'.$parts[1].'"';
                $outstr.="></link>\n";                 $outstr.="></link>\n";
            } elsif ($parts[0] eq 'objparms') {             } elsif ($parts[0] eq 'objparms') {
                  undef %alltypes;
                  undef %allvalues;
                map {                 map {
                    my ($type,$name,$value)=split(/\_\_\_/,$_);                     my ($type,$name,$value)=split(/\_\_\_/,$_);
                    $outstr.='<param to="'.$parts[1].'" type="'.$type.'"'                     $alltypes{$name}=$type;
                           .' name="'.$name.'" value="'.$value.'">'                     $allvalues{$name}=$value;
                           ."</param>\n";  
                } split(/:/,$parts[$#parts]);                 } split(/:/,$parts[$#parts]);
                  map {
                      $outstr.='<param to="'.$parts[1].'" type="'
                             .$alltypes{$_}.'" name="'.$_
                             .'" value="'.$allvalues{$_}.'">'
                             ."</param>\n";
                  } keys %allvalues;
            } elsif (($parts[0] ne '') && ($graphdef)) {             } elsif (($parts[0] ne '') && ($graphdef)) {
 # ------------------------------------------------------------- Graphical input  # ------------------------------------------------------------- Graphical input
                $outstr.='<'.$parts[0];                 $outstr.='<'.$parts[0];
Line 256  sub savemap { Line 290  sub savemap {
              print $fh $outstr;               print $fh $outstr;
              $errtext.="Map saved as $fn. ";               $errtext.="Map saved as $fn. ";
   } else {    } else {
              $errtext.='Could not write file $fn. Map not saved. ';               $errtext.='Could not write file '.$fn.'.  Map not saved. ';
   }    }
         }          }
     } else {      } else {

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


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