version 1.283, 2003/10/02 05:45:38
|
version 1.298, 2004/01/28 16:10:26
|
Line 96 use Apache::style();
|
Line 96 use Apache::style();
|
use Apache::run(); |
use Apache::run(); |
use Apache::londefdef(); |
use Apache::londefdef(); |
use Apache::scripttag(); |
use Apache::scripttag(); |
|
use Apache::languagetags(); |
use Apache::edit(); |
use Apache::edit(); |
use Apache::inputtags(); |
use Apache::inputtags(); |
use Apache::outputtags(); |
use Apache::outputtags(); |
Line 166 $Apache::lonxml::style_end_values='';
|
Line 167 $Apache::lonxml::style_end_values='';
|
#should we do the postag variable interpolation |
#should we do the postag variable interpolation |
$Apache::lonxml::post_evaluate=1; |
$Apache::lonxml::post_evaluate=1; |
|
|
|
#a header message to emit in the case of any generated warning or errors |
|
$Apache::lonxml::warnings_error_header=''; |
|
|
sub xmlbegin { |
sub xmlbegin { |
my $output=''; |
my $output=''; |
if ($ENV{'browser.mathml'}) { |
if ($ENV{'browser.mathml'}) { |
Line 188 sub xmlend {
|
Line 192 sub xmlend {
|
$mode='problem'; |
$mode='problem'; |
$status=$Apache::inputtags::status[-1]; |
$status=$Apache::inputtags::status[-1]; |
} |
} |
return &Apache::lonfeedback::list_discussion().'</html>'; |
return &Apache::lonfeedback::list_discussion($mode,$status).'</html>'; |
} |
} |
|
|
sub tokeninputfield { |
sub tokeninputfield { |
Line 280 sub printtokenheader {
|
Line 284 sub printtokenheader {
|
my %idhash=&Apache::lonnet::idrget($tudom,($tuname)); |
my %idhash=&Apache::lonnet::idrget($tudom,($tuname)); |
return |
return |
'<img align="right" src="/cgi-bin/barcode.png?encode='.$token.'" />'. |
'<img align="right" src="/cgi-bin/barcode.png?encode='.$token.'" />'. |
'Checked out for '.$plainname. |
&mt('Checked out for').' '.$plainname. |
'<br />User: '.$tuname.' at '.$tudom. |
'<br />'.&mt('User').': '.$tuname.' at '.$tudom. |
'<br />ID: '.$idhash{$tuname}. |
'<br />'.&mt('ID').': '.$idhash{$tuname}. |
'<br />CourseID: '.$tcrsid. |
'<br />'.&mt('CourseID').': '.$tcrsid. |
'<br />Course: '.$ENV{'course.'.$tcrsid.'.description'}. |
'<br />'.&mt('Course').': '.$ENV{'course.'.$tcrsid.'.description'}. |
'<br />DocID: '.$token. |
'<br />'.&mt('DocID').': '.$token. |
'<br />Time: '.localtime().'<hr />'; |
'<br />'.&mt('Time').': '.&Apache::lonlocal::locallocaltime().'<hr />'; |
} else { |
} else { |
return $token; |
return $token; |
} |
} |
Line 319 sub xmlparse {
|
Line 323 sub xmlparse {
|
&Apache::inputtags::initialize_inputtags(); |
&Apache::inputtags::initialize_inputtags(); |
&Apache::outputtags::initialize_outputtags(); |
&Apache::outputtags::initialize_outputtags(); |
&Apache::edit::initialize_edit(); |
&Apache::edit::initialize_edit(); |
|
&Apache::londefdef::initialize_londefdef(); |
|
|
# |
# |
# do we have a course style file? |
# do we have a course style file? |
Line 335 sub xmlparse {
|
Line 340 sub xmlparse {
|
&Apache::style::styleparser($target,$styletext)); |
&Apache::style::styleparser($target,$styletext)); |
} |
} |
} |
} |
|
} elsif ($ENV{'construct.style'} && ($ENV{'request.state'} eq 'construct')) { |
|
my $location=&Apache::lonnet::filelocation('',$ENV{'construct.style'}); |
|
my $styletext=&Apache::lonnet::getfile($location); |
|
if ($styletext ne '-1') { |
|
%style_for_target = (%style_for_target, |
|
&Apache::style::styleparser($target,$styletext)); |
|
} |
} |
} |
#&printalltags(); |
#&printalltags(); |
my @pars = (); |
my @pars = (); |
Line 393 sub latex_special_symbols {
|
Line 405 sub latex_special_symbols {
|
$string =~ s/_/ /g; |
$string =~ s/_/ /g; |
} else { |
} else { |
$string=~s/\\ /\\char92 /g; |
$string=~s/\\ /\\char92 /g; |
$string=~s/\^/\\char94 /g; |
$string=~s/\^/\\\^ /g; |
$string=~s/\~/\\char126 /g; |
$string=~s/\~/\\char126 /g; |
$string=~s/(&[^A-Za-z\#])/\\$1/g; |
#fixup & if it doesn't look like |
|
# { or α |
|
$string=~s/(&(?!((\#[0-9]+)|([a-z]+));))/\\$1/gi; |
$string=~s/([^&])\#/$1\\#/g; |
$string=~s/([^&])\#/$1\\#/g; |
$string=~s/(\$|_|{|})/\\$1/g; |
$string=~s/(\$|_|{|})/\\$1/g; |
$string=~s/\\char92 /\\texttt{\\char92}/g; |
$string=~s/\\char92 /\\texttt{\\char92}/g; |
Line 614 sub setup_globals {
|
Line 628 sub setup_globals {
|
@Apache::lonxml::extlinks=(); |
@Apache::lonxml::extlinks=(); |
@Apache::lonxml::ssi_info=(); |
@Apache::lonxml::ssi_info=(); |
$Apache::lonxml::post_evaluate=1; |
$Apache::lonxml::post_evaluate=1; |
|
$Apache::lonxml::warnings_error_header=''; |
if ($target eq 'meta') { |
if ($target eq 'meta') { |
$Apache::lonxml::redirection = 0; |
$Apache::lonxml::redirection = 0; |
$Apache::lonxml::metamode = 1; |
$Apache::lonxml::metamode = 1; |
Line 657 sub init_safespace {
|
Line 672 sub init_safespace {
|
$safeeval->permit("entereval"); |
$safeeval->permit("entereval"); |
$safeeval->permit(":base_math"); |
$safeeval->permit(":base_math"); |
$safeeval->permit("sort"); |
$safeeval->permit("sort"); |
|
$safeeval->permit("time"); |
$safeeval->deny(":base_io"); |
$safeeval->deny(":base_io"); |
$safehole->wrap(\&Apache::scripttag::xmlparse,$safeeval,'&xmlparse'); |
$safehole->wrap(\&Apache::scripttag::xmlparse,$safeeval,'&xmlparse'); |
$safehole->wrap(\&Apache::outputtags::multipart,$safeeval,'&multipart'); |
$safehole->wrap(\&Apache::outputtags::multipart,$safeeval,'&multipart'); |
Line 1057 ENDSCRIPT
|
Line 1073 ENDSCRIPT
|
|
|
sub storefile { |
sub storefile { |
my ($file,$contents)=@_; |
my ($file,$contents)=@_; |
|
&Apache::lonnet::correct_line_ends(\$contents); |
if (my $fh=Apache::File->new('>'.$file)) { |
if (my $fh=Apache::File->new('>'.$file)) { |
print $fh $contents; |
print $fh $contents; |
$fh->close(); |
$fh->close(); |
Line 1196 sub handler {
|
Line 1213 sub handler {
|
unless ($ENV{'request.state'} eq 'published') { |
unless ($ENV{'request.state'} eq 'published') { |
if (($ENV{'form.savethisfile'}) || ($ENV{'form.attemptclean'})) { |
if (($ENV{'form.savethisfile'}) || ($ENV{'form.attemptclean'})) { |
if (&storefile($file,$ENV{'form.filecont'})) { |
if (&storefile($file,$ENV{'form.filecont'})) { |
$request->print("<font COLOR=\"#0000FF\">Updated: ". strftime("%d %b %H:%M:%S",localtime())." </font>"); |
$request->print("<font COLOR=\"#0000FF\">".&mt('Updated').": ". |
|
&Apache::lonlocal::locallocaltime(time)." </font>"); |
} |
} |
} |
} |
} |
} |
Line 1204 sub handler {
|
Line 1222 sub handler {
|
my $result = ''; |
my $result = ''; |
my $filecontents=&Apache::lonnet::getfile($file); |
my $filecontents=&Apache::lonnet::getfile($file); |
if ($filecontents eq -1) { |
if ($filecontents eq -1) { |
|
my $bodytag=&Apache::loncommon::bodytag('File Error'); |
|
my $fnf=&mt('File not found'); |
$result=(<<ENDNOTFOUND); |
$result=(<<ENDNOTFOUND); |
<html> |
<html> |
<head> |
<head> |
<title>File not found</title> |
<title>$fnf</title> |
</head> |
</head> |
<body bgcolor="#FFFFFF"> |
$bodytag |
<b>File not found: $file</b> |
<b>$fnf: $file</b> |
</body> |
</body> |
</html> |
</html> |
ENDNOTFOUND |
ENDNOTFOUND |
Line 1274 sub display_title {
|
Line 1294 sub display_title {
|
} |
} |
|
|
sub debug { |
sub debug { |
if ($Apache::lonxml::debug eq 1) { |
if ($Apache::lonxml::debug eq "1") { |
$|=1; |
$|=1; |
print('<font size="-2"<pre>DEBUG:'.&HTML::Entities::encode($_[0])."</pre></font>\n"); |
Apache->request->print('<font size="-2"<pre>DEBUG:'.&HTML::Entities::encode($_[0])."</pre></font>\n"); |
} |
} |
} |
} |
|
|
sub error { |
sub error { |
$errorcount++; |
$errorcount++; |
if (($Apache::lonxml::debug eq 1) || ($ENV{'request.state'} eq 'construct') ) { |
if (($Apache::lonxml::debug eq 1) || ($ENV{'request.state'} eq 'construct') ) { |
# If printing in construction space, put the error inside <pre></pre> |
# If printing in construction space, put the error inside <pre></pre> |
print "<b>ERROR:</b>".join("\n",@_)."\n"; |
print $Apache::lonxml::warnings_error_header. |
|
"<b>ERROR:</b>".join("\n",@_)."\n"; |
|
$Apache::lonxml::warnings_error_header=''; |
} else { |
} else { |
print "<b>An Error occured while processing this resource. The instructor has been notified.</b> <br />"; |
print "<b>An Error occured while processing this resource. The instructor has been notified.</b> <br />"; |
#notify author |
#notify author |
Line 1307 sub error {
|
Line 1329 sub error {
|
} |
} |
|
|
sub warning { |
sub warning { |
$warningcount++; |
$warningcount++; |
|
|
if ($ENV{'form.grade_target'} ne 'tex') { |
if ($ENV{'form.grade_target'} ne 'tex') { |
if ($ENV{'request.state'} eq 'construct' || $Apache::lonxml::debug) { |
if ($ENV{'request.state'} eq 'construct' || $Apache::lonxml::debug) { |
print "<b>W</b>ARNING<b>:</b>".join('<br />',@_)."<br />\n"; |
print $Apache::lonxml::warnings_error_header. |
} |
"<b>W</b>ARNING<b>:</b>".join('<br />',@_)."<br />\n"; |
} |
$Apache::lonxml::warnings_error_header=''; |
|
} |
|
} |
} |
} |
|
|
sub get_param { |
sub get_param { |
Line 1321 sub get_param {
|
Line 1345 sub get_param {
|
if ( ! $context ) { $context = -1; } |
if ( ! $context ) { $context = -1; } |
my $args =''; |
my $args =''; |
if ( $#$parstack > (-2-$context) ) { $args=$$parstack[$context]; } |
if ( $#$parstack > (-2-$context) ) { $args=$$parstack[$context]; } |
|
if ( ! $Apache::lonxml::usestyle ) { |
|
$args=$Apache::lonxml::style_values.$args; |
|
} |
if ( ! $args ) { return undef; } |
if ( ! $args ) { return undef; } |
if ( $case_insensitive ) { |
if ( $case_insensitive ) { |
if ($args =~ s/(my \$)(\Q$param\E)(=\")/$1.lc($2).$3/ei) { |
if ($args =~ s/(my \$)(\Q$param\E)(=\")/$1.lc($2).$3/ei) { |
Line 1344 sub get_param_var {
|
Line 1371 sub get_param_var {
|
if ( ! $context ) { $context = -1; } |
if ( ! $context ) { $context = -1; } |
my $args =''; |
my $args =''; |
if ( $#$parstack > (-2-$context) ) { $args=$$parstack[$context]; } |
if ( $#$parstack > (-2-$context) ) { $args=$$parstack[$context]; } |
|
if ( ! $Apache::lonxml::usestyle ) { |
|
$args=$Apache::lonxml::style_values.$args; |
|
} |
&Apache::lonxml::debug("Args are $args param is $param"); |
&Apache::lonxml::debug("Args are $args param is $param"); |
if ($case_insensitive) { |
if ($case_insensitive) { |
if (! ($args=~s/(my \$)(\Q$param\E)(=\")/$1.lc($2).$3/ei)) { |
if (! ($args=~s/(my \$)(\Q$param\E)(=\")/$1.lc($2).$3/ei)) { |