Diff for /loncom/homework/randomlabel.pm between versions 1.34 and 1.38

version 1.34, 2002/08/07 21:49:35 version 1.38, 2002/10/22 21:25:34
Line 60  package Apache::randomlabel; Line 60  package Apache::randomlabel;
 use Apache::lonnet;  use Apache::lonnet;
 use strict;  use strict;
 use Apache::edit;  use Apache::edit;
   use Apache::File();
   use Apache::Constants qw(:common :http);
   
 BEGIN {  BEGIN {
   &Apache::lonxml::register('Apache::randomlabel',('randomlabel','labelgroup','location','label'));    &Apache::lonxml::register('Apache::randomlabel',('randomlabel','labelgroup','location','label'));
Line 106  sub start_randomlabel { Line 108  sub start_randomlabel {
     $result.="<applet code=\"$code\" codebase=\"$codebase\" width=\"$w\" height=\"$h\">\n";      $result.="<applet code=\"$code\" codebase=\"$codebase\" width=\"$w\" height=\"$h\">\n";
     $result.="<param name=\"bgimg\" value=\"$bgimg\">\n";      $result.="<param name=\"bgimg\" value=\"$bgimg\">\n";
   } elsif ($target eq 'tex') {    } elsif ($target eq 'tex') {
       my $newbgimg = $bgimg;
     $bgimg=~s/(.gif|.jpg)$/.eps/;      $bgimg=~s/(.gif|.jpg)$/.eps/;
     $bgimg= &Apache::lonnet::filelocation($bgimg);      $bgimg= &Apache::lonnet::filelocation($bgimg);
     if (not $ENV{'request.role'}=~/^au\./) {      if (not $ENV{'request.role'}=~/^au\./) {
  $bgimg=~s/http:\/[^\/]*/\/home\/httpd\/html/;   $bgimg=~s/http:\/[^\/]*/\/home\/httpd\/html/;
    $bgimg=~s/\/$//;
           #if no eps file try to replicate it
    if (not-e $bgimg) {
       if (&Apache::lonnet::repcopy($bgimg) ne OK ) {
    #if replication failed try to find ps file
    $bgimg=~s/\.eps$/\.ps/;
    #if no ps file try to replicate it
    if (not-e $bgimg &&
       &Apache::lonnet::repcopy($bgimg) ne OK) {
                       #if replication failed try to produce eps file dynamically
       $bgimg=~s/\.ps$/\.eps/;
       my $temp_file;
       my $filename = "/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout.dat";
       $temp_file = Apache::File->new('>>'.$filename);
       $newbgimg =~ s/(.*)\/res\//\/home\/httpd\/html\/res\//;
       print $temp_file "$newbgimg\n";
       $bgimg =~ m/\/([^\/]+)$/;
       $bgimg = '/home/httpd/prtspool/'.$1;
    }
       }
    }
     } else {      } else {
  $bgimg=~s/http:\/[^\/]*\/~([^\/]+)/\/home\/$1\/public_html/;   $bgimg=~s/http:\/[^\/]*\/~([^\/]+)/\/home\/$1\/public_html/;
   
     }      }
     $bgimg=~s/\/$//;      $bgimg=~s/\/$//;
     my $dirtywidth=$texwidth+5;      my $dirtywidth=$texwidth+5;
Line 156  sub end_randomlabel { Line 179  sub end_randomlabel {
     if( $count != 0) { $result.= "<param name=\"ICOUNT\" value=\"$count\">\n"; }      if( $count != 0) { $result.= "<param name=\"ICOUNT\" value=\"$count\">\n"; }
     $result .= "</applet>\n<BR />";      $result .= "</applet>\n<BR />";
   } elsif ($target eq 'tex') {    } elsif ($target eq 'tex') {
       $result='\end{picture}\\\\}';        $result='\end{picture}\\\\';
   @$parstack[-1]=~/\$height\s*=\s*?"(.+)?"/;    @$parstack[-1]=~/\$height\s*=\s*?"(.+)?"/;
       my $one=$1;        my $one=$1;
   @$parstack[-1]=~/\$width\s*=\s*?"(.+)?"/;    @$parstack[-1]=~/\$width\s*=\s*?"(.+)?"/;
Line 164  sub end_randomlabel { Line 187  sub end_randomlabel {
   @$parstack[-1]=~/\$texwidth\s*=\s*?"(.+)?"/;    @$parstack[-1]=~/\$texwidth\s*=\s*?"(.+)?"/;
       my $three=$1;        my $three=$1;
       my $howtoskipback = $three*$one/$two;        my $howtoskipback = $three*$one/$two;
       $result.=' \vskip -'.$howtoskipback.' mm ';        $result.=' \vskip -'.$howtoskipback.' mm }';
   } elsif ($target eq 'edit') {    } elsif ($target eq 'edit') {
     $result.=&Apache::edit::end_table;      $result.=&Apache::edit::end_table;
   }    }
Line 177  sub start_labelgroup { Line 200  sub start_labelgroup {
   my $name = &Apache::lonxml::get_param('name',$parstack,$safeeval);    my $name = &Apache::lonxml::get_param('name',$parstack,$safeeval);
   my $type = &Apache::lonxml::get_param('type',$parstack,$safeeval);    my $type = &Apache::lonxml::get_param('type',$parstack,$safeeval);
   $type =~tr/A-Z/a-z/;    $type =~tr/A-Z/a-z/;
   if ($target eq 'web' || $target eq 'tex' ||     if ($target eq 'web' || $target eq 'tex' ||
       $target eq 'grade' || $target eq 'answer') {        $target eq 'grade' || $target eq 'answer' || $target eq 'analyze') {
     $Apache::randomlabel::groupname=$name;      $Apache::randomlabel::groupname=$name;
     $Apache::randomlabel::type=$type;      $Apache::randomlabel::type=$type;
     @Apache::randomlabel::xcoord = ();      @Apache::randomlabel::xcoord = ();
Line 226  sub end_labelgroup { Line 249  sub end_labelgroup {
   my $gname = $Apache::randomlabel::groupname;    my $gname = $Apache::randomlabel::groupname;
   my $type  = $Apache::randomlabel::type;    my $type  = $Apache::randomlabel::type;
   my $result='';    my $result='';
   if ($target eq 'web' || $target eq 'answer' || $target eq 'grade') {    if ($target eq 'web' || $target eq 'answer' || $target eq 'grade' ||
         $target eq 'analyze') {
     my @idx_arr = (0 .. $#Apache::randomlabel::label_arr);      my @idx_arr = (0 .. $#Apache::randomlabel::label_arr);
     &Apache::structuretags::shuffle(\@idx_arr);      &Apache::structuretags::shuffle(\@idx_arr);
     for(0 .. $#Apache::randomlabel::label_arr) {      for(0 .. $#Apache::randomlabel::label_arr) {
Line 350  sub start_label { Line 374  sub start_label {
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
   my $result='';    my $result='';
   my $type = &Apache::lonxml::get_param('type',$parstack,$safeeval,-2);    my $type = &Apache::lonxml::get_param('type',$parstack,$safeeval,-2);
   if ($target eq 'web' || $target eq 'tex' ||     if ($target eq 'web' || $target eq 'tex' ||
       $target eq 'grade' || $target eq 'answer') {        $target eq 'grade' || $target eq 'answer' || $target eq 'analyze') {
     my $ltext=&Apache::lonxml::get_all_text("/label",$$parser[-1]);      my $ltext=&Apache::lonxml::get_all_text("/label",$$parser[-1]);
     $ltext=&Apache::run::evaluate($ltext,$safeeval,$$parstack[-1]);      $ltext=&Apache::run::evaluate($ltext,$safeeval,$$parstack[-1]);
     if ($type eq 'image') {      if ($type eq 'image') {

Removed from v.1.34  
changed lines
  Added in v.1.38


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