Diff for /loncom/xml/lonxml.pm between versions 1.176 and 1.184

version 1.176, 2002/06/03 21:07:20 version 1.184, 2002/07/24 20:25:23
Line 331  sub registerurl { Line 331  sub registerurl {
     my $forcereg=shift;      my $forcereg=shift;
     my $target = shift;      my $target = shift;
     my $result = '';      my $result = '';
       if ($target eq 'edit') {
           $result .="<script>\n    menu.currentURL=null;\n".
               &Apache::loncommon::browser_and_searcher_javascript().
                   "\n</script>\n";
       }
     if ((($ENV{'request.publicaccess'}) ||       if ((($ENV{'request.publicaccess'}) || 
          (!&Apache::lonnet::is_on_map($ENV{'REQUEST_URI'}))) &&           (!&Apache::lonnet::is_on_map($ENV{'REQUEST_URI'}))) &&
         (!$forcereg)) {          (!$forcereg)) {
  return    return $result.
          '<script>function LONCAPAreg(){} function LONCAPAstale(){}</script>';           '<script>function LONCAPAreg(){} function LONCAPAstale(){}</script>';
     }      }
     if ($Apache::lonxml::registered && !$forcereg) { return ''; }      if ($Apache::lonxml::registered && !$forcereg) { return ''; }
     $Apache::lonxml::registered=1;      $Apache::lonxml::registered=1;
     my $nothing='';      my $nothing='';
     if ($ENV{'browser.type'} eq 'explorer') { $nothing='javascript:void(0);'; }      if ($ENV{'browser.type'} eq 'explorer') { $nothing='javascript:void(0);'; }
     my $timesync='menu.clock.setTime(1000*'.time.');';      my $timesync='menu.syncclock(1000*'.time.');';
     if (($ENV{'REQUEST_URI'}!~/^\/(res\/)*adm\//) || ($forcereg)) {      if (($ENV{'REQUEST_URI'}!~/^\/(res\/)*adm\//) || ($forcereg)) {
         my $hwkadd='';          my $hwkadd='';
         if ($ENV{'request.filename'}=~/\.(problem|exam|quiz|assess|survey|form)$/) {          if ($ENV{'request.filename'}=~/\.(problem|exam|quiz|assess|survey|form)$/) {
Line 379  ENDPARM Line 384  ENDPARM
           menu.switchbutton            menu.switchbutton
        (8,1,'eval.gif','evaluate','this','gopost("/adm/evaluate",currentURL)');         (8,1,'eval.gif','evaluate','this','gopost("/adm/evaluate",currentURL)');
           menu.switchbutton            menu.switchbutton
     (8,2,'fdbk.gif','feedback','on this','gopost("/adm/feedback",currentURL)');      (8,2,'fdbk.gif','feedback','discuss','gopost("/adm/feedback",currentURL)');
           menu.switchbutton            menu.switchbutton
      (8,3,'prt.gif','prepare','printout','gopost("/adm/printout",currentURL)');       (8,3,'prt.gif','prepare','printout','gopost("/adm/printout",currentURL)');
           menu.switchbutton            menu.switchbutton
Line 446  ENDREGTHIS Line 451  ENDREGTHIS
 </script>  </script>
 ENDDONOTREGTHIS  ENDDONOTREGTHIS
     }      }
     if ($target eq 'edit') {  
  # Javascript routines for construction space:  
  # openbrowser and opensearcher will start the file browser  
  # (lonindexer) and searcher (lonsearchcat) respectively.  
  # Inputs are the name of the html form being used  
  # and the name of the element the selected URL should  
  # 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";  
 <script>  
     menu.currentURL=null;  
     var editbrowser;  
     function openbrowser(formname,elementname,only,omit) {  
         var url = '/res/?';  
         if (editbrowser == null) {  
             url += 'launch=1&';  
         }  
         url += 'catalogmode=interactive&';  
         url += 'mode=edit&';  
         url += 'form=' + formname + '&';  
         if (only != null) {  
             url += 'only=' + only + '&';  
         }   
         if (omit != null) {  
             url += 'omit=' + omit + '&';  
         }  
         url += 'element=' + elementname + '';  
         var title = 'Browser';  
         var options = 'scrollbars=1,resizable=1,menubar=0';  
         options += ',width=700,height=600';  
         editbrowser = open(url,title,options,'1');  
         editbrowser.focus();  
     }  
     var editsearcher;  
     function opensearcher(formname,elementname) {  
         var url = '/adm/searchcat?';  
         if (editsearcher == null) {  
             url += 'launch=1&';  
         }  
         url += 'catalogmode=interactive&';  
         url += 'mode=edit&';  
         url += 'form=' + formname + '&';  
         url += 'element=' + elementname + '';  
         var title = 'Search';  
         var options = 'scrollbars=1,resizable=1,menubar=0';  
         options += ',width=700,height=600';  
         editsearcher = open(url,title,options,'1');  
         editsearcher.focus();  
     }  
 </script>  
 ENDBROWSERSCRIPT  
     }  
     return $result;      return $result;
 }  }
   
Line 524  sub xmlparse { Line 474  sub xmlparse {
  my ($request,$target,$content_file_string,$safeinit,%style_for_target) = @_;   my ($request,$target,$content_file_string,$safeinit,%style_for_target) = @_;
   
  &setup_globals($request,$target);   &setup_globals($request,$target);
   #
   # do we have a course style file?
   #
   
    if ($ENV{'request.course.id'}) {
        my $bodytext=
    $ENV{'course.'.$ENV{'request.course.id'}.'.default_xml_style'};
        if ($bodytext) {
          my $location=&Apache::lonnet::filelocation('',$bodytext);
          my $styletext=&Apache::lonnet::getfile($location);
          if ($styletext ne '-1') {
             %style_for_target = (%style_for_target,
                             &Apache::style::styleparser($target,$styletext));
          }
       }
    }
   
  #&printalltags();   #&printalltags();
  my @pars = ();   my @pars = ();
  my $pwd=$ENV{'request.filename'};   my $pwd=$ENV{'request.filename'};
Line 579  sub inner_xmlparse { Line 546  sub inner_xmlparse {
     while ($token = $$pars['-1']->get_token) {      while ($token = $$pars['-1']->get_token) {
       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') ) {
  if ($metamode<1) {   if ($metamode<1) {
   $result=$token->[1];      if ($target eq 'tex') {
    my @temp_array = @$stack;
    if ($temp_array[-1] ne 'm') {
       if ($temp_array[-1] ne 'tt') {
    if ($token->[1]=~m/\^/) {$token->[1]=~s/\^/\\verb|\^|/g;}
       } else {
    if ($token->[1]=~m/\^/) {$token->[1]=~s/\^/}\\verb|\^|{/g;}
       }
       if ($token->[1]=~m/>/) {$token->[1]=~s/>/\$>\$/g;}
       if ($token->[1]=~m/</) {$token->[1]=~s/</\$<\$/g;}
    }
       }
     $result.=$token->[1];
  }   }
       } elsif ($token->[0] eq 'PI') {        } elsif ($token->[0] eq 'PI') {
  if ($metamode<1) {   if ($metamode<1) {
Line 966  sub decreasedepth { Line 945  sub decreasedepth {
 #print "<br />e $Apache::lonxml::depth : $Apache::lonxml::olddepth : $token->[1] : $curdepth\n";  #print "<br />e $Apache::lonxml::depth : $Apache::lonxml::olddepth : $token->[1] : $curdepth\n";
 }  }
   
 sub get_all_text {  sub get_all_text_unbalanced {
    my($tag,$pars)= @_;
    my $token;
    my $result='';
    $tag='<'.$tag.'>';
    while ($token = $$pars[-1]->get_token) {
      if (($token->[0] eq 'T')||($token->[0] eq 'C')||($token->[0] eq 'D')) {
        $result.=$token->[1];
      } elsif ($token->[0] eq 'PI') {
        $result.=$token->[2];
      } elsif ($token->[0] eq 'S') {
        $result.=$token->[4];
      } elsif ($token->[0] eq 'E')  {
        $result.=$token->[2];
      }
      if ($result =~ /(.*)$tag(.*)/) {
        &Apache::lonxml::debug('Got a winner with leftovers ::'.$2);
        &Apache::lonxml::debug('Result is :'.$1);
        $result=$1;
        my $redo=$tag.$2;
        &Apache::lonxml::newparser($pars,\$redo);
        last;
      }
    }
    return $result
   }
   
   sub get_all_text {
  my($tag,$pars)= @_;   my($tag,$pars)= @_;
  my $depth=0;   my $depth=0;
  my $token;   my $token;
Line 1240  ENDNOTFOUND Line 1245  ENDNOTFOUND
 #  #
   unless ($ENV{'request.state'} eq 'published') {    unless ($ENV{'request.state'} eq 'published') {
     if ($ENV{'form.editmode'} && (!($ENV{'form.viewmode'}))) {      if ($ENV{'form.editmode'} && (!($ENV{'form.viewmode'}))) {
       $result='<html><body bgcolor="#FFFFFF"></body></html>';   my $displayfile=$request->uri;
           $displayfile=~s/^\/[^\/]*//;
         $result='<html><body bgcolor="#FFFFFF"><h3>'.$displayfile.
                 '</h3></body></html>';
       $result=&inserteditinfo($result,$filecontents);        $result=&inserteditinfo($result,$filecontents);
     }      }
   }    }
Line 1255  ENDNOTFOUND Line 1263  ENDNOTFOUND
 sub debug {  sub debug {
   if ($Apache::lonxml::debug eq 1) {    if ($Apache::lonxml::debug eq 1) {
     $|=1;      $|=1;
     print("DEBUG:".join('<br />',@_)."<br />\n");      print("DEBUG:".&HTML::Entities::encode($_[0])."<br />\n");
   }    }
 }  }
   

Removed from v.1.176  
changed lines
  Added in v.1.184


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