--- loncom/homework/structuretags.pm 2005/04/01 18:08:14 1.283
+++ loncom/homework/structuretags.pm 2006/04/14 20:16:23 1.343
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# definition of tags that give a structure to a document
#
-# $Id: structuretags.pm,v 1.283 2005/04/01 18:08:14 albertel Exp $
+# $Id: structuretags.pm,v 1.343 2006/04/14 20:16:23 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -36,15 +36,16 @@ use Apache::File();
use Apache::lonmenu;
use Apache::lonlocal;
use Apache::lonxml;
+use Apache::lonenc();
use Time::HiRes qw( gettimeofday tv_interval );
BEGIN {
&Apache::lonxml::register('Apache::structuretags',('block','languageblock','instructorcomment','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','problemtype','startouttext','endouttext','simpleeditbutton','definetag'));
}
sub start_web {
- my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
- my $bodytext=&Apache::lonxml::get_all_text("/web",$parser);
- if ($target eq 'web') {
+ my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
+ my $bodytext=&Apache::lonxml::get_all_text("/web",$parser,$style);
+ if ($target eq 'web' || $target eq 'webgrade') {
return $bodytext;
}
return '';
@@ -55,9 +56,9 @@ sub end_web {
}
sub start_tex {
- my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
+ my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
my $result='';
- my $bodytext=&Apache::lonxml::get_all_text("/tex",$parser);
+ my $bodytext=&Apache::lonxml::get_all_text("/tex",$parser,$style);
if ($target eq 'tex') {
return $bodytext.' ';
}
@@ -69,7 +70,7 @@ sub end_tex {
}
sub page_start {
- my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
+ my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$name)=@_;
my %found;
foreach my $taginside (@$tagstack) {
foreach my $taglookedfor ('html','body','form') {
@@ -77,69 +78,82 @@ 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'})) {
- $result=&Apache::londefdef::start_html($target,$token,$tagstack,
- $parstack,$parser,$safeeval);
- $head_tag_start='
'.&Apache::lonmenu::registerurl(undef,$target).
- &Apache::lonhtmlcommon::htmlareaheaders().
- &Apache::lonhtmlcommon::spellheader().
- &Apache::lonxml::fontsettings();
- }
- my $body_tag_start;
- if (!defined($found{'body'}) && $ENV{'request.state'} eq 'construct'
- && $ENV{'environment.remote'} eq 'off') {
- $body_tag_start=&Apache::loncommon::bodytag();
- $body_tag_start.=&Apache::lonxml::message_location();
+
+ my $extra_head = &Apache::lonhtmlcommon::spellheader();
+
+ my $css_href = &Apache::lonnet::EXT('resource.0.cssfile');
+ if ($css_href =~ /\S/) {
+ &Apache::lonxml::extlink($css_href);
+ $extra_head .=
+ '';
+ }
+ if ($target eq 'edit') {
+ $extra_head.=&Apache::edit::js_change_detection().
+ "\n";
+
+ }
+ $page_start .=
+ &Apache::loncommon::head($name,$extra_head,
+ {'force_register' =>
+ ($target ne 'edit') });
+ }
+
+ if (!defined($found{'body'}) && $env{'request.state'} eq 'construct') {
+ if ($target eq 'web' || $target eq 'edit') {
+ $page_start.=&Apache::loncommon::bodytag();
+ $page_start.=&Apache::lonxml::message_location();
+ }
} elsif (!defined($found{'body'})) {
- $body_tag_start=''.&Apache::lonmenu::menubuttons(undef,$target,1);
- if ($ENV{'environment.texengine'} eq 'jsMath') {
- $body_tag_start.=''."\n".
- ''."\n";
- }
- if ($target eq 'web' && $ENV{'request.state'} ne 'construct') {
+ my $bgcolor=&Apache::lonxml::get_param('bgcolor',$parstack,
+ $safeeval);
+
+ 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')
+ && $env{'request.state'} ne 'construct') {
my ($symb,undef,undef,undef,$publicuser)=
&Apache::lonxml::whichuser();
if ($symb eq '' && !$publicuser) {
my $help = &Apache::loncommon::help_open_topic("Ambiguous_Reference");
$help=&mt("Browsing resource, all submissions are temporary.")."
";
- $body_tag_start.=$help;
+ $page_start .= $help;
}
}
- $body_tag_start.=&Apache::lonxml::message_location();
+ $page_start .= &Apache::lonxml::message_location();
}
+
my $form_tag_start;
if (!defined($found{'form'})) {
- $form_tag_start='\n".&Apache::loncommon::endbodytag()."\n";
+ "\n\n".&Apache::loncommon::end_page();
}
sub option {
my ($value,$name) = @_;
my $result ="