version 1.342, 2006/04/13 18:35:06
|
version 1.343, 2006/04/14 20:16:23
|
Line 69 sub end_tex {
|
Line 69 sub end_tex {
|
return ''; |
return ''; |
} |
} |
|
|
sub body_tag_start { |
|
my ($target,$background,$bgcolor)=@_; |
|
my $body_tag_start='<body onload="'.&Apache::lonmenu::loadevents().'" '. |
|
'onunload="'.&Apache::lonmenu::unloadevents().'" '; |
|
if ($env{'browser.imagesuppress'} eq 'on') { $background=''; } |
|
if ($background) { |
|
&Apache::lonxml::extlink($background); |
|
$body_tag_start.='background="'.$background.'" '; |
|
} else { |
|
if (($bgcolor) && ($env{'browser.blackwhite'} ne 'on')) { |
|
$body_tag_start.='bgcolor="'.$bgcolor.'" '; |
|
} else { |
|
$body_tag_start.='bgcolor="#ffffff"'; |
|
} |
|
} |
|
if ($env{'browser.fontenhance'} eq 'on') { |
|
$body_tag_start.=' style="font-size: x-large;" '; |
|
} |
|
$body_tag_start.='>'.&Apache::lonmenu::menubuttons(undef,$target,1); |
|
|
|
$body_tag_start.=&Apache::lontexconvert::init_math_support(); |
|
|
|
return $body_tag_start; |
|
} |
|
|
|
sub page_start { |
sub page_start { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$name)=@_; |
my %found; |
my %found; |
foreach my $taginside (@$tagstack) { |
foreach my $taginside (@$tagstack) { |
foreach my $taglookedfor ('html','body','form') { |
foreach my $taglookedfor ('html','body','form') { |
Line 103 sub page_start {
|
Line 78 sub page_start {
|
} |
} |
} |
} |
|
|
my $result; |
|
my $head_tag_start; |
if ($target eq 'tex') { |
|
return |
|
&Apache::londefdef::start_html($target,$token,$tagstack, |
|
$parstack,$parser,$safeeval); |
|
} |
|
|
|
my $page_start; |
if (!defined($found{'html'})) { |
if (!defined($found{'html'})) { |
$result=&Apache::londefdef::start_html($target,$token,$tagstack, |
|
$parstack,$parser,$safeeval); |
my $extra_head = &Apache::lonhtmlcommon::spellheader(); |
$head_tag_start='<head>'.&Apache::lonmenu::registerurl(undef,$target). |
|
&Apache::lonhtmlcommon::htmlareaheaders(). |
|
&Apache::lonhtmlcommon::spellheader(). |
|
&Apache::lonxml::fontsettings(); |
|
my $css_href = &Apache::lonnet::EXT('resource.0.cssfile'); |
my $css_href = &Apache::lonnet::EXT('resource.0.cssfile'); |
if ($css_href =~ /\S/) { |
if ($css_href =~ /\S/) { |
&Apache::lonxml::extlink($css_href); |
&Apache::lonxml::extlink($css_href); |
$head_tag_start = |
$extra_head .= |
'<link rel="stylesheet" type="text/css" href="'.$css_href.'" />'; |
'<link rel="stylesheet" type="text/css" href="'.$css_href.'" />'; |
} |
} |
if ($target eq 'edit') { |
if ($target eq 'edit') { |
$head_tag_start.=&Apache::edit::js_change_detection(); |
$extra_head.=&Apache::edit::js_change_detection(). |
} |
"<script type=\"text/javascript\">\n". |
|
"if (typeof swmenu != 'undefined') {swmenu.currentURL=null;}\n". |
|
&Apache::loncommon::browser_and_searcher_javascript(). |
|
"\n</script>\n"; |
|
|
|
} |
|
$page_start .= |
|
&Apache::loncommon::head($name,$extra_head, |
|
{'force_register' => |
|
($target ne 'edit') }); |
} |
} |
my $body_tag_start; |
|
if (!defined($found{'body'}) && $env{'request.state'} eq 'construct') { |
if (!defined($found{'body'}) && $env{'request.state'} eq 'construct') { |
if ($env{'environment.remote'} eq 'off') { |
if ($target eq 'web' || $target eq 'edit') { |
if ($target eq 'web' || $target eq 'edit') { |
$page_start.=&Apache::loncommon::bodytag(); |
$body_tag_start=&Apache::loncommon::bodytag(); |
$page_start.=&Apache::lonxml::message_location(); |
$body_tag_start.=&Apache::lonxml::message_location(); |
|
} |
|
} else { |
|
if ($target eq 'web' || $target eq 'edit') { |
|
$body_tag_start=&Apache::loncommon::bodytag(undef,undef,undef,1); |
|
$body_tag_start.=&Apache::lonxml::message_location(); |
|
} |
|
} |
} |
} elsif (!defined($found{'body'})) { |
} elsif (!defined($found{'body'})) { |
|
my %add_entries; |
my $background=&Apache::lonxml::get_param('background',$parstack, |
my $background=&Apache::lonxml::get_param('background',$parstack, |
$safeeval); |
$safeeval); |
|
if ($background ne '' ) { |
|
$add_entries{'background'} = $background; |
|
} |
my $bgcolor=&Apache::lonxml::get_param('bgcolor',$parstack, |
my $bgcolor=&Apache::lonxml::get_param('bgcolor',$parstack, |
$safeeval); |
$safeeval); |
$body_tag_start=&body_tag_start($target,$background,$bgcolor); |
|
|
if ($bgcolor eq '' ) { $bgcolor = '#FFFFFF'; } |
|
$page_start .= |
|
&Apache::loncommon::bodytag(undef,undef,\%add_entries,undef,undef, |
|
1,undef,undef,$bgcolor,$target,1); |
|
|
if ( ($target eq 'web' || $target eq 'webgrade') |
if ( ($target eq 'web' || $target eq 'webgrade') |
&& $env{'request.state'} ne 'construct') { |
&& $env{'request.state'} ne 'construct') { |
my ($symb,undef,undef,undef,$publicuser)= |
my ($symb,undef,undef,undef,$publicuser)= |
Line 148 sub page_start {
|
Line 137 sub page_start {
|
if ($symb eq '' && !$publicuser) { |
if ($symb eq '' && !$publicuser) { |
my $help = &Apache::loncommon::help_open_topic("Ambiguous_Reference"); |
my $help = &Apache::loncommon::help_open_topic("Ambiguous_Reference"); |
$help=&mt("Browsing resource, all submissions are temporary.")."<br />"; |
$help=&mt("Browsing resource, all submissions are temporary.")."<br />"; |
$body_tag_start.=$help; |
$page_start .= $help; |
} |
} |
} |
} |
$body_tag_start.=&Apache::lonxml::message_location(); |
$page_start .= &Apache::lonxml::message_location(); |
} |
} |
|
|
my $form_tag_start; |
my $form_tag_start; |
if (!defined($found{'form'})) { |
if (!defined($found{'form'})) { |
$form_tag_start='<form name="lonhomework" enctype="multipart/form-data" method="post" action="'; |
$form_tag_start='<form name="lonhomework" enctype="multipart/form-data" method="post" action="'; |
Line 163 sub page_start {
|
Line 153 sub page_start {
|
} |
} |
$form_tag_start.='>'; |
$form_tag_start.='>'; |
} |
} |
return ($result,$head_tag_start,$body_tag_start,$form_tag_start); |
return ($page_start,$form_tag_start); |
} |
} |
|
|
#use Time::HiRes(); |
#use Time::HiRes(); |
Line 597 sub start_problem {
|
Line 587 sub start_problem {
|
my $accessmsg; |
my $accessmsg; |
|
|
#should get back a <html> or the neccesary stuff to start XML/MathML |
#should get back a <html> or the neccesary stuff to start XML/MathML |
my ($result,$head_tag_start,$body_tag_start,$form_tag_start)= |
my $name= &get_resource_name($parstack,$safeeval); |
&page_start($target,$token,$tagstack,$parstack,$parser,$safeeval); |
my ($result,$form_tag_start)= |
|
&page_start($target,$token,$tagstack,$parstack,$parser,$safeeval, |
|
$name); |
if ($target eq 'tex' and $env{'request.symb'} =~ m/\.page_/) {$result='';} |
if ($target eq 'tex' and $env{'request.symb'} =~ m/\.page_/) {$result='';} |
|
|
if ($target eq 'analyze') { my $rndseed=&setup_rndseed($safeeval); } |
if ($target eq 'analyze') { my $rndseed=&setup_rndseed($safeeval); } |
Line 613 sub start_problem {
|
Line 605 sub start_problem {
|
$Apache::lonhomework::history{"resource.0.outtoken"}= |
$Apache::lonhomework::history{"resource.0.outtoken"}= |
$token; |
$token; |
} |
} |
$body_tag_start.=&Apache::lonxml::printtokenheader($target,$token); |
$result.=&Apache::lonxml::printtokenheader($target,$token); |
} |
} |
if ($env{'form.markaccess'}) { |
if ($env{'form.markaccess'}) { |
&Apache::lonnet::set_first_access('map'); |
&Apache::lonnet::set_first_access('map'); |
Line 663 sub start_problem {
|
Line 655 sub start_problem {
|
my $bodytext=&Apache::lonxml::get_all_text("/problem",$parser, |
my $bodytext=&Apache::lonxml::get_all_text("/problem",$parser, |
$style); |
$style); |
if ( $target eq "web" ) { |
if ( $target eq "web" ) { |
$result.= $head_tag_start.'</head>'; |
my $msg; |
my $msg=$body_tag_start; |
|
if ($status eq 'UNAVAILABLE') { |
if ($status eq 'UNAVAILABLE') { |
$msg.='<h1>'.&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'</h1>'; |
$msg.='<h1>'.&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'</h1>'; |
} elsif ($status ne 'NOT_YET_VIEWED') { |
} elsif ($status ne 'NOT_YET_VIEWED') { |
Line 673 sub start_problem {
|
Line 664 sub start_problem {
|
if ($status eq 'CLOSED' || $status eq 'INVALID_ACCESS') { |
if ($status eq 'CLOSED' || $status eq 'INVALID_ACCESS') { |
$msg.='The problem '.$accessmsg; |
$msg.='The problem '.$accessmsg; |
} elsif ($status eq 'UNCHECKEDOUT') { |
} elsif ($status eq 'UNCHECKEDOUT') { |
$msg.=&checkout_msg; |
$msg.=&checkout_msg(); |
} elsif ($status eq 'NOT_YET_VIEWED') { |
} elsif ($status eq 'NOT_YET_VIEWED') { |
$msg.=&firstaccess_msg($accessmsg,$symb); |
$msg.=&firstaccess_msg($accessmsg,$symb); |
} elsif ($status eq 'NOT_IN_A_SLOT') { |
} elsif ($status eq 'NOT_IN_A_SLOT') { |
Line 695 sub start_problem {
|
Line 686 sub start_problem {
|
my $bodytext=&Apache::lonxml::get_all_text("/problem",$parser, |
my $bodytext=&Apache::lonxml::get_all_text("/problem",$parser, |
$style); |
$style); |
if ($target eq 'web') { |
if ($target eq 'web') { |
$result .= $head_tag_start.'</head>'; |
|
$result .= $body_tag_start; |
|
$result .= &Apache::bridgetask::proctor_validation_screen(); |
$result .= &Apache::bridgetask::proctor_validation_screen(); |
} elsif ($target eq 'grade') { |
} elsif ($target eq 'grade') { |
&Apache::bridgetask::proctor_check_auth($slot_name,$slot, |
&Apache::bridgetask::proctor_check_auth($slot_name,$slot, |
'problem'); |
'problem'); |
} |
} |
} elsif ($target eq 'web') { |
} elsif ($target eq 'web') { |
my $name= &get_resource_name($parstack,$safeeval); |
$result.="\n $form_tag_start". |
$result.="$head_tag_start<title>$name</title></head> |
|
$body_tag_start \n $form_tag_start". |
|
'<input type="hidden" name="submitted" value="yes" />'; |
'<input type="hidden" name="submitted" value="yes" />'; |
# create a page header and exit |
# create a page header and exit |
if ($env{'request.state'} eq "construct") { |
if ($env{'request.state'} eq "construct") { |
Line 723 sub start_problem {
|
Line 710 sub start_problem {
|
|
|
} |
} |
} elsif ($target eq 'edit') { |
} elsif ($target eq 'edit') { |
$result.=$head_tag_start."</head>".$body_tag_start.$form_tag_start. |
$result .= $form_tag_start.&problem_edit_header(); |
&problem_edit_header(); |
|
$Apache::lonxml::warnings_error_header= |
$Apache::lonxml::warnings_error_header= |
&mt("Editor Errors - these errors might not effect the running of the problem, but they will likely cause problems with further use of the Edit mode. Please use the EditXML mode to fix these errors.")."<br />"; |
&mt("Editor Errors - these errors might not effect the running of the problem, but they will likely cause problems with further use of the Edit mode. Please use the EditXML mode to fix these errors.")."<br />"; |
my $temp=&Apache::edit::insertlist($target,$token); |
my $temp=&Apache::edit::insertlist($target,$token); |
Line 925 sub end_problem {
|
Line 911 sub end_problem {
|
|
|
sub start_library { |
sub start_library { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($result,$head_tag_start,$body_tag_start,$form_tag_start); |
my ($result,$form_tag_start); |
if ($$tagstack[0] eq 'library') { |
if ($$tagstack[0] eq 'library') { |
&init_problem_globals('library'); |
&init_problem_globals('library'); |
$Apache::lonhomework::type='problem'; |
$Apache::lonhomework::type='problem'; |
} |
} |
if ($target eq 'edit') { |
if ($target eq 'edit') { |
($result,$head_tag_start,$body_tag_start,$form_tag_start)= |
($result,$form_tag_start)= |
&page_start($target,$token,$tagstack,$parstack,$parser,$safeeval); |
&page_start($target,$token,$tagstack,$parstack,$parser,$safeeval, |
$result.=$head_tag_start."</head>".$body_tag_start.$form_tag_start. |
'Edit'); |
&problem_edit_header(); |
$result.=$form_tag_start.&problem_edit_header(); |
my $temp=&Apache::edit::insertlist($target,$token); |
my $temp=&Apache::edit::insertlist($target,$token); |
$result.=$temp; |
$result.=$temp; |
} elsif ($target eq 'modified') { |
} elsif ($target eq 'modified') { |
Line 943 sub start_library {
|
Line 929 sub start_library {
|
} elsif (($target eq 'web' || $target eq 'webgrade') |
} elsif (($target eq 'web' || $target eq 'webgrade') |
&& $$tagstack[0] eq 'library' |
&& $$tagstack[0] eq 'library' |
&& $env{'request.state'} eq "construct" ) { |
&& $env{'request.state'} eq "construct" ) { |
($result,$head_tag_start,$body_tag_start,$form_tag_start)= |
|
&page_start($target,$token,$tagstack,$parstack,$parser,$safeeval); |
|
my $name=&get_resource_name($parstack,$safeeval); |
my $name=&get_resource_name($parstack,$safeeval); |
|
($result,$form_tag_start)= |
|
&page_start($target,$token,$tagstack,$parstack,$parser,$safeeval, |
|
$name); |
my $rndseed=&setup_rndseed($safeeval); |
my $rndseed=&setup_rndseed($safeeval); |
$result.="$head_tag_start<title>$name</title></head> |
$result.=" \n $form_tag_start". |
$body_tag_start \n $form_tag_start". |
|
'<input type="hidden" name="submitted" value="yes" />'; |
'<input type="hidden" name="submitted" value="yes" />'; |
$result.=&problem_web_to_edit_header($rndseed); |
$result.=&problem_web_to_edit_header($rndseed); |
} |
} |