Diff for /loncom/xml/lonxml.pm between versions 1.162 and 1.171

version 1.162, 2002/03/25 20:06:08 version 1.171, 2002/05/21 02:26:53
Line 60 Line 60
   
 package Apache::lonxml;   package Apache::lonxml; 
 use vars   use vars 
 qw(@pwd @outputstack $redirection $import @extlinks $metamode $evaluate %insertlist @namespace);  qw(@pwd @outputstack $redirection $import @extlinks $metamode $evaluate %insertlist @namespace $prevent_entity_encode);
 use strict;  use strict;
 use HTML::TokeParser();  use HTML::LCParser();
 use HTML::TreeBuilder();  use HTML::TreeBuilder();
 use HTML::Entities();  use HTML::Entities();
 use Safe();  use Safe();
Line 129  $evaluate = 1; Line 129  $evaluate = 1;
 # stores the list of active tag namespaces  # stores the list of active tag namespaces
 @namespace=();  @namespace=();
   
   # if 0 all high ASCII characters will be encoded into HTML Entities
   $prevent_entity_encode=0;
   
 # has the dynamic menu been updated to know about this resource  # has the dynamic menu been updated to know about this resource
 $Apache::lonxml::registered=0;  $Apache::lonxml::registered=0;
   
Line 176  sub xmlend { Line 179  sub xmlend {
                   }                    }
                   my $sender='Anonymous';                    my $sender='Anonymous';
                   if ((!$contrib{$idx.':anonymous'}) || ($seeid)) {                    if ((!$contrib{$idx.':anonymous'}) || ($seeid)) {
                       $sender=$contrib{$idx.':sendername'}.' at '.                        $sender=$contrib{$idx.':plainname'}.' ('.
       $contrib{$idx.':senderdomain'};                                $contrib{$idx.':sendername'}.' at '.
         $contrib{$idx.':senderdomain'}.')';
                       if ($contrib{$idx.':anonymous'}) {                        if ($contrib{$idx.':anonymous'}) {
   $sender.=' (anonymous)';    $sender.=' [anonymous] '.
                                        $contrib{$idx.':screenname'};
                       }                        }
                       if ($seeid) {                        if ($seeid) {
   if ($hidden) {    if ($hidden) {
Line 190  sub xmlend { Line 195  sub xmlend {
  $symb.':::'.$idx.'">Hide</a>';   $symb.':::'.$idx.'">Hide</a>';
   }    }
                       }                                           }                   
                     } else {
                         if ($contrib{$idx.':screenname'}) {
     $sender='<i>'.$contrib{$idx.':screenname'}.'</i>';
                         }
                   }                    }
   $discussion.='<p><b>'.$sender.'</b> ('.    $discussion.='<p><b>'.$sender.'</b> ('.
                       localtime($contrib{$idx.':timestamp'}).                        localtime($contrib{$idx.':timestamp'}).
Line 330  sub registerurl { Line 339  sub registerurl {
     if ($ENV{'browser.type'} eq 'explorer') { $nothing='javascript:void(0);'; }      if ($ENV{'browser.type'} eq 'explorer') { $nothing='javascript:void(0);'; }
     if (($ENV{'REQUEST_URI'}!~/^\/(res\/)*adm\//) || ($forcereg)) {      if (($ENV{'REQUEST_URI'}!~/^\/(res\/)*adm\//) || ($forcereg)) {
         my $hwkadd='';          my $hwkadd='';
         if ($ENV{'REQUEST_URI'}=~/\.(problem|exam|quiz|assess|survey|form)$/) {          if ($ENV{'request.filename'}=~/\.(problem|exam|quiz|assess|survey|form)$/) {
     if (&Apache::lonnet::allowed('vgr',$ENV{'request.course.id'})) {      if (&Apache::lonnet::allowed('vgr',$ENV{'request.course.id'})) {
  $hwkadd.=(<<ENDSUBM);   $hwkadd.=(<<ENDSUBM);
                      menu.switchbutton                       menu.switchbutton(7,1,'subm.gif','view sub','missions','gocmd("/adm/grades","submission")');
            (7,1,'subm.gif','view sub','missions',  
                 'gocmd("/adm/grades","submission")');  
 ENDSUBM  ENDSUBM
             }              }
     if (&Apache::lonnet::allowed('mgr',$ENV{'request.course.id'})) {      if (&Apache::lonnet::allowed('mgr',$ENV{'request.course.id'})) {
  $hwkadd.=(<<ENDGRDS);   $hwkadd.=(<<ENDGRDS);
                      menu.switchbutton                       menu.switchbutton(7,2,'pgrd.gif','problem','grades','gocmd("/adm/grades","gradingmenu")');
            (7,2,'pgrd.gif','problem','grades',  
                 'gocmd("/adm/grades","viewgrades")');  
 ENDGRDS  ENDGRDS
             }              }
     if (&Apache::lonnet::allowed('opa',$ENV{'request.course.id'})) {      if (&Apache::lonnet::allowed('opa',$ENV{'request.course.id'})) {
  $hwkadd.=(<<ENDPARM);   $hwkadd.=(<<ENDPARM);
                      menu.switchbutton                       menu.switchbutton(7,3,'pparm.gif','problem','parms','gocmd("/adm/parmset","set")');
            (7,3,'pparm.gif','problem','parms',  
                 'gocmd("/adm/parmset","set")');  
 ENDPARM  ENDPARM
             }              }
  }   }
Line 440  ENDDONOTREGTHIS Line 443  ENDDONOTREGTHIS
  # Inputs are the name of the html form being used   # Inputs are the name of the html form being used
  # and the name of the element the selected URL should   # and the name of the element the selected URL should
  # be placed in.   # be placed in.
           # openbrowser also takes arguments only and omit, which are
           # comma deliminated lists of file extensions to (only) show 
           # or omit.
           # Here we also set currentURL=null.
         $result .=<<"ENDBROWSERSCRIPT";          $result .=<<"ENDBROWSERSCRIPT";
 <script>  <script>
       menu.currentURL=null;
     var editbrowser;      var editbrowser;
     function openbrowser(formname,elementname,only,omit) {      function openbrowser(formname,elementname,only,omit) {
         var url = '/res/?';          var url = '/res/?';
Line 619  sub inner_xmlparse { Line 627  sub inner_xmlparse {
       #evaluate variable refs in result        #evaluate variable refs in result
       if ($result ne "") {        if ($result ne "") {
  if ( $#$parstack > -1 ) {   if ( $#$parstack > -1 ) {
   if ($Apache::lonxml::redirection) {    $result=&Apache::run::evaluate($result,$safeeval,$$parstack[-1]);
     $Apache::lonxml::outputstack['-1'] .=   
       &Apache::run::evaluate($result,$safeeval,$$parstack['-1']);  
   } else {  
     $finaloutput .= &Apache::run::evaluate($result,$safeeval,  
    $$parstack['-1']);  
   }  
  } else {   } else {
   $finaloutput .= &Apache::run::evaluate($result,$safeeval,'');    $result= &Apache::run::evaluate($result,$safeeval,'');
  }   }
  $result = '';        }
       }         # Encode any high ASCII characters
         if (!$Apache::lonxml::prevent_entity_encode) {
    $result=&HTML::Entities::encode($result,"\200-\377");
         }
         if ($Apache::lonxml::redirection) {
    $Apache::lonxml::outputstack['-1'] .= $result;
         } else {
    $finaloutput.=$result;
         }
         $result = '';
   
       if ($token->[0] eq 'E') {         if ($token->[0] eq 'E') { 
  &end_tag($stack,$parstack,$token);   &end_tag($stack,$parstack,$token);
       }        }
Line 643  sub inner_xmlparse { Line 655  sub inner_xmlparse {
   #   $finaloutput.=&endredirection;    #   $finaloutput.=&endredirection;
   # }    # }
   
   
   if (($ENV{'QUERY_STRING'}) && ($target eq 'web')) {    if (($ENV{'QUERY_STRING'}) && ($target eq 'web')) {
     $finaloutput=&afterburn($finaloutput);      $finaloutput=&afterburn($finaloutput);
   }    }
Line 814  sub setup_globals { Line 827  sub setup_globals {
     $Apache::lonxml::metamode = 0;      $Apache::lonxml::metamode = 0;
     $Apache::lonxml::evaluate = 0;      $Apache::lonxml::evaluate = 0;
     $Apache::lonxml::import = 0;      $Apache::lonxml::import = 0;
     } elsif ($target eq 'analyze') {
       $Apache::lonxml::redirection = 0;
       $Apache::lonxml::metamode = 0;
       $Apache::lonxml::evaluate = 1;
       $Apache::lonxml::import = 1;
   } else {    } else {
     $Apache::lonxml::redirection = 0;      $Apache::lonxml::redirection = 0;
     $Apache::lonxml::metamode = 0;      $Apache::lonxml::metamode = 0;
Line 987  sub get_all_text { Line 1005  sub get_all_text {
   
 sub newparser {  sub newparser {
   my ($parser,$contentref,$dir) = @_;    my ($parser,$contentref,$dir) = @_;
   push (@$parser,HTML::TokeParser->new($contentref));    push (@$parser,HTML::LCParser->new($contentref));
   $$parser['-1']->xml_mode('1');    $$parser['-1']->xml_mode('1');
   if ( $dir eq '' ) {    if ( $dir eq '' ) {
     push (@Apache::lonxml::pwd, $Apache::lonxml::pwd[$#Apache::lonxml::pwd]);      push (@Apache::lonxml::pwd, $Apache::lonxml::pwd[$#Apache::lonxml::pwd]);
Line 1110  BUTTONS Line 1128  BUTTONS
 <a name="editsection" />  <a name="editsection" />
 <form method="post">  <form method="post">
 <input type="hidden" name="editmode" value="Edit" />  <input type="hidden" name="editmode" value="Edit" />
 $buttons  $buttons<br />
 <textarea cols="80" rows="40" name="filecont">$filecontents</textarea>  <textarea cols="80" rows="40" name="filecont">$filecontents</textarea>
 $buttons  <br />$buttons
 <br />  <br />
 </form>  </form>
 ENDFOOTER  ENDFOOTER
Line 1231  sub debug { Line 1249  sub debug {
   
 sub error {  sub error {
   if (($Apache::lonxml::debug eq 1) || ($ENV{'request.state'} eq 'construct') ) {    if (($Apache::lonxml::debug eq 1) || ($ENV{'request.state'} eq 'construct') ) {
     print "<b>ERROR:</b>".join('<br />',@_)."<br />\n";      # If printing in construction space, put the error inside <pre></pre>
       print "<b>ERROR:</b>".join("\n",@_)."\n";
   } else {    } else {
     print "<b>An Error occured while processing this resource. The instructor has been notified.</b> <br />";      print "<b>An Error occured while processing this resource. The instructor has been notified.</b> <br />";
     #notify author      #notify author

Removed from v.1.162  
changed lines
  Added in v.1.171


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