--- loncom/xml/lonxml.pm 2003/02/07 21:55:57 1.228 +++ loncom/xml/lonxml.pm 2003/02/14 15:14:37 1.233 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # XML Parser Module # -# $Id: lonxml.pm,v 1.228 2003/02/07 21:55:57 albertel Exp $ +# $Id: lonxml.pm,v 1.233 2003/02/14 15:14:37 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -145,7 +145,7 @@ $Apache::lonxml::registered=0; $Apache::lonxml::request=''; # a problem number counter, and check on ether it is used -$Apache::lonxml::counter=1; +$Apache::lonxml::counter=4; $Apache::lonxml::counter_changed=0; #internal check on whether to look at style defs @@ -376,18 +376,6 @@ sub fontsettings() { return $headerstring; } - -## -## switchmenu - modeled on lonmenu::switchmenu, but better. -## Helper function for registerurl -## -sub switchmenu { - my ($row,$col,$imgsrc,$texttop,$textbot,$action,$description)=@_; - return(<\n". - "if (typeof menu != 'undefined') {menu.currentURL=null;}\n". + "if (typeof swmenu != 'undefined') {swmenu.currentURL=null;}\n". &Apache::loncommon::browser_and_searcher_javascript(). "\n\n"; } - if ((($ENV{'request.publicaccess'}) || + if (($ENV{'browser.interface'} eq 'textual') || + ((($ENV{'request.publicaccess'}) || (!&Apache::lonnet::is_on_map($ENV{'REQUEST_URI'}))) && - (!$forcereg)) { + (!$forcereg))) { return $result. ''; } @@ -410,27 +399,27 @@ sub registerurl { my $reopen=&Apache::lonmenu::reopenmenu(); my $newmail=''; if (&Apache::lonmsg::newmail()) { - $newmail='menu.setstatus("you have","messages");'; + $newmail='swmenu.setstatus("you have","messages");'; } - my $timesync='menu.syncclock(1000*'.time.');'; + my $timesync='swmenu.syncclock(1000*'.time.');'; if (($ENV{'REQUEST_URI'}!~/^\/(res\/)*adm\//) || ($forcereg)) { my $hwkadd=''; if ($ENV{'request.filename'}=~/\.(problem|exam|quiz|assess|survey|form)$/) { if (&Apache::lonnet::allowed('vgr',$ENV{'request.course.id'})) { $hwkadd.=(</\$>\$/g; #more - $current_token=~s//\$>\$/g; #more + $current_token=~s/[3]}) { unless ($_=~/\W/) { my $val=$token->[2]->{$_}; - $val =~ s/([\%\@\\\"])/\\$1/g; + $val =~ s/([\%\@\\\"\'])/\\$1/g; #if ($val =~ m/^[\%\@]/) { $val="\\".$val; } $temp .= "my \$$_=\"$val\";" } @@ -1500,14 +1498,22 @@ sub get_param_var { if ( ! $context ) { $context = -1; } my $args =''; if ( $#$parstack > (-2-$context) ) { $args=$$parstack[$context]; } + &Apache::lonxml::debug("Args are $args param is $param"); if ($case_insensitive) { if (! ($args=~s/(my \$)(\Q$param\E)(=\")/$1.lc($2).$3/ei)) { return undef; } } elsif ( $args !~ /my \$\Q$param\E=\"/ ) { return undef; } my $value=&Apache::run::run("{$args;".'return $'.$param.'}',$safeeval); #' - if ($value =~ /^[\$\@\%]/) { - return &Apache::run::run("return $value",$safeeval,1); + &Apache::lonxml::debug("first run is $value"); + if ($value =~ /^[\$\@\%]\w+$/) { + &Apache::lonxml::debug("doing second"); + my @result=&Apache::run::run("return $value",$safeeval,1); + if (!defined($result[0])) { + return $value + } else { + if (wantarray) { return @result; } else { return $result[0]; } + } } else { return $value; }