version 1.454, 2007/08/29 21:49:38
|
version 1.460, 2007/09/12 10:58:18
|
Line 135 $Apache::lonxml::request='';
|
Line 135 $Apache::lonxml::request='';
|
$Apache::lonxml::counter=1; |
$Apache::lonxml::counter=1; |
$Apache::lonxml::counter_changed=0; |
$Apache::lonxml::counter_changed=0; |
|
|
|
# A count of bubble lines needed for a set.. and a check on |
|
# whether or not it is ever used too: |
|
|
|
$Apache::lonxml::bubble_line_counter = 1; |
|
$Apache::lonxml::bubble_line_counter_changed = 0; |
|
|
|
|
#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 358 sub xmlparse {
|
Line 365 sub xmlparse {
|
} |
} |
&do_registered_ssi(); |
&do_registered_ssi(); |
if ($Apache::lonxml::counter_changed) { &store_counter() } |
if ($Apache::lonxml::counter_changed) { &store_counter() } |
|
if ($Apache::lonxml::bubble_line_counter_changed) { |
|
&store_bubble_counter(); |
|
} |
|
|
&clean_safespace($safeeval); |
&clean_safespace($safeeval); |
|
|
Line 627 sub setup_globals {
|
Line 637 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(); |
|
&init_bubble_counter(); |
@Apache::lonxml::pwd=(); |
@Apache::lonxml::pwd=(); |
@Apache::lonxml::extlinks=(); |
@Apache::lonxml::extlinks=(); |
@script_var_displays=(); |
@script_var_displays=(); |
Line 800 sub init_safespace {
|
Line 811 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 920 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 1007 sub get_all_text_unbalanced {
|
Line 1022 sub get_all_text_unbalanced {
|
return $result |
return $result |
} |
} |
|
|
|
|
|
=pod |
|
|
|
For bubble grading mode and exam bubble printing mode, the tracking of |
|
the current 'bubble line number' is stored in the %env element |
|
'form.bubble_line_counter', and is modifed and handled by |
|
the following routines. |
|
|
|
The value of it is stored in $Apache:lonxml::bubble_line_counter when |
|
live and stored back to env after done. |
|
|
|
=item &increment_bubble_counter($increment) |
|
|
|
Increments the bubble line counter by the optional value |
|
$increment (defaults to 1). |
|
|
|
'bad increments' are also treated as an increment of 1. |
|
('bad' means <=0). |
|
|
|
=cut |
|
|
|
sub increment_bubble_counter { |
|
my ($increment) = @_; |
|
if (!defined($increment) || $increment le 0) { |
|
$increment = 1; |
|
} |
|
$Apache::lonxml::bubble_line_counter += $increment; |
|
$Apache::lonxml::bubble_line_counter_changed = 1; |
|
} |
|
=pod |
|
|
|
=item &init_bubble_counter |
|
|
|
Initialize the internal counter to the env. variable |
|
or 1 if we are inconstruction space, or if the env var |
|
is not defined. |
|
|
|
=cut |
|
|
|
sub init_bubble_counter { |
|
if ($env{'request.state'} eq 'construct') { |
|
$Apache::lonxml::bubble_line_counter = 1; |
|
$Apache::lonxml::bubble_line_counter_changed = 1; |
|
} elsif (defined($env{'form.bubble_line_counter'})) { |
|
$Apache::lonxml::bubble_line_counter = |
|
$env{'form.bubble_line_counter'}; |
|
$Aapche::lonxml::bubble_line_counter_changed = 0; |
|
} else { |
|
$Apache::lonxml::bubble_line_counter = 1; |
|
$Apache::lonxml::bubble_line_counter_changed = 1; |
|
} |
|
|
|
} |
|
|
|
=pod |
|
|
|
=item store_bubble_counter; |
|
|
|
Store the bubble line counter in its env var. The changed flag |
|
is reset indicating the env is up to date with respect to the |
|
local variable. |
|
=cut |
|
|
|
sub store_bubble_counter { |
|
&Apache::lonnet::appenv(('form.bubble.counter' => |
|
$Apache::lonxml::bubble_line_counter)); |
|
$Apache::lonnet::bubble_line_counter_changed = 0; |
|
|
|
return ''; |
|
} |
|
|
|
=pod |
|
|
|
The next set of subs allow a single level of save/restore for the |
|
bubble_line_counter. |
|
|
|
=cut |
|
|
|
{ |
|
my $bubble_counter_state; |
|
|
|
sub clear_bubble_counter { |
|
undef($bubble_counter_state); |
|
&Apache::lonnet::delenv('form.bubble_line_counter'); |
|
&Apache::lonxml::init_bubble_counter(); |
|
&Apache::lonxml::store_bubble_counter(); |
|
} |
|
|
|
sub remember_bubble_counter { |
|
&Apache::lonnet::transfer_profile_to_env(undef,undef, 1); |
|
$bubble_counter_state = $env{'form.bubble_line_counter'}; |
|
} |
|
|
|
sub restore_bubble_counter { |
|
if (defined($bubble_counter_state)) { |
|
&Apache::lonnet::appenv(('form.bubble_line_counter' => |
|
$bubble_counter_state)); |
|
} |
|
} |
|
|
|
sub get_bubble_counter { |
|
if ($Apache::lonxml::bubble_line_counter_changed) { |
|
&store_bubble_counter(); |
|
} |
|
&Apache::lonnet::transfer_profile_to_env(undef, undef, 1); |
|
return $env{'form.bubble_line_counter'}; |
|
} |
|
} |
|
|
=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 1037 sub increment_counter {
|
Line 1161 sub increment_counter {
|
|
|
=pod |
=pod |
|
|
=item &init_counter($increment); |
=item &init_counter; |
|
|
Initialize the internal counter environment variable |
Initialize the internal counter environment variable |
|
|
Line 1081 sub store_counter {
|
Line 1205 sub store_counter {
|
&Apache::lonnet::appenv(('form.counter' => $state)); |
&Apache::lonnet::appenv(('form.counter' => $state)); |
} |
} |
} |
} |
|
|
sub get_problem_counter { |
sub get_problem_counter { |
if ($Apache::lonxml::counter_changed) { &store_counter() } |
if ($Apache::lonxml::counter_changed) { &store_counter() } |
&Apache::lonnet::transfer_profile_to_env(undef,undef,1); |
&Apache::lonnet::transfer_profile_to_env(undef,undef,1); |
return $env{'form.counter'}; |
return $env{'form.counter'}; |
} |
} |
|
|
} |
} |
|
|
sub get_all_text { |
sub get_all_text { |
Line 1357 sub inserteditinfo {
|
Line 1483 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 1509 $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 1518 $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 1538 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 1529 ENDNOTFOUND
|
Line 1658 ENDNOTFOUND
|
['editmode']); |
['editmode']); |
} |
} |
if (!$env{'form.editmode'} || $env{'form.viewmode'} || $env{'form.discardview'}) { |
if (!$env{'form.editmode'} || $env{'form.viewmode'} || $env{'form.discardview'}) { |
|
&Apache::structuretags::reset_problem_globals(); |
$result = &Apache::lonxml::xmlparse($request,$target,$filecontents, |
$result = &Apache::lonxml::xmlparse($request,$target,$filecontents, |
'',%mystyle); |
'',%mystyle); |
undef($Apache::lonhomework::parsing_a_task); |
# .html files may contain <problem> or <Task> need to clean |
|
# up if it did |
|
&Apache::structuretags::reset_problem_globals(); |
|
&Apache::lonhomework::finished_parsing(); |
&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 |
# |
# |