--- loncom/homework/structuretags.pm 2006/04/14 20:16:23 1.343
+++ loncom/homework/structuretags.pm 2006/07/27 20:47:03 1.362
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# definition of tags that give a structure to a document
#
-# $Id: structuretags.pm,v 1.343 2006/04/14 20:16:23 albertel Exp $
+# $Id: structuretags.pm,v 1.362 2006/07/27 20:47:03 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -38,6 +38,9 @@ use Apache::lonlocal;
use Apache::lonxml;
use Apache::lonenc();
use Time::HiRes qw( gettimeofday tv_interval );
+use lib '/home/httpd/lib/perl/';
+use LONCAPA;
+
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'));
}
@@ -70,7 +73,8 @@ sub end_tex {
}
sub page_start {
- my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$name)=@_;
+ my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$name,
+ $extra_head)=@_;
my %found;
foreach my $taginside (@$tagstack) {
foreach my $taglookedfor ('html','body','form') {
@@ -78,17 +82,18 @@ sub page_start {
}
}
-
if ($target eq 'tex') {
return
&Apache::londefdef::start_html($target,$token,$tagstack,
$parstack,$parser,$safeeval);
}
- my $page_start;
- if (!defined($found{'html'})) {
+ my %body_args;
+ if (defined($found{'html'})) {
+ $body_args{'skip_phases'}{'head'}=1;
+ } else {
- my $extra_head = &Apache::lonhtmlcommon::spellheader();
+ $extra_head .= &Apache::lonhtmlcommon::spellheader();
my $css_href = &Apache::lonnet::EXT('resource.0.cssfile');
if ($css_href =~ /\S/) {
@@ -102,18 +107,15 @@ sub page_start {
"if (typeof swmenu != 'undefined') {swmenu.currentURL=null;}\n".
&Apache::loncommon::browser_and_searcher_javascript().
"\n\n";
-
}
- $page_start .=
- &Apache::loncommon::head($name,$extra_head,
- {'force_register' =>
- ($target ne 'edit') });
}
- if (!defined($found{'body'}) && $env{'request.state'} eq 'construct') {
+ if (defined($found{'body'})) {
+ $body_args{'skip_phases'}{'body'}=1;
+ } elsif (!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();
+ # no extra args to bodytag
}
} elsif (!defined($found{'body'})) {
my %add_entries;
@@ -122,27 +124,36 @@ sub page_start {
if ($background ne '' ) {
$add_entries{'background'} = $background;
}
+
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.")."
";
- $page_start .= $help;
- }
+ if ($bgcolor eq '' ) { $bgcolor = '#FFFFFF'; }
+
+ $body_args{'bgcolor'} = $bgcolor;
+ $body_args{'no_title'} = 1;
+ $body_args{'force_register'} = 1;
+ $body_args{'add_entries'} = \%add_entries;
+ }
+
+ my $page_start = &Apache::loncommon::start_page($name,$extra_head,
+ \%body_args);
+
+ if (!defined($found{'body'})
+ && $env{'request.state'} ne 'construct'
+ && ($target eq 'web' || $target eq 'webgrade')) {
+
+ 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.")."
";
+ $page_start .= $help;
}
- $page_start .= &Apache::lonxml::message_location();
}
+ if (!defined($found{'body'})) {
+ $page_start .= &Apache::lonxml::message_location();
+ }
+
my $form_tag_start;
if (!defined($found{'form'})) {
$form_tag_start='
'. - &Apache::loncommon::help_open_menu('','Problem Editing Help','Problem_Editor_XML_Index','',5,'Authoring',undef,undef,undef,'Problem Editing Help') + &Apache::loncommon::help_open_menu('Problem Editing Help','Problem_Editor_XML_Index',5,'Authoring',undef,undef,undef,'Problem Editing Help') .' |
'; } @@ -240,7 +259,7 @@ sub problem_edit_header { sub problem_edit_footer { return ' |
$lt{'id_expln'}
$lt{'warning'}
- @@ -450,9 +482,10 @@ sub firstaccess_msg { my ($map)=&Apache::lonnet::decode_symb($symb); my $foldertitle=&Apache::lonnet::gettitle($map); &Apache::lonxml::debug("map is $map title is $foldertitle"); + my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'}); return (<