--- loncom/xml/lonxml.pm 2003/02/14 15:14:37 1.233 +++ loncom/xml/lonxml.pm 2003/02/17 20:10:08 1.235 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # XML Parser Module # -# $Id: lonxml.pm,v 1.233 2003/02/14 15:14:37 www Exp $ +# $Id: lonxml.pm,v 1.235 2003/02/17 20:10:08 sakharuk Exp $ # # Copyright Michigan State University Board of Trustees # @@ -376,210 +376,6 @@ sub fontsettings() { return $headerstring; } -sub registerurl { - my $forcereg=shift; - my $target = shift; - my $result = ''; - - if ($target eq 'edit') { - $result .="<script type=\"text/javascrtipt\">\n". - "if (typeof swmenu != 'undefined') {swmenu.currentURL=null;}\n". - &Apache::loncommon::browser_and_searcher_javascript(). - "\n</script>\n"; - } - if (($ENV{'browser.interface'} eq 'textual') || - ((($ENV{'request.publicaccess'}) || - (!&Apache::lonnet::is_on_map($ENV{'REQUEST_URI'}))) && - (!$forcereg))) { - return $result. - '<script type="text/javascript">function LONCAPAreg(){;} function LONCAPAstale(){}</script>'; - } - if ($Apache::lonxml::registered && !$forcereg) { return ''; } - $Apache::lonxml::registered=1; - my $reopen=&Apache::lonmenu::reopenmenu(); - my $newmail=''; - if (&Apache::lonmsg::newmail()) { - $newmail='swmenu.setstatus("you have","messages");'; - } - 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.=(<<ENDSUBM); - swmenu.switchbutton(7,1,'subm.gif','view sub','missions','gocmd("/adm/grades","submission")', - 'View user submissions for this assessment resource'); -ENDSUBM - } - if (&Apache::lonnet::allowed('mgr',$ENV{'request.course.id'})) { - $hwkadd.=(<<ENDGRDS); - swmenu.switchbutton(7,2,'pgrd.gif','problem','grades','gocmd("/adm/grades","gradingmenu")', - 'Modify user grades for this assessment resource'); -ENDGRDS - } - if (&Apache::lonnet::allowed('opa',$ENV{'request.course.id'})) { - $hwkadd.=(<<ENDPARM); - swmenu.switchbutton(7,3,'pparm.gif','problem','parms','gocmd("/adm/parmset","set")', - 'Modify deadlines, etc, for this assessment resource'); -ENDPARM - } - } - ### - ### Determine whether or not to display the 'cstr' button for this - ### resource - ### - my $editbutton = ''; - if ($ENV{'user.author'}) { - if ($ENV{'request.role'}=~/^(ca|au)/) { - # Set defaults for authors - my ($top,$bottom) = ('con-','struct'); - my $action = "go('/priv/".$ENV{'user.name'}."');"; - my $cadom = $ENV{'request.role.domain'}; - my $caname = $ENV{'user.name'}; - my $desc = "Enter my resource construction space"; - # Set defaults for co-authors - if ($ENV{'request.role'} =~ /^ca/) { - ($cadom,$caname)=($ENV{'request.role'}=~/(\w+)\/(\w+)$/); - ($top,$bottom) = ('co con-','struct'); - $action = "go('/priv/".$caname."');"; - $desc = "Enter construction space as co-author"; - } - # Check that we are on the correct machine - my $home = &Apache::lonnet::homeserver($caname,$cadom); - if ($home eq $Apache::lonnet::perlvar{'lonHostID'}) { - $editbutton=&Apache::lonmenu::switch - ('','',6,1,$top,,$bottom,$action,$desc); - } - } - ## - ## Determine if user can edit url. - ## - my $cfile=''; - my $cfuname=''; - my $cfudom=''; - if ($ENV{'request.filename'}) { - my $file=&Apache::lonnet::declutter($ENV{'request.filename'}); - $file=~s/^(\w+)\/(\w+)/\/priv\/$2/; - # Chech that the user has permission to edit this resource - ($cfuname,$cfudom)=&Apache::loncacc::constructaccess($file,$1); - if (defined($cfudom)) { - if (&Apache::lonnet::homeserver($cfuname,$cfudom) - eq $Apache::lonnet::perlvar{'lonHostID'}) { - $cfile=$file; - } - } - } - # Finally, turn the button on or off - if ($cfile) { - $editbutton=&Apache::lonmenu::switch - ('','',6,1,'cstr.gif','edit','resource', - "go('".$cfile."');","Edit this resource"); - } elsif ($editbutton eq '') { - $editbutton = ' swmenu.clearbut(6,1);'; - } - } - ### - ### - $result = (<<ENDREGTHIS); - -<script language="JavaScript"> -// BEGIN LON-CAPA Internal - - function LONCAPAreg() { - swmenu=$reopen; - swmenu.clearTimeout(swmenu.menucltim); - $timesync - $newmail - swmenu.currentURL=window.location.pathname; - swmenu.reloadURL=window.location.pathname; - swmenu.currentSymb="$ENV{'request.symb'}"; - swmenu.reloadSymb="$ENV{'request.symb'}"; - swmenu.currentStale=0; - swmenu.clearbut(3,1); - swmenu.switchbutton - (6,3,'catalog.gif','catalog','info','catalog_info()','Show catalog information'); - swmenu.switchbutton - (8,1,'eval.gif','evaluate','this','gopost("/adm/evaluate",currentURL)','Provide my evaluation of this resource'); - swmenu.switchbutton - (8,2,'fdbk.gif','feedback','discuss','gopost("/adm/feedback",currentURL)','Provide feedback messages or contribute to the course discussion about this resource'); - swmenu.switchbutton - (8,3,'prt.gif','prepare','printout','gopost("/adm/printout",currentURL)','Prepare a printable document'); - swmenu.switchbutton - (2,1,'back.gif','backward','','gopost("/adm/flip","back:"+currentURL)','Go to the previous resource in the course sequence'); - swmenu.switchbutton - (2,3,'forw.gif','forward','','gopost("/adm/flip","forward:"+currentURL)','Go to the next resource in the course sequence'); - swmenu.switchbutton - (9,1,'sbkm.gif','set','bookmark','set_bookmark()','Set a bookmark for this resource'); - swmenu.switchbutton - (9,2,'vbkm.gif','view','bookmark','edit_bookmarks()','Use or edit my bookmark collection'); - swmenu.switchbutton - (9,3,'anot.gif','anno-','tations','annotate()','Make notes and annotations about this resource'); - $hwkadd - $editbutton - } - - function LONCAPAstale() { - swmenu=$reopen - swmenu.currentStale=1; - if (swmenu.reloadURL!='' && swmenu.reloadURL!= null) { - swmenu.switchbutton - (3,1,'reload.gif','return','location','go(reloadURL)','Return to the last known location in the course sequence'); - } - swmenu.clearbut(7,1); - swmenu.clearbut(7,2); - swmenu.clearbut(7,3); - swmenu.menucltim=swmenu.setTimeout( - 'clearbut(2,1);clearbut(2,3);clearbut(8,1);clearbut(8,2);clearbut(8,3);'+ - 'clearbut(9,1);clearbut(9,2);clearbut(9,3);clearbut(6,3);clearbut(6,1)', - 2000); - - } - -// END LON-CAPA Internal -</script> -ENDREGTHIS - - } else { - $result = (<<ENDDONOTREGTHIS); - -<script language="JavaScript"> -// BEGIN LON-CAPA Internal - - function LONCAPAreg() { - swmenu=$reopen - $timesync - swmenu.currentStale=1; - swmenu.clearbut(2,1); - swmenu.clearbut(2,3); - swmenu.clearbut(8,1); - swmenu.clearbut(8,2); - swmenu.clearbut(8,3); - if (swmenu.currentURL) { - swmenu.switchbutton - (3,1,'reload.gif','return','location','go(currentURL)'); - } else { - swmenu.clearbut(3,1); - } - } - - function LONCAPAstale() { - } - -// END LON-CAPA Internal -</script> -ENDDONOTREGTHIS - } - return $result; -} - -sub loadevents() { - return 'LONCAPAreg();'; -} - -sub unloadevents() { - return 'LONCAPAstale();'; -} - sub printalltags { my $temp; foreach $temp (sort keys %Apache::lonxml::alltags) { @@ -661,10 +457,16 @@ sub htmlclean { sub latex_special_symbols { my ($current_token,$stack,$parstack,$where)=@_; - if ($where=='header') { + if ($where eq 'header') { + $current_token =~ s/\\/ /g; + $current_token =~ s/\{/\\\{/g; + $current_token =~ s/\}/\\\}/g; $current_token =~ s/_/ /g; $current_token =~ s/\^/ /g; $current_token =~ s/&/\\&/g; + $current_token =~ s/\#/\\\#/g; + $current_token =~ s/%/\\%/g; + $current_token =~ s/\$/\\\$/g; } else { $current_token=~s/\\ /\\char92 /g; $current_token=~s/\^/\\char94 /g;