Diff for /loncom/homework/outputtags.pm between versions 1.55 and 1.60

version 1.55, 2009/05/14 10:57:40 version 1.60, 2017/05/23 14:59:07
Line 33  package Apache::outputtags; Line 33  package Apache::outputtags;
 use strict;  use strict;
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::lonnet;  use Apache::lonnet;
   use LONCAPA::LWPReq;
 use POSIX qw(strftime);  use POSIX qw(strftime);
   
 BEGIN {  BEGIN {
     &Apache::lonxml::register('Apache::outputtags',('displayduedate','displaytitle','displayweight','displaystudentphoto'));      &Apache::lonxml::register('Apache::outputtags',('displayduedate','displaytitle','displayweight','displaystudentphoto'));
 }  }
   
   ################################ 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 108  sub start_displayduedate { Line 172  sub start_displayduedate {
     # at the start of the line to ensure it won't overlap      # at the start of the line to ensure it won't overlap
     # the 1 col boundary.      # the 1 col boundary.
   
     $result = '\\\\ \framebox{'      $result = '\vspace{1.0 ex} \framebox{'
           .&mt('Due').' '.$duetext.'}';            .&mt('Due').' '.$duetext.'}';
  } else {   } else {
     $result = &mt('Due') . ' '.$duetext;      $result = &mt('Due') . ' '.$duetext;
Line 152  sub start_displaytitle { Line 216  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 252  sub start_displaystudentphoto { Line 317  sub start_displaystudentphoto {
     }      }
     if ($target eq 'tex' && $env{'request.role'} =~ /^cc/) {      if ($target eq 'tex' && $env{'request.role'} =~ /^cc/) {
  my $url=&Apache::lonnet::studentphoto($domain,$user,"eps");   my $url=&Apache::lonnet::studentphoto($domain,$user,"eps");
  my $ua=new LWP::UserAgent;          my $uhome=&Apache::lonnet::homeserver($user,$domain);
  my $request=new HTTP::Request('GET',$url);   my $request=new HTTP::Request('GET',$url);
  my $response=$ua->request($request);          my $response=&LONCAPA::LWPReq::makerequest($uhome,$request,'','','',1);
  if ($response->is_success) {   if ($response->is_success) {
     my $file=$user."_".$domain."_studentphoto.eps";      my $file=$user."_".$domain."_studentphoto.eps";
     open(FILE,">".$Apache::lonnet::perlvar{'lonPrtDir'}."/$file");      open(FILE,">".$Apache::lonnet::perlvar{'lonPrtDir'}."/$file");

Removed from v.1.55  
changed lines
  Added in v.1.60


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