Diff for /loncom/xml/lonxml.pm between versions 1.455 and 1.460

version 1.455, 2007/08/31 19:32:54 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 1539  ENDNOTFOUND Line 1668  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
 #  #

Removed from v.1.455  
changed lines
  Added in v.1.460


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>