Diff for /loncom/homework/outputtags.pm between versions 1.51 and 1.58

version 1.51, 2007/10/08 23:02:57 version 1.58, 2016/08/09 23:43:42
Line 26 Line 26
 # http://www.lon-capa.org/  # http://www.lon-capa.org/
 #  #
   
   
   
 package Apache::outputtags;   package Apache::outputtags; 
   
 use strict;  use strict;
Line 36  use POSIX qw(strftime); Line 38  use POSIX qw(strftime);
 BEGIN {  BEGIN {
     &Apache::lonxml::register('Apache::outputtags',('displayduedate','displaytitle','displayweight','displaystudentphoto'));      &Apache::lonxml::register('Apache::outputtags',('displayduedate','displaytitle','displayweight','displaystudentphoto'));
 }  }
 #  Empties the hash of tags that have already been displayed  
 #  that should only be displayed once.  ################################ utilities ###########################
   
   # 
   #  Does a simple substitution of a tab when the opening tag can
   #  be replaced by a fixed string.. and same for the closing tag.
   #  Parameters:
   #    $input   - String in in which to do the substitutions.
   #    $tag     - name of tag without the <>'s e.g. sub for <sub></sub>
   #    $opening - What to replace <$tag> with
   #    $closing - What to replace </$tag> with.
   #  Returns:
   #    Input string appropriately substituted.
   #
   sub substitute_tag {
       my ($input,
    $tag,
    $opening,
    $closing) = @_;
   
       $input =~ s/<$tag>/$opening/gi;
       $input =~ s/<\/$tag>/$closing/gi;
   
       return $input;
   }  
   
   #
   #  Substitutes the simple formatting tags in a string
   #  Parameters:
   #    $string - input string.
   #  Returns
   #    Result of string after simple substitutions
   #  Tags we handle are:
   #    <sub>, <sup> <em>
 #  #
   sub substitute_simple_tags_latex {
       my ($string)  = @_;
   
       # restore the <>'s:
   
       $string =~ s/\\ensuremath\{<}/</g;
       $string =~ s/\\ensuremath\{>}/>/g;
   
   
       # Substitute the tags:
   
       $string = &substitute_tag($string, "sub", '\ensuremath{_', '}');
       $string = &substitute_tag($string, 'sup', '\ensuremath{^', '}');
       $string = &substitute_tag($string, 'em', '\em{', '}');
   
   
       # Escape the remaining <>'s again:
   
       $string =~ s/</\\ensuremath{<}/g;
       $string =~ s/>/\\ensuremath{>}/g;
   
   
   
       return $string;
   }
   
   ################################ The parser ##########################
   
 sub initialize_outputtags {  sub initialize_outputtags {
     %Apache::outputtags::showonce=();      %Apache::outputtags::showonce=();
 }  }
   
   
   
 sub start_displayduedate {  sub start_displayduedate {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my $result;      my $result;
Line 105  sub start_displayduedate { Line 168  sub start_displayduedate {
  my $duetext = &Apache::lonnavmaps::timeToHumanString($date, '', $format);   my $duetext = &Apache::lonnavmaps::timeToHumanString($date, '', $format);
  if (lc($style) !~ 'plain') {   if (lc($style) !~ 'plain') {
     # The due date will be put in a box.      # The due date will be put in a box.
           # at the start of the line to ensure it won't overlap
     $result = '\framebox{'      # the 1 col boundary.
   
       $result = '\vspace{1.0 ex} \framebox{'
           .&mt('Due').' '.$duetext.'}';            .&mt('Due').' '.$duetext.'}';
  } else {   } else {
     $result = &mt('Due') . ' '.$duetext;      $result = &mt('Due') . ' '.$duetext;
Line 150  sub start_displaytitle { Line 215  sub start_displaytitle {
  $result.=&Apache::edit::end_table();   $result.=&Apache::edit::end_table();
     } elsif ($target eq 'tex' and $Apache::lonhomework::type ne 'exam') {      } elsif ($target eq 'tex' and $Apache::lonhomework::type ne 'exam') {
  $name=&Apache::lonxml::latex_special_symbols($name);   $name=&Apache::lonxml::latex_special_symbols($name);
    $name = &substitute_simple_tags_latex($name);
  if (lc($style) !~ 'plain') {    if (lc($style) !~ 'plain') { 
     $result='\vskip 0 mm\noindent\textbf{'.$name.'}\vskip 0 mm';      $result='\vskip 0 mm\noindent\textbf{'.$name.'}\vskip 0 mm';
  } else {   } else {
Line 277  sub end_displaystudentphoto { Line 343  sub end_displaystudentphoto {
   
 1;  1;
 __END__  __END__
   
   
   =head1 NAME
   
   Apache::outputtags;
   
   =head1 SYNOPSIS
   
   Handles tags associated with output. Seems to
   relate to due dates of the assignment.
   
   This is part of the LearningOnline Network with CAPA project
   described at http://www.lon-capa.org.
   
   =head1 SUBROUTINES
   
   =over
   
   =item start_displayduedate()
   
   =item initialize_outputtags()
   
   Empties the hash of tags that have already been displayed that should only be displayed once.
   
   =item end_displayduedate()
   
   =item start_displaytitle()
   
   =item end_displaytitle()
   
   =item multipart()
   
   =item start_displayweight()
   
   =item end_displayweight()
   
   =item start_displaystudentphoto()
   
   =item end_displaystudentphoto()
   
   
   =back
   
   =cut

Removed from v.1.51  
changed lines
  Added in v.1.58


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