Diff for /rat/lonratsrv.pm between versions 1.15 and 1.21

version 1.15, 2001/07/05 13:12:42 version 1.21, 2002/08/19 21:15:08
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 45  sub qtunescape { Line 69  sub qtunescape {
 sub loadmap {  sub loadmap {
     my ($fn,$errtext)=@_;      my ($fn,$errtext)=@_;
     my $outstr='';      my $outstr='';
     my @content=();  
     my @obj=();      my @obj=();
     my @links=();      my @links=();
     if (-e $fn) {      my $instr='';
       if ($fn=~/^\/*uploaded\//) {
           $instr=&Apache::lonnet::getfile($fn);
       } elsif (-e $fn) {
           my @content=();
         {          {
     my $fh=Apache::File->new($fn);      my $fh=Apache::File->new($fn);
             @content=<$fh>;              @content=<$fh>;
         }          }
         my $instr=join('',@content);          $instr=join('',@content);
       }
       if ($instr) {
         my $parser = HTML::TokeParser->new(\$instr);          my $parser = HTML::TokeParser->new(\$instr);
         my $token;          my $token;
         my $graphmode=0;          my $graphmode=0;
Line 238  sub savemap { Line 267  sub savemap {
            } elsif ($parts[0] eq 'objparms') {             } elsif ($parts[0] eq 'objparms') {
                undef %alltypes;                 undef %alltypes;
                undef %allvalues;                 undef %allvalues;
                map {                 foreach (split(/:/,$parts[$#parts])) {
                    my ($type,$name,$value)=split(/\_\_\_/,$_);                     my ($type,$name,$value)=split(/\_\_\_/,$_);
                    $alltypes{$name}=$type;                     $alltypes{$name}=$type;
                    $allvalues{$name}=$value;                     $allvalues{$name}=$value;
                } split(/:/,$parts[$#parts]);                 }
                map {                 foreach (keys %allvalues) {
                     if ($allvalues{$_} ne '') {
                    $outstr.='<param to="'.$parts[1].'" type="'                     $outstr.='<param to="'.$parts[1].'" type="'
                           .$alltypes{$_}.'" name="'.$_                            .$alltypes{$_}.'" name="'.$_
                           .'" value="'.$allvalues{$_}.'">'                            .'" value="'.$allvalues{$_}.'">'
                           ."</param>\n";                            ."</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 260  sub savemap { Line 291  sub savemap {
            }             }
         } @tags;          } @tags;
         $outstr.="</map>\n";          $outstr.="</map>\n";
         {   if ($fn=~/^\/*uploaded\//) {
       $ENV{'form.output'}=$outstr;
               &Apache::lonnet::finishuserfileupload(
                 $ENV{'course.'.$ENV{'request.course.id'}.'.num'},
                 $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
                 $ENV{'course.'.$ENV{'request.course.id'}.'.home'},
                 'output',(split(/\//,$fn))[-1]);
           } else {
           my $fh;            my $fh;
           if ($fh=Apache::File->new(">$fn")) {            if ($fh=Apache::File->new(">$fn")) {
              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 {
Line 292  sub handler { Line 330  sub handler {
   $url=~s/\/loadonly\/ratserver$/\/save\/ratserver/;    $url=~s/\/loadonly\/ratserver$/\/save\/ratserver/;
       
   my $fn=$r->filename;    my $fn=$r->filename;
     my $lonDocRoot=$r->dir_config('lonDocRoot');
     if ( $fn =~ /$lonDocRoot/ ) {
         #internal authentication, needs fixup.
         $fn = $url;
         $fn=~s|^/~(\w+)|/home/$1/public_html|;
         $fn=~s|/[^/]*/ratserver$||;
     }
   my $errtext='';    my $errtext='';
   my $outtext='';    my $outtext='';
   

Removed from v.1.15  
changed lines
  Added in v.1.21


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