version 1.226, 2003/01/30 22:19:09
|
version 1.233, 2003/02/14 15:14:37
|
Line 41
|
Line 41
|
# 6/1/1 Gerd Kortemeyer |
# 6/1/1 Gerd Kortemeyer |
# 2/21,3/13 Guy |
# 2/21,3/13 Guy |
# 3/29,5/4 Gerd Kortemeyer |
# 3/29,5/4 Gerd Kortemeyer |
# 5/10 Scott Harrison |
|
# 5/26 Gerd Kortemeyer |
# 5/26 Gerd Kortemeyer |
# 5/27 H. K. Ng |
# 5/27 H. K. Ng |
# 6/2,6/3,6/8,6/9 Gerd Kortemeyer |
# 6/2,6/3,6/8,6/9 Gerd Kortemeyer |
Line 146 $Apache::lonxml::registered=0;
|
Line 145 $Apache::lonxml::registered=0;
|
$Apache::lonxml::request=''; |
$Apache::lonxml::request=''; |
|
|
# a problem number counter, and check on ether it is used |
# a problem number counter, and check on ether it is used |
$Apache::lonxml::counter=1; |
$Apache::lonxml::counter=4; |
$Apache::lonxml::counter_changed=0; |
$Apache::lonxml::counter_changed=0; |
|
|
#internal check on whether to look at style defs |
#internal check on whether to look at style defs |
Line 377 sub fontsettings() {
|
Line 376 sub fontsettings() {
|
return $headerstring; |
return $headerstring; |
} |
} |
|
|
|
|
## |
|
## switchmenu - modeled on lonmenu::switchmenu, but better. |
|
## Helper function for registerurl |
|
## |
|
sub switchmenu { |
|
my ($row,$col,$imgsrc,$texttop,$textbot,$action,$description)=@_; |
|
return(<<ENDSMENU); |
|
menu.switchbutton($row,$col,'$imgsrc','$texttop','$textbot','$action','$description'); |
|
ENDSMENU |
|
} |
|
|
|
sub registerurl { |
sub registerurl { |
my $forcereg=shift; |
my $forcereg=shift; |
my $target = shift; |
my $target = shift; |
Line 396 sub registerurl {
|
Line 383 sub registerurl {
|
|
|
if ($target eq 'edit') { |
if ($target eq 'edit') { |
$result .="<script type=\"text/javascrtipt\">\n". |
$result .="<script type=\"text/javascrtipt\">\n". |
"if (typeof menu != 'undefined') {menu.currentURL=null;}\n". |
"if (typeof swmenu != 'undefined') {swmenu.currentURL=null;}\n". |
&Apache::loncommon::browser_and_searcher_javascript(). |
&Apache::loncommon::browser_and_searcher_javascript(). |
"\n</script>\n"; |
"\n</script>\n"; |
} |
} |
if ((($ENV{'request.publicaccess'}) || |
if (($ENV{'browser.interface'} eq 'textual') || |
|
((($ENV{'request.publicaccess'}) || |
(!&Apache::lonnet::is_on_map($ENV{'REQUEST_URI'}))) && |
(!&Apache::lonnet::is_on_map($ENV{'REQUEST_URI'}))) && |
(!$forcereg)) { |
(!$forcereg))) { |
return $result. |
return $result. |
'<script type="text/javascript">function LONCAPAreg(){;} function LONCAPAstale(){}</script>'; |
'<script type="text/javascript">function LONCAPAreg(){;} function LONCAPAstale(){}</script>'; |
} |
} |
Line 411 sub registerurl {
|
Line 399 sub registerurl {
|
my $reopen=&Apache::lonmenu::reopenmenu(); |
my $reopen=&Apache::lonmenu::reopenmenu(); |
my $newmail=''; |
my $newmail=''; |
if (&Apache::lonmsg::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)) { |
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)$/) { |
if (&Apache::lonnet::allowed('vgr',$ENV{'request.course.id'})) { |
if (&Apache::lonnet::allowed('vgr',$ENV{'request.course.id'})) { |
$hwkadd.=(<<ENDSUBM); |
$hwkadd.=(<<ENDSUBM); |
menu.switchbutton(7,1,'subm.gif','view sub','missions','gocmd("/adm/grades","submission")', |
swmenu.switchbutton(7,1,'subm.gif','view sub','missions','gocmd("/adm/grades","submission")', |
'View user submissions for this assessment resource'); |
'View user submissions for this assessment resource'); |
ENDSUBM |
ENDSUBM |
} |
} |
if (&Apache::lonnet::allowed('mgr',$ENV{'request.course.id'})) { |
if (&Apache::lonnet::allowed('mgr',$ENV{'request.course.id'})) { |
$hwkadd.=(<<ENDGRDS); |
$hwkadd.=(<<ENDGRDS); |
menu.switchbutton(7,2,'pgrd.gif','problem','grades','gocmd("/adm/grades","gradingmenu")', |
swmenu.switchbutton(7,2,'pgrd.gif','problem','grades','gocmd("/adm/grades","gradingmenu")', |
'Modify user grades for this assessment resource'); |
'Modify user grades for this assessment resource'); |
ENDGRDS |
ENDGRDS |
} |
} |
if (&Apache::lonnet::allowed('opa',$ENV{'request.course.id'})) { |
if (&Apache::lonnet::allowed('opa',$ENV{'request.course.id'})) { |
$hwkadd.=(<<ENDPARM); |
$hwkadd.=(<<ENDPARM); |
menu.switchbutton(7,3,'pparm.gif','problem','parms','gocmd("/adm/parmset","set")', |
swmenu.switchbutton(7,3,'pparm.gif','problem','parms','gocmd("/adm/parmset","set")', |
'Modify deadlines, etc, for this assessment resource'); |
'Modify deadlines, etc, for this assessment resource'); |
ENDPARM |
ENDPARM |
} |
} |
Line 453 ENDPARM
|
Line 441 ENDPARM
|
if ($ENV{'request.role'} =~ /^ca/) { |
if ($ENV{'request.role'} =~ /^ca/) { |
($cadom,$caname)=($ENV{'request.role'}=~/(\w+)\/(\w+)$/); |
($cadom,$caname)=($ENV{'request.role'}=~/(\w+)\/(\w+)$/); |
($top,$bottom) = ('co con-','struct'); |
($top,$bottom) = ('co con-','struct'); |
$action = 'go("/priv/'.$caname.'");'; |
$action = "go('/priv/".$caname."');"; |
$desc = "Enter construction space as co-author"; |
$desc = "Enter construction space as co-author"; |
} |
} |
# Check that we are on the correct machine |
# Check that we are on the correct machine |
my $home = &Apache::lonnet::homeserver($caname,$cadom); |
my $home = &Apache::lonnet::homeserver($caname,$cadom); |
if ($home eq $Apache::lonnet::perlvar{'lonHostID'}) { |
if ($home eq $Apache::lonnet::perlvar{'lonHostID'}) { |
$editbutton=&switchmenu |
$editbutton=&Apache::lonmenu::switch |
(6,1,$top,,$bottom,$action,$desc); |
('','',6,1,$top,,$bottom,$action,$desc); |
} |
} |
} |
} |
## |
## |
Line 483 ENDPARM
|
Line 471 ENDPARM
|
} |
} |
# Finally, turn the button on or off |
# Finally, turn the button on or off |
if ($cfile) { |
if ($cfile) { |
$editbutton=&switchmenu |
$editbutton=&Apache::lonmenu::switch |
(6,1,'cstr.gif','edit','resource', |
('','',6,1,'cstr.gif','edit','resource', |
'go("'.$cfile.'");',"Edit this resource"); |
"go('".$cfile."');","Edit this resource"); |
} elsif ($editbutton eq '') { |
} elsif ($editbutton eq '') { |
$editbutton = ' menu.clearbut(6,1);'; |
$editbutton = ' swmenu.clearbut(6,1);'; |
} |
} |
} |
} |
### |
### |
Line 498 ENDPARM
|
Line 486 ENDPARM
|
// BEGIN LON-CAPA Internal |
// BEGIN LON-CAPA Internal |
|
|
function LONCAPAreg() { |
function LONCAPAreg() { |
menu=$reopen; |
swmenu=$reopen; |
menu.clearTimeout(menu.menucltim); |
swmenu.clearTimeout(swmenu.menucltim); |
$timesync |
$timesync |
$newmail |
$newmail |
menu.currentURL=window.location.pathname; |
swmenu.currentURL=window.location.pathname; |
menu.reloadURL=window.location.pathname; |
swmenu.reloadURL=window.location.pathname; |
menu.currentSymb="$ENV{'request.symb'}"; |
swmenu.currentSymb="$ENV{'request.symb'}"; |
menu.reloadSymb="$ENV{'request.symb'}"; |
swmenu.reloadSymb="$ENV{'request.symb'}"; |
menu.currentStale=0; |
swmenu.currentStale=0; |
menu.clearbut(3,1); |
swmenu.clearbut(3,1); |
menu.switchbutton |
swmenu.switchbutton |
(6,3,'catalog.gif','catalog','info','catalog_info()','Show catalog information'); |
(6,3,'catalog.gif','catalog','info','catalog_info()','Show catalog information'); |
menu.switchbutton |
swmenu.switchbutton |
(8,1,'eval.gif','evaluate','this','gopost("/adm/evaluate",currentURL)','Provide my evaluation of this resource'); |
(8,1,'eval.gif','evaluate','this','gopost("/adm/evaluate",currentURL)','Provide my evaluation of this resource'); |
menu.switchbutton |
swmenu.switchbutton |
(8,2,'fdbk.gif','feedback','discuss','gopost("/adm/feedback",currentURL)','Provide feedback messages or contribute to the course discussion about this resource'); |
(8,2,'fdbk.gif','feedback','discuss','gopost("/adm/feedback",currentURL)','Provide feedback messages or contribute to the course discussion about this resource'); |
menu.switchbutton |
swmenu.switchbutton |
(8,3,'prt.gif','prepare','printout','gopost("/adm/printout",currentURL)','Prepare a printable document'); |
(8,3,'prt.gif','prepare','printout','gopost("/adm/printout",currentURL)','Prepare a printable document'); |
menu.switchbutton |
swmenu.switchbutton |
(2,1,'back.gif','backward','','gopost("/adm/flip","back:"+currentURL)','Go to the previous resource in the course sequence'); |
(2,1,'back.gif','backward','','gopost("/adm/flip","back:"+currentURL)','Go to the previous resource in the course sequence'); |
menu.switchbutton |
swmenu.switchbutton |
(2,3,'forw.gif','forward','','gopost("/adm/flip","forward:"+currentURL)','Go to the next resource in the course sequence'); |
(2,3,'forw.gif','forward','','gopost("/adm/flip","forward:"+currentURL)','Go to the next resource in the course sequence'); |
menu.switchbutton |
swmenu.switchbutton |
(9,1,'sbkm.gif','set','bookmark','set_bookmark()','Set a bookmark for this resource'); |
(9,1,'sbkm.gif','set','bookmark','set_bookmark()','Set a bookmark for this resource'); |
menu.switchbutton |
swmenu.switchbutton |
(9,2,'vbkm.gif','view','bookmark','edit_bookmarks()','Use or edit my bookmark collection'); |
(9,2,'vbkm.gif','view','bookmark','edit_bookmarks()','Use or edit my bookmark collection'); |
menu.switchbutton |
swmenu.switchbutton |
(9,3,'anot.gif','anno-','tations','annotate()','Make notes and annotations about this resource'); |
(9,3,'anot.gif','anno-','tations','annotate()','Make notes and annotations about this resource'); |
$hwkadd |
$hwkadd |
$editbutton |
$editbutton |
} |
} |
|
|
function LONCAPAstale() { |
function LONCAPAstale() { |
menu=$reopen |
swmenu=$reopen |
menu.currentStale=1; |
swmenu.currentStale=1; |
if (menu.reloadURL!='' && menu.reloadURL!= null) { |
if (swmenu.reloadURL!='' && swmenu.reloadURL!= null) { |
menu.switchbutton |
swmenu.switchbutton |
(3,1,'reload.gif','return','location','go(reloadURL)','Return to the last known location in the course sequence'); |
(3,1,'reload.gif','return','location','go(reloadURL)','Return to the last known location in the course sequence'); |
} |
} |
menu.clearbut(7,1); |
swmenu.clearbut(7,1); |
menu.clearbut(7,2); |
swmenu.clearbut(7,2); |
menu.clearbut(7,3); |
swmenu.clearbut(7,3); |
menu.menucltim=menu.setTimeout( |
swmenu.menucltim=swmenu.setTimeout( |
'clearbut(2,1);clearbut(2,3);clearbut(8,1);clearbut(8,2);clearbut(8,3);'+ |
'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)', |
'clearbut(9,1);clearbut(9,2);clearbut(9,3);clearbut(6,3);clearbut(6,1)', |
2000); |
2000); |
Line 558 ENDREGTHIS
|
Line 546 ENDREGTHIS
|
// BEGIN LON-CAPA Internal |
// BEGIN LON-CAPA Internal |
|
|
function LONCAPAreg() { |
function LONCAPAreg() { |
menu=$reopen |
swmenu=$reopen |
$timesync |
$timesync |
menu.currentStale=1; |
swmenu.currentStale=1; |
menu.clearbut(2,1); |
swmenu.clearbut(2,1); |
menu.clearbut(2,3); |
swmenu.clearbut(2,3); |
menu.clearbut(8,1); |
swmenu.clearbut(8,1); |
menu.clearbut(8,2); |
swmenu.clearbut(8,2); |
menu.clearbut(8,3); |
swmenu.clearbut(8,3); |
if (menu.currentURL) { |
if (swmenu.currentURL) { |
menu.switchbutton |
swmenu.switchbutton |
(3,1,'reload.gif','return','location','go(currentURL)'); |
(3,1,'reload.gif','return','location','go(currentURL)'); |
} else { |
} else { |
menu.clearbut(3,1); |
swmenu.clearbut(3,1); |
} |
} |
} |
} |
|
|
Line 604 sub xmlparse {
|
Line 592 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); |
|
&Apache::inputtags::initialize_inputtags(); |
|
&Apache::outputtags::initialize_outputtags(); |
|
&Apache::edit::initialize_edit(); |
# |
# |
# do we have a course style file? |
# do we have a course style file? |
# |
# |
Line 669 sub htmlclean {
|
Line 660 sub htmlclean {
|
} |
} |
|
|
sub latex_special_symbols { |
sub latex_special_symbols { |
my ($current_token,$stack,$parstack)=@_; |
my ($current_token,$stack,$parstack,$where)=@_; |
$current_token=~s/\\ /\\char92 /g; |
if ($where=='header') { |
$current_token=~s/\^/\\char94 /g; |
$current_token =~ s/_/ /g; |
$current_token=~s/\~/\\char126 /g; |
$current_token =~ s/\^/ /g; |
$current_token=~s/(&[^a-z\#])/\\$1/g; |
$current_token =~ s/&/\\&/g; |
$current_token=~s/([^&])\#/$1\\#/g; |
} else { |
$current_token=~s/(\$|_|{|})/\\$1/g; |
$current_token=~s/\\ /\\char92 /g; |
$current_token=~s/\\char92 /\\texttt{\\char92}/g; |
$current_token=~s/\^/\\char94 /g; |
$current_token=~s/>/\$>\$/g; #more |
$current_token=~s/\~/\\char126 /g; |
$current_token=~s/</\$<\$/g; #less |
$current_token=~s/(&[^a-z\#])/\\$1/g; |
if ($current_token=~m/\d%/) {$current_token =~ s/(\d)%/$1\\%/g;} #percent after digit |
$current_token=~s/([^&])\#/$1\\#/g; |
if ($current_token=~m/\s%/) {$current_token =~ s/(\s)%/$1\\%/g;} #persent after space |
$current_token=~s/(\$|_|{|})/\\$1/g; |
|
$current_token=~s/\\char92 /\\texttt{\\char92}/g; |
|
$current_token=~s/>/\$>\$/g; #more |
|
$current_token=~s/</\$<\$/g; #less |
|
if ($current_token=~m/\d%/) {$current_token =~ s/(\d)%/$1\\%/g;} #percent after digit |
|
if ($current_token=~m/\s%/) {$current_token =~ s/(\s)%/$1\\%/g;} #persent after space |
|
} |
return $current_token; |
return $current_token; |
} |
} |
|
|
Line 1145 sub get_all_text {
|
Line 1142 sub get_all_text {
|
} |
} |
} |
} |
} |
} |
|
if (($depth >=0) && ($#$pars == 0) ) { $top_empty=1; } |
if (($depth >=0) && ($#$pars > 0) ) { |
if (($depth >=0) && ($#$pars > 0) ) { |
pop(@$pars); |
pop(@$pars); |
pop(@Apache::lonxml::pwd); |
pop(@Apache::lonxml::pwd); |
} |
} |
if (($depth >=0) && ($#$pars == 0) ) { &debug("here4");$top_empty=1; } |
|
} |
} |
if ($top_empty && $depth >= 0) { |
if ($top_empty && $depth >= 0) { |
#never found the end tag ran out of text, throw error send back blank |
#never found the end tag ran out of text, throw error send back blank |
Line 1211 sub parstring {
|
Line 1208 sub parstring {
|
foreach (@{$token->[3]}) { |
foreach (@{$token->[3]}) { |
unless ($_=~/\W/) { |
unless ($_=~/\W/) { |
my $val=$token->[2]->{$_}; |
my $val=$token->[2]->{$_}; |
$val =~ s/([\%\@\\\"])/\\$1/g; |
$val =~ s/([\%\@\\\"\'])/\\$1/g; |
#if ($val =~ m/^[\%\@]/) { $val="\\".$val; } |
#if ($val =~ m/^[\%\@]/) { $val="\\".$val; } |
$temp .= "my \$$_=\"$val\";" |
$temp .= "my \$$_=\"$val\";" |
} |
} |
Line 1501 sub get_param_var {
|
Line 1498 sub get_param_var {
|
if ( ! $context ) { $context = -1; } |
if ( ! $context ) { $context = -1; } |
my $args =''; |
my $args =''; |
if ( $#$parstack > (-2-$context) ) { $args=$$parstack[$context]; } |
if ( $#$parstack > (-2-$context) ) { $args=$$parstack[$context]; } |
|
&Apache::lonxml::debug("Args are $args param is $param"); |
if ($case_insensitive) { |
if ($case_insensitive) { |
if (! ($args=~s/(my \$)(\Q$param\E)(=\")/$1.lc($2).$3/ei)) { |
if (! ($args=~s/(my \$)(\Q$param\E)(=\")/$1.lc($2).$3/ei)) { |
return undef; |
return undef; |
} |
} |
} elsif ( $args !~ /my \$\Q$param\E=\"/ ) { return undef; } |
} elsif ( $args !~ /my \$\Q$param\E=\"/ ) { return undef; } |
my $value=&Apache::run::run("{$args;".'return $'.$param.'}',$safeeval); #' |
my $value=&Apache::run::run("{$args;".'return $'.$param.'}',$safeeval); #' |
if ($value =~ /^[\$\@\%]/) { |
&Apache::lonxml::debug("first run is $value"); |
return &Apache::run::run("return $value",$safeeval,1); |
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 { |
} else { |
return $value; |
return $value; |
} |
} |