Diff for /loncom/homework/structuretags.pm between versions 1.73 and 1.80

version 1.73, 2001/12/04 14:53:59 version 1.80, 2002/02/06 16:18:54
Line 1 Line 1
 # The LearningOnline Network with CAPA   # The LearningOnline Network with CAPA 
 # definition of tags that give a structure to a document  # definition of tags that give a structure to a document
   #
   # $Id$
   #
   # Copyright Michigan State University Board of Trustees
   #
   # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
   #
   # LON-CAPA is free software; you can redistribute it and/or modify
   # it under the terms of the GNU General Public License as published by
   # the Free Software Foundation; either version 2 of the License, or
   # (at your option) any later version.
   #
   # LON-CAPA is distributed in the hope that it will be useful,
   # but WITHOUT ANY WARRANTY; without even the implied warranty of
   # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   # GNU General Public License for more details.
   #
   # You should have received a copy of the GNU General Public License
   # along with LON-CAPA; if not, write to the Free Software
   # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   #
   # /home/httpd/html/adm/gpl.txt
   #
   # http://www.lon-capa.org/
   #
 # 2/19 Guy  # 2/19 Guy
 # 6/26/2001 fixed extra web display at end of <web></web> tags  # 6/26/2001 fixed extra web display at end of <web></web> tags
 # 8/17,8/18,8/20 Gerd Kortemeyer  # 8/17,8/18,8/20 Gerd Kortemeyer
Line 9  package Apache::structuretags; Line 34  package Apache::structuretags;
 use strict;  use strict;
 use Apache::lonnet;  use Apache::lonnet;
   
 sub BEGIN {  BEGIN {
   &Apache::lonxml::register('Apache::structuretags',('block','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','startouttext','endouttext'));    &Apache::lonxml::register('Apache::structuretags',('block','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','startouttext','endouttext'));
 #  &Apache::lonxml::register_insert('problem','',('part','postanswerdate','preduedate'))  #  &Apache::lonxml::register_insert('problem','',('part','postanswerdate','preduedate'))
 }  }
Line 42  sub end_tex { Line 67  sub end_tex {
   
 sub page_start {  sub page_start {
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
   my $result=&Apache::londefdef::start_html($target,$token,$tagstack,$parstack,$parser,$safeeval);    my %found;
   my $head_tag_start='<head>'.&Apache::lonxml::registerurl();    foreach my $taginside ($tagstack) {
   my $body_tag_start='<body onLoad="'.&Apache::lonxml::loadevents().'" '.      foreach my $taglookedfor ('html','body','form') {
   'onUnload="'.&Apache::lonxml::unloadevents().'" ';        if ($taginside =~ /^$taglookedfor$/i) { $found{$taglookedfor} = 1; }
   my $background=&Apache::lonxml::get_param('background',$parstack,$safeeval);      }
   if ($background) {    }
     $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=  
                                         $background;    my $result;
     $body_tag_start.='background="'.$background.'" ';    my $head_tag_start;
   } else {    if (!defined($found{'html'})) {
     my $bgcolor=&Apache::lonxml::get_param('bgcolor',$parstack,$safeeval);      $result=&Apache::londefdef::start_html($target,$token,$tagstack,$parstack,
     if ($bgcolor) {     $parser,$safeeval);
       $body_tag_start.='bgcolor="'.$bgcolor.'" ';      $head_tag_start='<head>'.&Apache::lonxml::registerurl();
     }
     my $body_tag_start;
     if (!defined($found{'body'})) {
       $body_tag_start='<body onLoad="'.&Apache::lonxml::loadevents().'" '.
         'onUnload="'.&Apache::lonxml::unloadevents().'" ';
       my $background=&Apache::lonxml::get_param('background',$parstack,$safeeval);
       if ($background) {
         $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=
    $background;
         $body_tag_start.='background="'.$background.'" ';
     } else {      } else {
       $body_tag_start.='bgcolor="#ffffff"';        my $bgcolor=&Apache::lonxml::get_param('bgcolor',$parstack,$safeeval);
         if ($bgcolor) {
    $body_tag_start.='bgcolor="'.$bgcolor.'" ';
         } else {
    $body_tag_start.='bgcolor="#ffffff"';
         }
     }      }
       $body_tag_start.='>';
   }    }
   $body_tag_start.='>';  
   return ($result,$head_tag_start,$body_tag_start);    return ($result,$head_tag_start,$body_tag_start);
 }  }
   
Line 122  ENDCHECKOUT Line 162  ENDCHECKOUT
 sub start_problem {  sub start_problem {
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
   
     if ( $Apache::inputtags::part ne '' ) {
       &Apache::lonxml::error('Only one problem allowed in a .problem file');
       my $bodytext=&Apache::lonxml::get_all_text("/problem",$$parser[-1]);
       return '';
     }
 #intialize globals  #intialize globals
   $Apache::inputtags::part='0';    $Apache::inputtags::part='0';
   @Apache::inputtags::responselist = ();    @Apache::inputtags::responselist = ();
Line 248  sub start_problem { Line 293  sub start_problem {
   } elsif ($target eq 'modified') {    } elsif ($target eq 'modified') {
     $result=$token->[4];      $result=$token->[4];
     $result.=&Apache::edit::handle_insert();      $result.=&Apache::edit::handle_insert();
     } elsif ($target eq 'tex') {
         $result .= '\begin{document}\noindent\textbf{Problem.}\newline';
   } else {    } else {
     # page_start returned a starting result, delete it if we don't need it      # page_start returned a starting result, delete it if we don't need it
     $result = '';      $result = '';
Line 291  sub end_problem { Line 338  sub end_problem {
   } elsif ($target eq 'edit') {    } elsif ($target eq 'edit') {
     &Apache::lonxml::debug("in end_problem with $target, edit");      &Apache::lonxml::debug("in end_problem with $target, edit");
     $result='<br /><input type="submit" name="submit" value="Submit Changes" />';      $result='<br /><input type="submit" name="submit" value="Submit Changes" />';
     } elsif ($target eq 'tex') {
         $result .= '\end{document}';
   }    }
   return $result;    return $result;
 }  }

Removed from v.1.73  
changed lines
  Added in v.1.80


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