version 1.513, 2010/08/08 02:00:44
|
version 1.522, 2011/11/11 02:55:37
|
Line 112 use Apache::lonmaxima();
|
Line 112 use Apache::lonmaxima();
|
use Apache::lonr(); |
use Apache::lonr(); |
use Apache::lonlocal; |
use Apache::lonlocal; |
use Apache::lonhtmlcommon(); |
use Apache::lonhtmlcommon(); |
|
use Apache::functionplotresponse(); |
|
|
#==================================== Main subroutine: xmlparse |
#==================================== Main subroutine: xmlparse |
|
|
Line 787 sub init_safespace {
|
Line 788 sub init_safespace {
|
$safehole->wrap(\&Apache::lonnet::logthis,$safeeval,'&LONCAPA_INTERNAL_LOGTHIS'); |
$safehole->wrap(\&Apache::lonnet::logthis,$safeeval,'&LONCAPA_INTERNAL_LOGTHIS'); |
$safehole->wrap(\&Apache::inputtags::finalizeawards,$safeeval,'&LONCAPA_INTERNAL_FINALIZEAWARDS'); |
$safehole->wrap(\&Apache::inputtags::finalizeawards,$safeeval,'&LONCAPA_INTERNAL_FINALIZEAWARDS'); |
$safehole->wrap(\&Apache::caparesponse::get_sigrange,$safeeval,'&LONCAPA_INTERNAL_get_sigrange'); |
$safehole->wrap(\&Apache::caparesponse::get_sigrange,$safeeval,'&LONCAPA_INTERNAL_get_sigrange'); |
|
$safehole->wrap(\&Apache::functionplotresponse::fpr_val,$safeeval,'&fpr_val'); |
|
$safehole->wrap(\&Apache::functionplotresponse::fpr_f,$safeeval,'&fpr_f'); |
|
$safehole->wrap(\&Apache::functionplotresponse::fpr_dfdx,$safeeval,'&fpr_dfdx'); |
|
$safehole->wrap(\&Apache::functionplotresponse::fpr_d2fdx2,$safeeval,'&fpr_d2fdx2'); |
|
|
# use Data::Dumper; |
# use Data::Dumper; |
# $safehole->wrap(\&Data::Dumper::Dumper,$safeeval,'&LONCAPA_INTERNAL_Dumper'); |
# $safehole->wrap(\&Data::Dumper::Dumper,$safeeval,'&LONCAPA_INTERNAL_Dumper'); |
#need to inspect this class of ops |
#need to inspect this class of ops |
Line 838 sub initialize_rndseed {
|
Line 844 sub initialize_rndseed {
|
sub default_homework_load { |
sub default_homework_load { |
my ($safeeval)=@_; |
my ($safeeval)=@_; |
&Apache::lonxml::debug('Loading default_homework'); |
&Apache::lonxml::debug('Loading default_homework'); |
my $default=&Apache::lonnet::getfile('/home/httpd/html/res/adm/includes/default_homework.lcpm'); |
my $default=&Apache::lonnet::getfile($Apache::lonnet::perlvar{'lonIncludes'}. |
|
'/default_homework.lcpm'); |
if ($default eq -1) { |
if ($default eq -1) { |
&Apache::lonxml::error("<b>Unable to find <i>default_homework.lcpm</i></b>"); |
&Apache::lonxml::error("<b>Unable to find <i>default_homework.lcpm</i></b>"); |
} else { |
} else { |
Line 1008 the current 'bubble line number' is stor
|
Line 1015 the current 'bubble line number' is stor
|
The value of it is stored in $Apache:lonxml::counter when live and |
The value of it is stored in $Apache:lonxml::counter when live and |
stored back to env after done. |
stored back to env after done. |
|
|
=item &increment_counter($increment); |
=item &increment_counter($increment, $part_response); |
|
|
Increments the internal counter environment variable a specified amount |
Increments the internal counter environment variable a specified amount |
|
|
Line 1434 SIMPLECONTENT
|
Line 1441 SIMPLECONTENT
|
|
|
sub verify_html { |
sub verify_html { |
my ($filecontents)=@_; |
my ($filecontents)=@_; |
if ($filecontents!~/(?:\<|\<\;)(?:html|xml)[^\<]*(?:\>|\>\;)/is) { |
my ($is_html,$is_xml); |
return &mt('File does not have [_1] or [_2] starting tag','<html>','<xml>'); |
if ($filecontents =~/(?:\<|\<\;)\?xml[^\<]*\?(?:\>|\>\;)/is) { |
} |
$is_xml = 1; |
if ($filecontents!~/(?:\<|\<\;)\/(?:html|xml)(?:\>|\>\;)/is) { |
} elsif ($filecontents =~/(?:\<|\<\;)html(?:\s+[^\<]+|\s*)(?:\>|\>\;)/is) { |
return &mt('File does not have [_1] or [_2] ending tag','<html>','<xml>'); |
$is_html = 1; |
} |
} |
if ($filecontents!~/(?:\<|\<\;)(?:body|frameset)[^\<]*(?:\>|\>\;)/is) { |
unless ($is_xml || $is_html) { |
return &mt('File does not have [_1] or [_2] starting tag','<body>','<frameset>'); |
return &mt('File does not have [_1] or [_2] starting tag','<html>','<?xml ?>'); |
} |
} |
if ($filecontents!~/(?:\<|\<\;)\/(?:body|frameset)[^\<]*(?:\>|\>\;)/is) { |
if ($is_html) { |
return &mt('File does not have [_1] or [_2] ending tag','<body>','<frameset>'); |
if ($filecontents!~/(?:\<|\<\;)\/html(?:\>|\>\;)/is) { |
|
return &mt('File does not have [_1] ending tag','<html>'); |
|
} |
|
if ($filecontents!~/(?:\<|\<\;)(?:body|frameset)[^\<]*(?:\>|\>\;)/is) { |
|
return &mt('File does not have [_1] or [_2] starting tag','<body>','<frameset>'); |
|
} |
|
if ($filecontents!~/(?:\<|\<\;)\/(?:body|frameset)[^\<]*(?:\>|\>\;)/is) { |
|
return &mt('File does not have [_1] or [_2] ending tag','<body>','<frameset>'); |
|
} |
} |
} |
return ''; |
return ''; |
} |
} |
Line 1492 sub inserteditinfo {
|
Line 1507 sub inserteditinfo {
|
my $dragmath_button; |
my $dragmath_button; |
my ($add_to_onload, $add_to_onresize); |
my ($add_to_onload, $add_to_onresize); |
$initialize=&Apache::lonhtmlcommon::spellheader(); |
$initialize=&Apache::lonhtmlcommon::spellheader(); |
if (($filetype eq 'html') && (&Apache::lonhtmlcommon::htmlareabrowser())) { |
if (($filetype eq 'html') && (&Apache::lonhtmlcommon::htmlareabrowser())) { |
my $lang = &Apache::lonhtmlcommon::htmlarea_lang(); |
my $lang = &Apache::lonhtmlcommon::htmlarea_lang(); |
my %textarea_args = ( |
my %textarea_args = ( |
fullpage => 'true', |
fullpage => 'true', |
dragmath => 'math', |
dragmath => 'math', |
); |
); |
$initialize .= |
$initialize .= &Apache::lonhtmlcommon::htmlareaselectactive(\%textarea_args); |
&Apache::lonhtmlcommon::htmlareaselectactive(\%textarea_args). |
} |
(<<FULLPAGE); |
$initialize .= (<<FULLPAGE); |
<script type="text/javascript"> |
<script type="text/javascript"> |
|
// <![CDATA[ |
function initDocument() { |
function initDocument() { |
resize_textarea('$textarea_id','LC_aftertextarea'); |
resize_textarea('$textarea_id','LC_aftertextarea'); |
} |
} |
|
// ]]> |
</script> |
</script> |
FULLPAGE |
FULLPAGE |
|
if ($filetype eq 'html') { |
|
$dragmath_button = '<span id="math_filecont">'.&Apache::lonhtmlcommon::dragmath_button('filecont',1).'</span>'; |
|
$initialize .= "\n".&Apache::lonhtmlcommon::dragmath_js('EditMathPopup'); |
} |
} |
if ($filetype eq 'html' || $filetype eq 'tex') { |
|
$dragmath_button = '<span id="math_filecont" style="display: block;">'.&Apache::lonhtmlcommon::dragmath_button('filecont',1).'</span>'; |
|
$initialize .= "\n".&Apache::lonhtmlcommon::dragmath_js('EditMathPopup'); |
|
} |
|
|
|
$add_to_onload = 'initDocument();'; |
$add_to_onload = 'initDocument();'; |
$add_to_onresize = "resize_textarea('$textarea_id','LC_aftertextarea');"; |
$add_to_onresize = "resize_textarea('$textarea_id','LC_aftertextarea');"; |
|
|
Line 1537 FULLPAGE
|
Line 1552 FULLPAGE
|
$htmlerror='<span class="LC_error">'.$htmlerror.'</span>'; |
$htmlerror='<span class="LC_error">'.$htmlerror.'</span>'; |
} |
} |
if (&Apache::lonhtmlcommon::htmlareabrowser()) { |
if (&Apache::lonhtmlcommon::htmlareabrowser()) { |
$textareaclass = 'class="LC_richDetectHtml"'; |
$textareaclass = 'class="LC_richDefaultOff"'; |
} |
} |
} |
} |
my $editfooter=(<<ENDFOOTER); |
my $editfooter=(<<ENDFOOTER); |
Line 1713 ENDNOTFOUND
|
Line 1728 ENDNOTFOUND
|
$result = &Apache::lontexconvert::converted(\$filecontents, |
$result = &Apache::lontexconvert::converted(\$filecontents, |
$env{'form.texengine'}); |
$env{'form.texengine'}); |
if ($env{'form.return_only_error_and_warning_counts'}) { |
if ($env{'form.return_only_error_and_warning_counts'}) { |
if (&verify_html('<html><body>'.$result.'</body></html>')) { |
|
$errorcount++; |
|
} |
|
$result = "$errorcount:$warningcount"; |
$result = "$errorcount:$warningcount"; |
} |
} |
} else { |
} else { |
Line 1836 sub debug {
|
Line 1848 sub debug {
|
} |
} |
|
|
sub show_error_warn_msg { |
sub show_error_warn_msg { |
if ($env{'request.filename'} eq '/home/httpd/html/res/lib/templates/simpleproblem.problem' && |
if (($env{'request.filename'} eq |
&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) { |
$Apache::lonnet::perlvar{'lonDocRoot'}.'/res/lib/templates/simpleproblem.problem') && |
|
(&Apache::lonnet::allowed('mdc',$env{'request.course.id'}))) { |
return 1; |
return 1; |
} |
} |
return (($Apache::lonxml::debug eq 1) || |
return (($Apache::lonxml::debug eq 1) || |
Line 2034 sub register_insert_xml {
|
Line 2047 sub register_insert_xml {
|
my $key; |
my $key; |
if ($token->[1] eq 'tag') { |
if ($token->[1] eq 'tag') { |
$tag = $token->[2]{'name'}; |
$tag = $token->[2]{'name'}; |
$insertlist{"$tagnum.tag"} = $tag; |
$insertlist{$tagnum.'.tag'} = $tag; |
$insertlist{"$tag.num"} = $tagnum; |
$insertlist{$tag.'.num'} = $tagnum; |
push(@alltags,$tag); |
push(@alltags,$tag); |
} elsif ($in_help && $token->[1] eq 'file') { |
} elsif ($in_help && $token->[1] eq 'file') { |
$key = $tag.'.helpfile'; |
$key = $tag.'.helpfile'; |
Line 2068 sub register_insert_xml {
|
Line 2081 sub register_insert_xml {
|
|
|
# parse the allows and ignore tags set to <show>no</show> |
# parse the allows and ignore tags set to <show>no</show> |
foreach my $tag (@alltags) { |
foreach my $tag (@alltags) { |
next if (!exists($insertlist{"$tag.allow"})); |
next if (!exists($insertlist{$tag.'.allow'})); |
my $allow = $insertlist{"$tag.allow"}; |
my $allow = $insertlist{$tag.'.allow'}; |
foreach my $element (split(',',$allow)) { |
foreach my $element (split(',',$allow)) { |
$element =~ s/(^\s*|\s*$ )//gx; |
$element =~ s/(^\s*|\s*$ )//gx; |
if (!exists($insertlist{"$element.show"}) |
if (!exists($insertlist{$element.'.show'}) |
|| $insertlist{"$element.show"} ne 'no') { |
|| $insertlist{$element.'.show'} ne 'no') { |
push(@{ $insertlist{$tag.'.which'} },$element); |
push(@{ $insertlist{$tag.'.which'} },$element); |
} |
} |
} |
} |