--- loncom/xml/lonxml.pm 2006/03/08 21:49:26 1.398
+++ loncom/xml/lonxml.pm 2006/04/13 18:35:17 1.405
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# XML Parser Module
#
-# $Id: lonxml.pm,v 1.398 2006/03/08 21:49:26 albertel Exp $
+# $Id: lonxml.pm,v 1.405 2006/04/13 18:35:17 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -204,9 +204,9 @@ sub xmlend {
$discussion.='\keephidden{ENDOFPROBLEM}\vskip 0.5mm\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}\end{document}';
&Apache::lonxml::newparser($parser,\$discussion,'');
return '';
- } else {
- return $discussion.&Apache::loncommon::endbodytag();
}
+
+ return $discussion.&Apache::loncommon::end_page();
}
sub tokeninputfield {
@@ -971,6 +971,16 @@ sub decreasedepth {
#print "
e $Apache::lonxml::depth : $Apache::lonxml::olddepth : $token->[1] : $curdepth\n";
}
+sub get_id {
+ my ($parstack,$safeeval)=@_;
+ my $id= &Apache::lonxml::get_param('id',$parstack,$safeeval);
+ if ($env{'request.state'} eq 'construct' && $id =~ /(\.|_)/) {
+ &error(&mt("IDs are not allowed to contain "_" or ".""));
+ }
+ if ($id =~ /^\s*$/) { $id = $Apache::lonxml::curdepth; }
+ return $id;
+}
+
sub get_all_text_unbalanced {
#there is a copy of this in lonpublisher.pm
my($tag,$pars)= @_;
@@ -1028,13 +1038,13 @@ sub init_counter {
sub store_counter {
&Apache::lonnet::appenv(('form.counter' => $Apache::lonxml::counter));
+ $Apache::lonxml::counter_changed=0;
return '';
}
{
my $state;
sub clear_problem_counter {
- &Apache::lonnet::logthis(" cpc called from ".(join(':',caller(0))));
undef($state);
&Apache::lonnet::delenv('form.counter');
&Apache::lonxml::init_counter();
@@ -1051,6 +1061,11 @@ sub store_counter {
&Apache::lonnet::appenv(('form.counter' => $state));
}
}
+ sub get_problem_counter {
+ if ($Apache::lonxml::counter_changed) { &store_counter() }
+ &Apache::lonnet::transfer_profile_to_env();
+ return $env{'form.counter'};
+ }
}
sub get_all_text {
@@ -1443,17 +1458,13 @@ sub handler {
my $result = '';
my $filecontents=&Apache::lonnet::getfile($file);
if ($filecontents eq -1) {
- my $bodytag=&Apache::loncommon::bodytag('File Error');
+ my $start_page=&Apache::loncommon::start_page('File Error');
+ my $end_page=&Apache::loncommon::end_page('File Error');
my $fnf=&mt('File not found');
$result=(<
-
-$fnf
-
-$bodytag
+$start_page
$fnf: $file
-