--- loncom/homework/structuretags.pm 2007/10/12 18:45:03 1.402
+++ loncom/homework/structuretags.pm 2007/11/13 23:01:05 1.411
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# definition of tags that give a structure to a document
#
-# $Id: structuretags.pm,v 1.402 2007/10/12 18:45:03 albertel Exp $
+# $Id: structuretags.pm,v 1.411 2007/11/13 23:01:05 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -199,7 +199,7 @@ sub page_start {
}
}
- if (!defined($found{'body'})) {
+ if (!defined($found{'body'}) && $env{'request.state'} ne 'construct') {
$page_start .= &Apache::lonxml::message_location();
}
@@ -302,20 +302,30 @@ sub remember_problem_state {
sub problem_edit_header {
return ''.
&Apache::structuretags::remember_problem_state().'
+
+'.
'';
}
sub problem_edit_footer {
- return ' |
- '.
+ return '
+ '.
&Apache::lonhtmlcommon::htmlareaselectactive(&Apache::lonhtmlcommon::get_htmlareafields()).
"\n\n".&Apache::loncommon::end_page();
}
@@ -332,35 +342,38 @@ sub option {
sub problem_web_to_edit_header {
my ($rndseed)=@_;
- my $result.='';
- $result .= '';
- $result .= '
-
-
-
-
- '.
- &Apache::loncommon::help_open_topic('Problem_Editor_Testing_Area','Testing Problems').
- '
';
- $result.=&mt('Apply style file: ').'
-&').'" />
- '.&mt('Select').'
-
-
';
+ my $show_all= '';
+
+
+ $result .= '';
return $result;
}
@@ -576,19 +628,19 @@ sub init_problem_globals {
if ($type eq 'problem') {
$Apache::inputtags::part='0';
@Apache::inputtags::partlist=('0');
- $Apache::lonhomework::problemstatus=&get_problem_status('0');
+ &Apache::lonhomework::set_show_problem_status(&get_problem_status('0'));
$Apache::lonhomework::ignore_response_errors=0;
} elsif ($type eq 'library') {
$Apache::inputtags::part='';
@Apache::inputtags::partlist=();
- $Apache::lonhomework::problemstatus='';
+ &Apache::lonhomework::reset_show_problem_status();
$Apache::lonhomework::ignore_response_errors=1;
} elsif ($type eq 'Task') {
$Apache::inputtags::part='0';
@Apache::inputtags::partlist=('0');
- $Apache::lonhomework::problemstatus='';
+ &Apache::lonhomework::reset_show_problem_status();
$Apache::lonhomework::ignore_response_errors=1;
}
@Apache::inputtags::responselist = ();
@@ -617,8 +669,8 @@ sub reset_problem_globals {
undef($Apache::lonhomework::default_type);
undef($Apache::lonhomework::type);
undef($Apache::lonhomework::scantronmode);
- undef($Apache::lonhomework::problemstatus);
undef($Apache::lonhomework::ignore_response_errors);
+ &Apache::lonhomework::reset_show_problem_status();
}
sub set_problem_state {
@@ -671,7 +723,7 @@ sub start_problem {
if ($target ne 'analyze') {
$Apache::lonhomework::type=&Apache::lonnet::EXT('resource.0.type');
if (($env{'request.state'} eq 'construct') &&
- defined($env{'form.problemtype'})) {
+ $env{'form.problemtype'} =~ /\S/) {
$Apache::lonhomework::type=$env{'form.problemtype'};
}
&Apache::lonxml::debug("Found this to be of type :$Apache::lonhomework::type:");
@@ -1488,7 +1540,9 @@ sub start_part {
@Apache::inputtags::response=();
@Apache::inputtags::previous=();
@Apache::inputtags::previous_version=();
- $Apache::lonhomework::problemstatus=&get_problem_status($id);
+ &Apache::lonhomework::set_show_problem_status(&get_problem_status($id));
+ &Apache::response::reset_params();
+
my $hidden=&Apache::loncommon::check_if_partid_hidden($Apache::inputtags::part);
my $newtype=&Apache::lonnet::EXT("resource.$id.type");
if ($newtype) { $Apache::lonhomework::type=$newtype; }
@@ -1745,6 +1799,13 @@ sub start_startouttext {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
my @result=(''.'');
if ($target eq 'edit' || $target eq 'modified' ) { @result=('','no'); }
+
+ my $nesting =
+ &Apache::lonxml::set_state('outtext',
+ &Apache::lonxml::get_state('outtext')+1);
+ if ($nesting > 1 && $env{'request.state'} eq 'construct') {
+ &Apache::lonxml::error("Nesting of <startouttext /> not allowed, on line ".$token->[5]);
+ }
return (@result);
}
@@ -1784,6 +1845,14 @@ sub start_endouttext {
$result=''.
&Apache::edit::handle_insertafter('startouttext');
}
+
+ my $nesting =
+ &Apache::lonxml::set_state('outtext',
+ &Apache::lonxml::get_state('outtext')-1);
+ if ($nesting < 0 && $env{'request.state'} eq 'construct') {
+ &Apache::lonxml::error(" Extraneous <endouttext /> not allowed on line ".$token->[5]);
+ &Apache::lonxml::set_state('outtext', 0);
+ }
return $result;
}