version 1.455, 2007/08/31 19:32:54
|
version 1.462, 2007/10/08 09:20:22
|
Line 92 use Apache::loncacc();
|
Line 92 use Apache::loncacc();
|
use Apache::lonmaxima(); |
use Apache::lonmaxima(); |
use Apache::lonlocal; |
use Apache::lonlocal; |
|
|
#================================================== Main subroutine: xmlparse |
#==================================== Main subroutine: xmlparse |
|
|
#debugging control, to turn on debugging modify the correct handler |
#debugging control, to turn on debugging modify the correct handler |
|
|
$Apache::lonxml::debug=0; |
$Apache::lonxml::debug=0; |
|
|
# keeps count of the number of warnings and errors generated in a parse |
# keeps count of the number of warnings and errors generated in a parse |
Line 135 $Apache::lonxml::request='';
|
Line 137 $Apache::lonxml::request='';
|
$Apache::lonxml::counter=1; |
$Apache::lonxml::counter=1; |
$Apache::lonxml::counter_changed=0; |
$Apache::lonxml::counter_changed=0; |
|
|
|
# Part counter hash. In analysis mode, the |
|
# problems can use this to record which parts increment the counter |
|
# by how much. The counter subs will maintain this hash via |
|
# their optional part parameters. Note that the assumption is that |
|
# analysis is done in one request and therefore it is not necessary to |
|
# save this information request-to-request. |
|
|
|
|
|
%Apache::lonxml::counters_per_part = (); |
|
|
#internal check on whether to look at style defs |
#internal check on whether to look at style defs |
$Apache::lonxml::usestyle=1; |
$Apache::lonxml::usestyle=1; |
|
|
Line 627 sub setup_globals {
|
Line 639 sub setup_globals {
|
$Apache::lonxml::default_homework_loaded=0; |
$Apache::lonxml::default_homework_loaded=0; |
$Apache::lonxml::usestyle=1; |
$Apache::lonxml::usestyle=1; |
&init_counter(); |
&init_counter(); |
|
&clear_bubble_lines_for_part(); |
@Apache::lonxml::pwd=(); |
@Apache::lonxml::pwd=(); |
@Apache::lonxml::extlinks=(); |
@Apache::lonxml::extlinks=(); |
@script_var_displays=(); |
@script_var_displays=(); |
Line 800 sub init_safespace {
|
Line 813 sub init_safespace {
|
$safehole->wrap(\&Math::Random::random_set_seed_from_phrase,$safeeval,'&random_set_seed_from_phrase'); |
$safehole->wrap(\&Math::Random::random_set_seed_from_phrase,$safeeval,'&random_set_seed_from_phrase'); |
$safehole->wrap(\&Math::Random::random_get_seed,$safeeval,'&random_get_seed'); |
$safehole->wrap(\&Math::Random::random_get_seed,$safeeval,'&random_get_seed'); |
$safehole->wrap(\&Math::Random::random_set_seed,$safeeval,'&random_set_seed'); |
$safehole->wrap(\&Math::Random::random_set_seed,$safeeval,'&random_set_seed'); |
|
$safehole->wrap(\&Apache::loncommon::languages,$safeeval,'&languages'); |
$safehole->wrap(\&Apache::lonxml::error,$safeeval,'&LONCAPA_INTERNAL_ERROR'); |
$safehole->wrap(\&Apache::lonxml::error,$safeeval,'&LONCAPA_INTERNAL_ERROR'); |
$safehole->wrap(\&Apache::lonxml::debug,$safeeval,'&LONCAPA_INTERNAL_DEBUG'); |
$safehole->wrap(\&Apache::lonxml::debug,$safeeval,'&LONCAPA_INTERNAL_DEBUG'); |
$safehole->wrap(\&Apache::lonnet::logthis,$safeeval,'&LONCAPA_INTERNAL_LOGTHIS'); |
$safehole->wrap(\&Apache::lonnet::logthis,$safeeval,'&LONCAPA_INTERNAL_LOGTHIS'); |
Line 908 sub endredirection {
|
Line 922 sub endredirection {
|
} |
} |
pop @Apache::lonxml::outputstack; |
pop @Apache::lonxml::outputstack; |
} |
} |
|
sub in_redirection { |
|
return ($Apache::lonxml::redirection > 0) |
|
} |
|
|
sub end_tag { |
sub end_tag { |
my ($tagstack,$parstack,$token)=@_; |
my ($tagstack,$parstack,$token)=@_; |
Line 1005 sub get_all_text_unbalanced {
|
Line 1022 sub get_all_text_unbalanced {
|
} |
} |
} |
} |
return $result |
return $result |
|
|
} |
} |
|
|
|
######################################################################### |
|
# # |
|
# bubble line counter management # |
|
# # |
|
######################################################################### |
|
|
=pod |
=pod |
|
|
For bubble grading mode and exam bubble printing mode, the tracking of |
For bubble grading mode and exam bubble printing mode, the tracking of |
Line 1022 Increments the internal counter environm
|
Line 1046 Increments the internal counter environm
|
|
|
Optional Arguments: |
Optional Arguments: |
$increment - amount to increment by (defaults to 1) |
$increment - amount to increment by (defaults to 1) |
|
Also 1 if the value is negative or zero. |
|
$part_id - optional part id.. during analysis, this |
|
indicates whic part of a problem is being |
|
counted. |
|
|
=cut |
=cut |
|
|
sub increment_counter { |
sub increment_counter { |
my ($increment) = @_; |
my ($increment, $part_id) = @_; |
if (defined($increment) && $increment gt 0) { |
if (!defined($increment) || $increment le 0) { |
$Apache::lonxml::counter+=$increment; |
$increment = 1; |
} else { |
|
$Apache::lonxml::counter++; |
|
} |
} |
|
$Apache::lonxml::counter += $increment; |
|
|
|
# If the caller supplied the part_id parameter, |
|
# Maintain its counter.. creating if necessary. |
|
|
|
if(defined($part_id)) { |
|
if (!defined($Apache::lonxml::counters_per_part{$part_id})) { |
|
$Apache::lonxml::counters_per_part{$part_id} = 0; |
|
} |
|
$Apache::lonxml::counters_per_part{$part_id} += $increment; |
|
my $new_value = $Apache::lonxml::counters_per_part{$part_id}; |
|
} |
|
|
$Apache::lonxml::counter_changed=1; |
$Apache::lonxml::counter_changed=1; |
} |
} |
|
|
Line 1088 sub store_counter {
|
Line 1127 sub store_counter {
|
} |
} |
} |
} |
|
|
|
=pod |
|
|
|
=item bubble_lines_for_part(part_id) |
|
|
|
Returns the number of lines required to get a response for |
|
$part_id (this is just $Apache::lonxml::counters_per_part{$part_id} |
|
|
|
=cut |
|
|
|
sub bubble_lines_for_part { |
|
my ($part_id) = @_; |
|
|
|
if (!defined($Apache::lonxml::counters_per_part{$part_id})) { |
|
return 0; |
|
} else { |
|
return $Apache::lonxml::counters_per_part{$part_id}; |
|
} |
|
|
|
} |
|
|
|
=pod |
|
|
|
=item clear_bubble_lines_for_part |
|
|
|
Clears the hash of bubble lines per part. If a caller |
|
needs to analyze several resources this should be called between |
|
resources to reset the hash for each problem being analyzed. |
|
|
|
=cut |
|
|
|
sub clear_bubble_lines_for_part { |
|
undef(%Apache::lonxml::counters_per_part); |
|
} |
|
|
|
=pod |
|
|
|
=item set_bubble_lines(part_id, value) |
|
|
|
If there is a problem part, that for whatever reason |
|
requires bubble lines that are not |
|
the same as the counter increment, it can call this sub during |
|
analysis to set its hash value explicitly. |
|
|
|
=cut |
|
|
|
sub set_bubble_lines { |
|
my ($part_id, $value) = @_; |
|
|
|
$Apache::lonxml::counters_per_part{$part_id} = $value; |
|
} |
|
|
|
=pod |
|
|
|
=item get_bubble_line_hash |
|
|
|
Returns the current bubble line hash. This is assumed to |
|
be small so we return a copy |
|
|
|
|
|
=cut |
|
|
|
sub get_bubble_line_hash { |
|
return %Apache::lonxml::counters_per_part; |
|
} |
|
|
|
|
|
#-------------------------------------------------- |
|
|
sub get_all_text { |
sub get_all_text { |
my($tag,$pars,$style)= @_; |
my($tag,$pars,$style)= @_; |
my $gotfullstack=1; |
my $gotfullstack=1; |
Line 1357 sub inserteditinfo {
|
Line 1464 sub inserteditinfo {
|
my $initialize=''; |
my $initialize=''; |
my $textarea_id = 'filecont'; |
my $textarea_id = 'filecont'; |
my ($add_to_onload, $add_to_onresize); |
my ($add_to_onload, $add_to_onresize); |
if ($filetype eq 'html') { |
my $addbuttons=&Apache::lonhtmlcommon::htmlareaaddbuttons(); |
my $addbuttons=&Apache::lonhtmlcommon::htmlareaaddbuttons(); |
$initialize=&Apache::lonhtmlcommon::spellheader(); |
$initialize=&Apache::lonhtmlcommon::spellheader(); |
if ($filetype eq 'html' |
if (!&Apache::lonhtmlcommon::htmlareablocked() && |
&& (!&Apache::lonhtmlcommon::htmlareablocked() && |
&Apache::lonhtmlcommon::htmlareabrowser()) { |
&Apache::lonhtmlcommon::htmlareabrowser())) { |
$textarea_id .= '_htmlarea'; |
$textarea_id .= '_htmlarea'; |
$initialize.=(<<FULLPAGE); |
$initialize.=(<<FULLPAGE); |
<script type="text/javascript"> |
<script type="text/javascript"> |
$addbuttons |
$addbuttons |
|
|
Line 1383 $addbuttons
|
Line 1490 $addbuttons
|
} |
} |
</script> |
</script> |
FULLPAGE |
FULLPAGE |
} else { |
} else { |
$initialize.=(<<FULLPAGE); |
$initialize.=(<<FULLPAGE); |
<script type="text/javascript"> |
<script type="text/javascript"> |
$addbuttons |
$addbuttons |
function initDocument() { |
function initDocument() { |
Line 1392 $addbuttons
|
Line 1499 $addbuttons
|
} |
} |
</script> |
</script> |
FULLPAGE |
FULLPAGE |
} |
} |
$add_to_onload = 'initDocument();'; |
|
$add_to_onresize = "resize_textarea('$textarea_id','LC_aftertextarea');"; |
$add_to_onload = 'initDocument();'; |
|
$add_to_onresize = "resize_textarea('$textarea_id','LC_aftertextarea');"; |
|
|
|
if ($filetype eq 'html') { |
$xml_help=&Apache::loncommon::helpLatexCheatsheet(); |
$xml_help=&Apache::loncommon::helpLatexCheatsheet(); |
} |
} |
|
|
Line 1409 FULLPAGE
|
Line 1519 FULLPAGE
|
my $buttons=(<<BUTTONS); |
my $buttons=(<<BUTTONS); |
$cleanbut |
$cleanbut |
<input type="submit" name="discardview" accesskey="d" value="$lt{'dv'}" /> |
<input type="submit" name="discardview" accesskey="d" value="$lt{'dv'}" /> |
<input type="submit" name="Undo" accesskey="u" value="$lt{'un'}" /><hr> |
<input type="submit" name="Undo" accesskey="u" value="$lt{'un'}" /><hr /> |
<input type="submit" name="savethisfile" accesskey="s" value="$lt{'st'}" /> |
<input type="submit" name="savethisfile" accesskey="s" value="$lt{'st'}" /> |
<input type="submit" name="viewmode" accesskey="v" value="$lt{'vi'}" /> |
<input type="submit" name="viewmode" accesskey="v" value="$lt{'vi'}" /> |
BUTTONS |
BUTTONS |
Line 1539 ENDNOTFOUND
|
Line 1649 ENDNOTFOUND
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
['rawmode']); |
['rawmode']); |
if ($env{'form.rawmode'}) { $result = $filecontents; } |
if ($env{'form.rawmode'}) { $result = $filecontents; } |
|
if ($filetype eq 'sty') { |
|
my $controls = |
|
($env{'request.state'} eq 'construct') ? &Apache::londefdef::edit_controls() |
|
: ''; |
|
my %options = ('bgcolor' => '#FFFFFF'); |
|
$result = |
|
&Apache::loncommon::start_page(undef,undef,\%options). |
|
$controls. |
|
$result. |
|
&Apache::loncommon::end_page(); |
|
} |
} |
} |
} |
} |
|
|
# |
# |
# Edit action? Insert editing commands |
# Edit action? Insert editing commands |
# |
# |