Diff for /loncom/xml/scripttag.pm between versions 1.42 and 1.46

version 1.42, 2001/07/06 19:50:02 version 1.46, 2001/07/12 14:29:17
Line 123  sub start_parserlib { Line 123  sub start_parserlib {
   my $bodytext;    my $bodytext;
   my $result ="";    my $result ="";
   my $error='';    my $error='';
   
   if ($target eq 'web' || $target eq 'grade' || $target eq 'meta' || $target eq 'edit') {    if ($target eq 'web' || $target eq 'grade' || $target eq 'meta' || $target eq 'edit') {
     $bodytext=$$parser[$#$parser]->get_text("/parserlib");      $bodytext=$$parser[$#$parser]->get_text("/parserlib");
     $bodytext=&Apache::run::evaluate($bodytext,$safeeval,      $bodytext=&Apache::run::evaluate($bodytext,$safeeval,
Line 197  sub start_import { Line 196  sub start_import {
   my $result ="";    my $result ="";
   
   $bodytext=Apache::run::evaluate($bodytext,$safeeval,$$parstack[$#$parstack]);    $bodytext=Apache::run::evaluate($bodytext,$safeeval,$$parstack[$#$parstack]);
   my $location=&Apache::lonnet::filelocation($Apache::lonxml::pwd['-1'],$bodytext);  
   my $file=&Apache::lonnet::getfile($location);  
   if ($file == -1) {  
     &Apache::lonxml::error("<b> Unable to find <i>$bodytext $location</i> for import</b>");  
     return "";  
   }  
   
   my $dir=$location;    if ($target eq 'web' || $target eq 'grade') {
   $dir=~s:/[^/]*$::;        # FIXME this probably needs to be smart about construction vs.
 #  &Apache::lonxml::debug("directory $dir $location file $file \n<b>END</b>\n");      # non construction space.
   &Apache::lonxml::newparser($parser,\$file,$dir);      my $location=&Apache::lonnet::filelocation($Apache::lonxml::pwd['-1'],$bodytext);
       my $file=&Apache::lonnet::getfile($location);
       if ($file == -1) {
         &Apache::lonxml::error("<b> Unable to find <i>$bodytext as $location</i> for import</b>");
         return "";
       }
   
       my $dir=$location;
       $dir=~s:/[^/]*$::;
       #  &Apache::lonxml::debug("directory $dir $location file $file \n<b>END</b>\n");
       &Apache::lonxml::newparser($parser,\$file,$dir);
     }
   if ($target eq "edit" ) {    if ($target eq "edit" ) {
       $result.=&Apache::edit::tag_start($target,$token);
     $result.=&Apache::edit::editfield($token->[1],$bodytext,'',40,1);      $result.=&Apache::edit::editfield($token->[1],$bodytext,'',40,1);
     $result.="Click<a href=\"/res/$bodytext\">here</a> to edit<br />"      #FIXME this need to convert $bodytext to be a contruction space reference
       #my $location=&Apache::lonnet::filelocation($Apache::lonxml::pwd['-1'],$bodytext);
       #$result.="Click<a href=\"$location\">here</a> to edit<br />"
   }    }
   return '';    if ($target eq 'modified') {
       $bodytext=$$parser[$#$parser]->get_text("/import");
       $result=&Apache::edit::modifiedfield($token);
       &Apache::lonxml::debug($result);
     }
     return $result;
 }  }
   
 sub end_import {  sub end_import {
     return '';
 }  }
   
 sub start_meta {  
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;  
   my $result = '';  
     if ($target ne 'meta') {  
        $result = &Apache::lonxml::get_all_text("/meta",$$parser[$#$parser]);   
        $result = '';  
       return $result;   
     } else {  
        return $result;   
     }  
 }  
   
 sub end_meta {  
 }  
   
 sub editfield {  
   my ($tag,$data)=@_;  
     
   my $count=0;  
   my $maxlength=-1;  
   map { $count++;  
  if (length($_) > $maxlength) { $maxlength = length ($_); }  
       } split ("\n", $data);  
     
   return "<br />\n&lt;$tag&gt;<br />\n&nbsp;&nbsp;&nbsp;<textarea rows=\"$count\" cols=\"$maxlength\" name=homework_edit_".$Apache::lonxml::curdepth.">$data</textarea><br />\n&lt;/$tag&gt;<br />\n";  
 }  
   
 sub getfilenothere {  
   my ($filename) = @_;  
   my $a="";  
     
   $filename=~ s/^\s*(\S+)\s*$/$1/; ## strip off leading and trailing spaces  
   $filename="/home/httpd/html/res".$filename;  
   if (! -e $filename ) {  
     &Apache::lonnet::subscribe($filename);  
     &Apache::lonnet::repcopy($filename);  
   }  
   if (! -e $filename ) { return -1; };  
   my $fh=Apache::File->new($filename);  
   while (<$fh>) {  
       $a .=$_;  
   }  
   return $a  
 }  
   
   
 sub start_storetc {  sub start_storetc {
   my ($target,$token,$parstack,$parser,$safeeval,$style)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
   my $result = '';    my $result = '';
   &Apache::lonxml::startredirection;    &Apache::lonxml::startredirection;
   return $result;     return $result; 
 }  }
   
 sub end_storetc {  sub end_storetc {
     my ($target,$token,$parstack,$parser,$safeeval,$style)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $result;      my $result;
     my $output=&Apache::lonxml::endredirection;      my $output=&Apache::lonxml::endredirection;
     $output =~ s/\"/\&quot\;/g;      $output =~ s/\"/\&quot\;/g;
Line 283  sub end_storetc { Line 249  sub end_storetc {
   
   
 sub start_physnet {  sub start_physnet {
       my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my ($target,$token,$parstack,$parser,$safeeval,$style)=@_;      my $bodytext = '/msu/physnet/cbi.sty';
     my $cbistylefile = &Apache::lonnet::getfile('/home/httpd/res/msu/physnet/cbi.sty');      my $location=&Apache::lonnet::filelocation($Apache::lonxml::pwd['-1'],$bodytext);
     %$style = (%$style,&Apache::style::styleparser($target,$cbistylefile));      my $cbistyletext=&Apache::lonnet::getfile($location);
     &Apache::lonxml::newparser($parser$$style{'physnet'});  
       %$style = (%$style,&Apache::style::styleparser($target,$cbistyletext));
       if ( defined($$style{'physnet'}) ) {
           &Apache::lonxml::newparser($parser,\$$style{'physnet'});
       }
     return "";      return "";
 }  }
   
   sub end_physnet {
   }
   
   
 1;  1;
 __END__  __END__

Removed from v.1.42  
changed lines
  Added in v.1.46


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