Diff for /loncom/xml/lonxml.pm between versions 1.281 and 1.287

version 1.281, 2003/09/27 04:08:56 version 1.287, 2003/10/24 21:31:05
Line 96  use Apache::style(); Line 96  use Apache::style();
 use Apache::run();  use Apache::run();
 use Apache::londefdef();  use Apache::londefdef();
 use Apache::scripttag();  use Apache::scripttag();
   use Apache::languagetags();
 use Apache::edit();  use Apache::edit();
 use Apache::inputtags();  use Apache::inputtags();
 use Apache::outputtags();  use Apache::outputtags();
Line 163  $Apache::lonxml::style_end_values=''; Line 164  $Apache::lonxml::style_end_values='';
 #array of ssi calls that need to occur after we are done parsing  #array of ssi calls that need to occur after we are done parsing
 @Apache::lonxml::ssi_info=();  @Apache::lonxml::ssi_info=();
   
   #should we do the postag variable interpolation
   $Apache::lonxml::post_evaluate=1;
   
 sub xmlbegin {  sub xmlbegin {
   my $output='';    my $output='';
   if ($ENV{'browser.mathml'}) {    if ($ENV{'browser.mathml'}) {
Line 277  sub printtokenheader { Line 281  sub printtokenheader {
         my %idhash=&Apache::lonnet::idrget($tudom,($tuname));          my %idhash=&Apache::lonnet::idrget($tudom,($tuname));
  return    return 
  '<img align="right" src="/cgi-bin/barcode.png?encode='.$token.'" />'.   '<img align="right" src="/cgi-bin/barcode.png?encode='.$token.'" />'.
                'Checked out for '.$plainname.                 &mt('Checked out for').' '.$plainname.
                '<br />User: '.$tuname.' at '.$tudom.                 '<br />'.&mt('User').': '.$tuname.' at '.$tudom.
        '<br />ID: '.$idhash{$tuname}.         '<br />'.&mt('ID').': '.$idhash{$tuname}.
        '<br />CourseID: '.$tcrsid.         '<br />'.&mt('CourseID').': '.$tcrsid.
        '<br />Course: '.$ENV{'course.'.$tcrsid.'.description'}.         '<br />'.&mt('Course').': '.$ENV{'course.'.$tcrsid.'.description'}.
                '<br />DocID: '.$token.                 '<br />'.&mt('DocID').': '.$token.
                '<br />Time: '.localtime().'<hr />';                 '<br />'.&mt('Time').': '.&Apache::lonlocal::locallocaltime().'<hr />';
     } else {      } else {
         return $token;          return $token;
     }      }
Line 316  sub xmlparse { Line 320  sub xmlparse {
  &Apache::inputtags::initialize_inputtags();   &Apache::inputtags::initialize_inputtags();
  &Apache::outputtags::initialize_outputtags();   &Apache::outputtags::initialize_outputtags();
  &Apache::edit::initialize_edit();   &Apache::edit::initialize_edit();
    &Apache::londefdef::initialize_londefdef();
   
 #  #
 # do we have a course style file?  # do we have a course style file?
Line 477  sub inner_xmlparse { Line 482  sub inner_xmlparse {
  &Apache::lonxml::error("Unknown token event :$token->[0]:$token->[1]:");   &Apache::lonxml::error("Unknown token event :$token->[0]:$token->[1]:");
       }        }
       #evaluate variable refs in result        #evaluate variable refs in result
       if ($result ne "") {        if ($Apache::lonxml::post_evaluate &&$result ne "") {
   my $extras;    my $extras;
   if (!$Apache::lonxml::usestyle) {    if (!$Apache::lonxml::usestyle) {
       $extras=$Apache::lonxml::style_values;        $extras=$Apache::lonxml::style_values;
Line 488  sub inner_xmlparse { Line 493  sub inner_xmlparse {
   $result= &Apache::run::evaluate($result,$safeeval,$extras);    $result= &Apache::run::evaluate($result,$safeeval,$extras);
  }   }
       }        }
         $Apache::lonxml::post_evaluate=1;
   
       if (($token->[0] eq 'T') || ($token->[0] eq 'C') || ($token->[0] eq 'D') ) {        if (($token->[0] eq 'T') || ($token->[0] eq 'C') || ($token->[0] eq 'D') ) {
   #Style file definitions should be correct    #Style file definitions should be correct
   if ($target eq 'tex' && ($Apache::lonxml::usestyle)) {    if ($target eq 'tex' && ($Apache::lonxml::usestyle)) {
Line 608  sub setup_globals { Line 615  sub setup_globals {
   @Apache::lonxml::pwd=();    @Apache::lonxml::pwd=();
   @Apache::lonxml::extlinks=();    @Apache::lonxml::extlinks=();
   @Apache::lonxml::ssi_info=();    @Apache::lonxml::ssi_info=();
     $Apache::lonxml::post_evaluate=1;
   if ($target eq 'meta') {    if ($target eq 'meta') {
     $Apache::lonxml::redirection = 0;      $Apache::lonxml::redirection = 0;
     $Apache::lonxml::metamode = 1;      $Apache::lonxml::metamode = 1;
Line 651  sub init_safespace { Line 659  sub init_safespace {
   $safeeval->permit("entereval");    $safeeval->permit("entereval");
   $safeeval->permit(":base_math");    $safeeval->permit(":base_math");
   $safeeval->permit("sort");    $safeeval->permit("sort");
     $safeeval->permit("time");
   $safeeval->deny(":base_io");    $safeeval->deny(":base_io");
   $safehole->wrap(\&Apache::scripttag::xmlparse,$safeeval,'&xmlparse');    $safehole->wrap(\&Apache::scripttag::xmlparse,$safeeval,'&xmlparse');
   $safehole->wrap(\&Apache::outputtags::multipart,$safeeval,'&multipart');    $safehole->wrap(\&Apache::outputtags::multipart,$safeeval,'&multipart');
Line 861  sub store_counter { Line 870  sub store_counter {
   
 sub get_all_text {  sub get_all_text {
     my($tag,$pars,$style)= @_;      my($tag,$pars,$style)= @_;
     &Apache::lonxml::debug("Got a ".ref($pars));  
     my $gotfullstack=1;      my $gotfullstack=1;
     if (ref($pars) ne 'ARRAY') {      if (ref($pars) ne 'ARRAY') {
  $gotfullstack=0;   $gotfullstack=0;
  $pars=[$pars];   $pars=[$pars];
     }      }
     &Apache::lonxml::debug("Got a ".ref($style));  
     if (ref($style) ne 'HASH') {      if (ref($style) ne 'HASH') {
  $style={};   $style={};
     } else {  
  &Apache::lonhomework::showhash(%$style);  
     }      }
     my $depth=0;      my $depth=0;
     my $token;      my $token;
Line 895  sub get_all_text { Line 900  sub get_all_text {
  } elsif ($token->[0] eq 'E')  {   } elsif ($token->[0] eq 'E')  {
     if ( $token->[1] =~ /^$tag$/i) { $depth--; }      if ( $token->[1] =~ /^$tag$/i) { $depth--; }
     #skip sending back the last end tag      #skip sending back the last end tag
     if ($depth == 0 && exists($$style{'/'.$token->[1]})) {      if ($depth == 0 && exists($$style{'/'.$token->[1]}) && $Apache::lonxml::usestyle) {
  my $string=   my $string=
     '<LONCAPA_INTERNAL_TURN_STYLE_OFF end="yes" />'.      '<LONCAPA_INTERNAL_TURN_STYLE_OFF end="yes" />'.
  $$style{'/'.$token->[1]}.   $$style{'/'.$token->[1]}.
Line 1194  sub handler { Line 1199  sub handler {
     unless ($ENV{'request.state'} eq 'published') {      unless ($ENV{'request.state'} eq 'published') {
  if (($ENV{'form.savethisfile'}) || ($ENV{'form.attemptclean'})) {   if (($ENV{'form.savethisfile'}) || ($ENV{'form.attemptclean'})) {
     if (&storefile($file,$ENV{'form.filecont'})) {      if (&storefile($file,$ENV{'form.filecont'})) {
  $request->print("<font COLOR=\"#0000FF\">Updated: ". strftime("%d %b %H:%M:%S",localtime())." </font>");   $request->print("<font COLOR=\"#0000FF\">".&mt('Updated').": ".
   &Apache::lonlocal::locallocaltime(time)." </font>");
     }       } 
  }   }
     }      }
Line 1202  sub handler { Line 1208  sub handler {
     my $result = '';      my $result = '';
     my $filecontents=&Apache::lonnet::getfile($file);      my $filecontents=&Apache::lonnet::getfile($file);
     if ($filecontents eq -1) {      if ($filecontents eq -1) {
    my $bodytag=&Apache::loncommon::bodytag('File Error');
    my $fnf=&mt('File not found');
  $result=(<<ENDNOTFOUND);   $result=(<<ENDNOTFOUND);
 <html>  <html>
 <head>  <head>
 <title>File not found</title>  <title>$fnf</title>
 </head>  </head>
 <body bgcolor="#FFFFFF">  $bodytag
 <b>File not found: $file</b>  <b>$fnf: $file</b>
 </body>  </body>
 </html>  </html>
 ENDNOTFOUND  ENDNOTFOUND

Removed from v.1.281  
changed lines
  Added in v.1.287


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