Diff for /rat/lonpage.pm between versions 1.59 and 1.67

version 1.59, 2004/08/29 19:25:34 version 1.67, 2005/02/17 09:09:57
Line 25 Line 25
 #  #
 # http://www.lon-capa.org/  # http://www.lon-capa.org/
 #  #
 # (TeX Content Handler  
 #  
 # YEAR=2000  
 # 05/29/00,05/30 Gerd Kortemeyer)  
 # 08/30,08/31,09/06,09/14,09/15,09/16,09/19,09/20,09/21,09/23,  
 # 10/02,10/10,10/14,10/16,10/18,10/19,10/31,11/6,11/14,11/16,  
 # YEAR=2001  
 # 08/13/01,08/30,10/1 Gerd Kortemeyer  
 # YEAR=2002  
 # 03/19 Gerd Kortemeyer  
 #  
 ###  ###
   
 package Apache::lonpage;  package Apache::lonpage;
Line 232  sub handler { Line 221  sub handler {
                       $lcm*=($#colcont+1)/euclid($lcm,($#colcont+1));                        $lcm*=($#colcont+1)/euclid($lcm,($#colcont+1));
                       foreach (@colcont) {                        foreach (@colcont) {
                           my $src=$hash{'src_'.$_};                            my $src=$hash{'src_'.$_};
                           $src=~/\.(\w+)$/;    my ($extension)=($src=~/\.(\w+)$/);
     if ($hash{'encrypted_'.$_}) {
         $src=&Apache::lonenc::encrypted($src);
     }
                           $metalink{$_}=$src.'.meta';                            $metalink{$_}=$src.'.meta';
                           $cellemb{$_}=Apache::loncommon::fileembstyle($1);                            $cellemb{$_}=
         &Apache::loncommon::fileembstyle($extension);
                           if ($cellemb{$_} eq 'ssi') {                            if ($cellemb{$_} eq 'ssi') {
 # --------------------------------------------------------- This is an SSI cell  # --------------------------------------------------------- This is an SSI cell
         my ($mapid,$resid)=split(/\./,$_);
         my $symb=&Apache::lonnet::encode_symb($hash{'map_id_'.$mapid},$resid,$src);
         
       my $prefix=$_.'_';        my $prefix=$_.'_';
                               my %posthash=('request.prefix' => $prefix);                                my %posthash=('request.prefix' => $prefix,
       'symb' => $symb);
       if ($ENV{'form.grade_target'} eq 'tex') {        if ($ENV{'form.grade_target'} eq 'tex') {
   $posthash{'grade_target'}=$ENV{'form.grade_target'};    $posthash{'grade_target'}=$ENV{'form.grade_target'};
   $posthash{'textwidth'}=$ENV{'form.textwidth'};    $posthash{'textwidth'}=$ENV{'form.textwidth'};
Line 257  sub handler { Line 254  sub handler {
                                }                                 }
       }        }
                               my $output=Apache::lonnet::ssi($src,%posthash);                                my $output=Apache::lonnet::ssi($src,%posthash);
       $output=~        $output=~s|//(\s*<!--)? BEGIN LON-CAPA Internal.+// END LON-CAPA Internal\s*(-->)?\s||gs;
     s/\/\/ BEGIN LON\-CAPA Internal.+\/\/ END LON\-CAPA Internal\s//gs;  
                               if ($target eq 'tex') {                                if ($target eq 'tex') {
   $output =~ s/^([^&]+)\\begin{document}//;    $output =~ s/^([^&]+)\\begin{document}//;
   $output =~ s/\\end{document}//;    $output =~ s/\\end{document}//;
Line 397  sub handler { Line 393  sub handler {
 # ------------------------------------------------------------------ Start form  # ------------------------------------------------------------------ Start form
   if ($nforms) {    if ($nforms) {
       $r->print('<form method="post" action="'.        $r->print('<form method="post" action="'.
  $requrl.'">');   &Apache::lonenc::check_encrypt($requrl)
    .'">');
   }    }
       } elsif ($target eq 'tex') {        } elsif ($target eq 'tex') {
   $r->print('\documentclass{article}    $r->print('\documentclass{article}
Line 413  sub handler { Line 410  sub handler {
   $r->print('\begin{longtable}INSERTTHEHEADOFLONGTABLE\endfirsthead\endhead ');    $r->print('\begin{longtable}INSERTTHEHEADOFLONGTABLE\endfirsthead\endhead ');
   if ($number_of_columns le $lcm) {$number_of_columns=$lcm;};    if ($number_of_columns le $lcm) {$number_of_columns=$lcm;};
       } else {        } else {
   $r->print('<table cols="'.$lcm.'" border="0">');    $r->print('<table width="100%" cols="'.$lcm.'" border="0">');
       }        }
                       for ($i=0;$i<=$#rows;$i++) {                        for ($i=0;$i<=$#rows;$i++) {
  if ($rows[$i]) {   if ($rows[$i]) {
Line 424  sub handler { Line 421  sub handler {
                           my $avespan=$lcm/($#colcont+1);                            my $avespan=$lcm/($#colcont+1);
                           for ($j=0;$j<=$#colcont;$j++) {                            for ($j=0;$j<=$#colcont;$j++) {
                               my $rid=$colcont[$j];                                my $rid=$colcont[$j];
                               my $metainfo='<a name="'.                                my $metainfo = '';
   &Apache::lonnet::escape(&Apache::lonnet::declutter($hash{'src_'.$rid})).'" />'.        my $esrc=&Apache::lonnet::declutter($hash{'src_'.$rid});
   '<a href="'.        my ($mapid,$resid)=split(/\./,$rid);
                                     $metalink{$rid}.'" target="LONcatInfo">'.        my $symb=&Apache::lonnet::encode_symb($hash{'map_id_'.$mapid},$resid,$hash{'src_'.$rid});
                           '<img src="/adm/lonMisc/cat_button.gif" border=0>'.        if ($hash{'encrypted_'.$rid}) {
   '</img></a><a href="/adm/evaluate?postdata='.    $symb=&Apache::lonenc::encrypted($symb);
       &Apache::lonnet::escape(&Apache::lonnet::declutter($hash{'src_'.$rid}))    $esrc=&Apache::lonenc::encrypted($esrc);
       .'" target="LONcatInfo">'.        }
                           '<img src="/adm/lonMisc/eval_button.gif" border=0>'.                                unless ($hash{'src_'.$rid} =~ m-^/uploaded/-) { 
                           '</img></a>';                                    $metainfo ='<a name="'.&Apache::lonnet::escape($symb).'" />'.
                                     '<a href="'.$metalink{$rid}.'" target="LONcatInfo">'.
                                     '<img src="/adm/lonMisc/cat_button.gif" border=0>'.
                                     '</img></a>';
                                 }
                                 $metainfo .= '<a href="/adm/evaluate?postdata='.
     &Apache::lonnet::escape($esrc).
                                     '" target="LONcatInfo">'.
                                     '<img src="/adm/lonMisc/eval_button.gif" border=0>'.
                                     '</img></a>';
                               if (                                if (
  ($hash{'src_'.$rid}=~/\.(problem|exam|quiz|assess|survey|form)$/) &&   ($hash{'src_'.$rid}=~/\.(problem|exam|quiz|assess|survey|form)$/) &&
  (&Apache::lonnet::allowed('mgr',$ENV{'request.course.id'}))) {   (&Apache::lonnet::allowed('mgr',$ENV{'request.course.id'})) && 
    ($hash{'src_'.$rid} !~ m-^/uploaded/-)) {
   my ($mapid,$resid)=split(/\./,$rid);    my ($mapid,$resid)=split(/\./,$rid);
                                  my $symb=                                   my $symb=
                 &Apache::lonnet::declutter($hash{'map_id_'.$mapid}).                  &Apache::lonnet::declutter($hash{'map_id_'.$mapid}).
Line 504  sub handler { Line 511  sub handler {
       } elsif ($cellemb{$rid} eq 'emb') {        } elsif ($cellemb{$rid} eq 'emb') {
                                   $r->print('>'.$metainfo.'<embed src="'.                                    $r->print('>'.$metainfo.'<embed src="'.
                                     $hash{'src_'.$rid}.'"></embed>');                                      $hash{'src_'.$rid}.'"></embed>');
                                 } elsif (&Apache::lonnet::declutter($hash{'src_'.$rid}) !~/\.(sequence|page)$/) {
                                     $r->print($metainfo.'<b>'.$hash{'title_'.$rid}.'</b><br />'.
                                     &mt('It is recommended that you use an up-to-date virus scanner before handling this file.').'</p><p><table>'.
                                     &Apache::londocs::entryline(0,&mt("Click to download or use your browser's Save Link function"),'/'.&Apache::lonnet::declutter($hash{'src_'.$rid})).'</table></p><br />');
                               }                                }
       unless ($target eq 'tex') {        unless ($target eq 'tex') {
   $r->print('</td>');    $r->print('</td>');
Line 536  sub handler { Line 547  sub handler {
       } else {        } else {
   $r->print('\end{document}'.$number_of_columns);    $r->print('\end{document}'.$number_of_columns);
       }        }
         &Apache::lonnet::symblist($requrl,%symbhash);
 # -------------------------------------------------------------------- End page  # -------------------------------------------------------------------- End page
                   }                                      }                  
 # ------------------------------------------------------------- End render page  # ------------------------------------------------------------- End render page
               } else {                } else {
                   $r->content_type('text/html');                    &Apache::loncommon::content_type($r,'text/html');
                   $r->send_http_header;                    $r->send_http_header;
                   &Apache::lonsequence::viewmap($r,$requrl);                    &Apache::lonsequence::viewmap($r,$requrl);
               }                }
Line 555  sub handler { Line 567  sub handler {
           }            }
       }         } 
   }    }
   $r->content_type('text/html');    &Apache::loncommon::content_type($r,'text/html');
   $r->send_http_header;    $r->send_http_header;
   &Apache::lonsequence::viewmap($r,$requrl);    &Apache::lonsequence::viewmap($r,$requrl);
   return OK;     return OK; 

Removed from v.1.59  
changed lines
  Added in v.1.67


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