version 1.438, 2007/02/18 02:07:11
|
version 1.442, 2007/04/07 00:04:40
|
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 901 sub end_tag {
|
Line 907 sub end_tag {
|
|
|
sub initdepth { |
sub initdepth { |
@Apache::lonxml::depthcounter=(); |
@Apache::lonxml::depthcounter=(); |
$Apache::lonxml::depth=-1; |
undef($Apache::lonxml::last_depth_count); |
$Apache::lonxml::olddepth=-1; |
|
} |
} |
|
|
|
|
my @timers; |
my @timers; |
my $lasttime; |
my $lasttime; |
# $Apache::lonxml::depth -> current stack depth |
|
# @Apache::lonxml::depthcounter -> count of tags that exist so |
# @Apache::lonxml::depthcounter -> count of tags that exist so |
# far at each level |
# far at each level |
# $Apache::lonxml::olddepth -> when ascending, need to remember the count for the level below the current level (for example going from 1_2 -> 1 -> 1_3 need to rember that ) |
# $Apache::lonxml::last_depth_count -> when ascending, need to |
|
# remember the count for the level below the current level (for |
|
# example going from 1_2 -> 1 -> 1_3 need to remember the 2 ) |
|
|
sub increasedepth { |
sub increasedepth { |
my ($token) = @_; |
my ($token) = @_; |
$Apache::lonxml::depth++; |
push(@Apache::lonxml::depthcounter,$Apache::lonxml::last_depth_count+1); |
$Apache::lonxml::depthcounter[$Apache::lonxml::depth]++; |
undef($Apache::lonxml::last_depth_count); |
if ($Apache::lonxml::depthcounter[$Apache::lonxml::depth]==1) { |
|
$Apache::lonxml::olddepth=$Apache::lonxml::depth; |
|
} |
|
my $time; |
my $time; |
if ($Apache::lonxml::debug eq "1") { |
if ($Apache::lonxml::debug eq "1") { |
push(@timers,[&gettimeofday()]); |
push(@timers,[&gettimeofday()]); |
$time=&tv_interval($lasttime); |
$time=&tv_interval($lasttime); |
$lasttime=[&gettimeofday()]; |
$lasttime=[&gettimeofday()]; |
} |
} |
my $spacing=' 'x($Apache::lonxml::depth-1); |
my $spacing=' 'x($#Apache::lonxml::depthcounter); |
$Apache::lonxml::curdepth=join('_',@Apache::lonxml::depthcounter); |
$Apache::lonxml::curdepth=join('_',@Apache::lonxml::depthcounter); |
&Apache::lonxml::debug("s$spacing$Apache::lonxml::depth : $Apache::lonxml::olddepth : $Apache::lonxml::curdepth : $token->[1] : $time"); |
# &Apache::lonxml::debug("s$spacing$Apache::lonxml::depth : $Apache::lonxml::olddepth : $Apache::lonxml::curdepth : $token->[1] : $time"); |
#print "<br />s $Apache::lonxml::depth : $Apache::lonxml::olddepth : $curdepth : $token->[1]\n"; |
#print "<br />s $Apache::lonxml::depth : $Apache::lonxml::olddepth : $curdepth : $token->[1]\n"; |
} |
} |
|
|
sub decreasedepth { |
sub decreasedepth { |
my ($token) = @_; |
my ($token) = @_; |
$Apache::lonxml::depth--; |
if ( $#Apache::lonxml::depthcounter == -1) { |
if ($Apache::lonxml::depth<$Apache::lonxml::olddepth-1) { |
&Apache::lonxml::warning(&mt("Missing tags, unable to properly run file.")); |
$#Apache::lonxml::depthcounter--; |
|
$Apache::lonxml::olddepth=$Apache::lonxml::depth+1; |
|
} |
|
if ( $Apache::lonxml::depth < -1) { |
|
&Apache::lonxml::warning(&mt("Missing tags, unable to properly run file.")); |
|
$Apache::lonxml::depth='-1'; |
|
} |
} |
|
$Apache::lonxml::last_depth_count = pop(@Apache::lonxml::depthcounter); |
|
|
my ($timer,$time); |
my ($timer,$time); |
if ($Apache::lonxml::debug eq "1") { |
if ($Apache::lonxml::debug eq "1") { |
$timer=pop(@timers); |
$timer=pop(@timers); |
$time=&tv_interval($lasttime); |
$time=&tv_interval($lasttime); |
$lasttime=[&gettimeofday()]; |
$lasttime=[&gettimeofday()]; |
} |
} |
my $spacing=' 'x$Apache::lonxml::depth; |
my $spacing=' 'x($#Apache::lonxml::depthcounter); |
$Apache::lonxml::curdepth= |
$Apache::lonxml::curdepth = join('_',@Apache::lonxml::depthcounter); |
join('_',@Apache::lonxml::depthcounter[0..$Apache::lonxml::depth]); |
# &Apache::lonxml::debug("e$spacing$Apache::lonxml::depth : $Apache::lonxml::olddepth : $Apache::lonxml::curdepth : $token->[1] : $time : ".&tv_interval($timer)); |
&Apache::lonxml::debug("e$spacing$Apache::lonxml::depth : $Apache::lonxml::olddepth : $Apache::lonxml::curdepth : $token->[1] : $time : ".&tv_interval($timer)); |
|
#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"; |
} |
} |
|
|
Line 1575 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 1744 sub register_insert_xml {
|
Line 1742 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 1752 sub register_insert_xml {
|
Line 1751 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 1765 sub register_insert_xml {
|
Line 1765 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 1784 sub register_insert_xml {
|
Line 1780 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 { |