Diff for /loncom/xml/lonxml.pm between versions 1.439 and 1.443

version 1.439, 2007/02/18 02:10:04 version 1.443, 2007/04/07 01:21:59
Line 585  sub callsub { Line 585  sub callsub {
   } elsif ($token->[0] eq 'E') {    } elsif ($token->[0] eq 'E') {
     $currentstring = &Apache::edit::tag_end($target,$token);      $currentstring = &Apache::edit::tag_end($target,$token);
   }    }
  } elsif ($target eq 'modified') {   }
         }
         if ($target eq 'modified' && $nodefault eq '') {
     if ($currentstring eq '') {
         if ($token->[0] eq 'S') {
     $currentstring = $token->[4];
         } elsif ($token->[0] eq 'E') {
     $currentstring = $token->[2];
         } else {
     $currentstring = $token->[2];
         }
     }
   if ($token->[0] eq 'S') {    if ($token->[0] eq 'S') {
     $currentstring = $token->[4];  
     $currentstring.=&Apache::edit::handle_insert();      $currentstring.=&Apache::edit::handle_insert();
   } elsif ($token->[0] eq 'E') {    } elsif ($token->[0] eq 'E') {
     $currentstring = $token->[2];  
             $currentstring.=&Apache::edit::handle_insertafter($token->[1]);              $currentstring.=&Apache::edit::handle_insertafter($token->[1]);
   } else {  
     $currentstring = $token->[2];  
   }    }
  }  
       }        }
     }      }
     use strict 'refs';      use strict 'refs';
Line 1567  sub error { Line 1573  sub error {
  if ( $symb && $env{'request.course.id'} ) {   if ( $symb && $env{'request.course.id'} ) {
     my $cnum=$env{'course.'.$env{'request.course.id'}.'.num'};      my $cnum=$env{'course.'.$env{'request.course.id'}.'.num'};
     my $cdom=$env{'course.'.$env{'request.course.id'}.'.domain'};      my $cdom=$env{'course.'.$env{'request.course.id'}.'.domain'};
     my (undef,%users)=&Apache::lonfeedback::decide_receiver(undef,0,1,1,1);      my (undef,%users)=&Apache::lonmsg::decide_receiver(undef,0,1,1,1);
     my $declutter=&Apache::lonnet::declutter($env{'request.filename'});      my $declutter=&Apache::lonnet::declutter($env{'request.filename'});
             my $baseurl = &Apache::lonnet::clutter($declutter);              my $baseurl = &Apache::lonnet::clutter($declutter);
     my @userlist;      my @userlist;
Line 1692  sub get_param_var { Line 1698  sub get_param_var {
   }    }
 }  }
   
 sub register_insert_tab {  
   my @data = split /\n/, &Apache::lonnet::getfile('/home/httpd/lonTabs/insertlist.tab');  
   my $i;  
   my $tagnum=0;  
   my @order;  
   for ($i=0;$i < $#data; $i++) {  
     my $line = $data[$i];  
     if ( $line =~ /^\#/ || $line =~ /^\s*\n/) { next; }  
     if ( $line =~ /TABLE/ ) { last; }  
     my ($tag,$descrip,$color,$function,$show,$helpfile,$helpdesc) = split(/,/, $line);  
     if ($tag) {  
       $insertlist{"$tagnum.tag"} = $tag;  
       $insertlist{"$tag.description"} = $descrip;  
       $insertlist{"$tag.color"} = $color;  
       $insertlist{"$tag.function"} = $function;  
       if (!defined($show)) { $show='yes'; }  
       $insertlist{"$tag.show"}= $show;  
       $insertlist{"$tag.helpfile"} = $helpfile;  
       $insertlist{"$tag.helpdesc"} = $helpdesc;  
       $insertlist{"$tag.num"}=$tagnum;  
       $tagnum++;  
     }  
   }  
   $i++; #skipping TABLE line  
   $tagnum = 0;  
   for (;$i < $#data;$i++) {  
     my $line = $data[$i];  
     my ($mnemonic,@which) = split(/ +/,$line);  
     my $tag = $insertlist{"$tagnum.tag"};  
     for (my $j=0;$j <=$#which;$j++) {  
       if ( $which[$j] eq 'Y' ) {  
  if ($insertlist{"$j.show"} ne 'no') {  
   push(@{ $insertlist{"$tag.which"} },$insertlist{"$j.tag"});  
  }  
       }  
     }  
     $tagnum++;  
   }  
 }  
   
 sub register_insert_xml {  sub register_insert_xml {
     my $parser = HTML::LCParser->new($Apache::lonnet::perlvar{'lonTabDir'}      my $parser = HTML::LCParser->new($Apache::lonnet::perlvar{'lonTabDir'}
      .'/insertlist.xml');       .'/insertlist.xml');
     my ($tagnum,$in_help)=(0,0);      my ($tagnum,$in_help)=(0,0);
       my @alltags;
     my $tag;      my $tag;
     while (my $token = $parser->get_token()) {      while (my $token = $parser->get_token()) {
  if ($token->[0] eq 'S') {   if ($token->[0] eq 'S') {
Line 1744  sub register_insert_xml { Line 1711  sub register_insert_xml {
  $tag = $token->[2]{'name'};   $tag = $token->[2]{'name'};
  $insertlist{"$tagnum.tag"} = $tag;   $insertlist{"$tagnum.tag"} = $tag;
  $insertlist{"$tag.num"}   = $tagnum;   $insertlist{"$tag.num"}   = $tagnum;
    push(@alltags,$tag);
     } elsif ($in_help && $token->[1] eq 'file') {      } elsif ($in_help && $token->[1] eq 'file') {
  $key = $tag.'.helpfile';   $key = $tag.'.helpfile';
     } elsif ($in_help && $token->[1] eq 'description') {      } elsif ($in_help && $token->[1] eq 'description') {
Line 1757  sub register_insert_xml { Line 1725  sub register_insert_xml {
     } elsif ($token->[1] eq 'help') {      } elsif ($token->[1] eq 'help') {
  $in_help=1;   $in_help=1;
     } elsif ($token->[1] eq 'allow') {      } elsif ($token->[1] eq 'allow') {
  my $allow = $parser->get_text();   $key = $tag.'.allow';
  foreach my $element (split(',',$allow)) {  
     $element =~ s/(^\s*|\s*$ )//gx;  
     push(@{ $insertlist{$tag.'.which'} },$element);  
  }  
     }      }
     if (defined($key)) {      if (defined($key)) {
  $insertlist{$key} = $parser->get_text();   $insertlist{$key} = $parser->get_text();
Line 1776  sub register_insert_xml { Line 1740  sub register_insert_xml {
     }      }
  }   }
     }      }
       
       # parse the allows and ignore tags set to <show>no</show>
       foreach my $tag (@alltags) {
    my $allow =  $insertlist{"$tag.allow"};
           foreach my $element (split(',',$allow)) {
       $element =~ s/(^\s*|\s*$ )//gx;
       if ($insertlist{"$element.show"} ne 'no') {
    push(@{ $insertlist{$tag.'.which'} },$element);
       }
    }
       }
 }  }
   
 sub register_insert {  sub register_insert {
 #    &register_insert_tab(@_);  
 #    &dump_insertlist('1');  
 #    undef(%insertlist);  
     return &register_insert_xml(@_);      return &register_insert_xml(@_);
 #    &dump_insertlist('2');  #    &dump_insertlist('2');
 }  }

Removed from v.1.439  
changed lines
  Added in v.1.443


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