Diff for /loncom/homework/randomlabel.pm between versions 1.1 and 1.2

version 1.1, 2001/08/29 09:23:26 version 1.2, 2001/08/29 19:48:26
Line 4 Line 4
 # 8/10/2001 Isaac Tsai  # 8/10/2001 Isaac Tsai
 # SYNTAX:  # SYNTAX:
 # <randomlabel bgimg=URL code=JAVACLASS codebase=URL width=12 height=45>  # <randomlabel bgimg=URL code=JAVACLASS codebase=URL width=12 height=45>
 #    <labelgroup name=GroupOne type=img>  #    <labelgroup name=GroupOne type=image>
 #      <location x=123 y=456 />  #      <location x=123 y=456 />
 #      <location x=321 y=654 />  #      <location x=321 y=654 />
 #      <location x=213 y=546 />  #      <location x=213 y=546 />
Line 63  sub start_labelgroup { Line 63  sub start_labelgroup {
   my $result='';    my $result='';
   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/;
   $Apache::randomlabel::groupname=$name;    $Apache::randomlabel::groupname=$name;
     $Apache::randomlabel::type=$type;
   @Apache::randomlabel::xcoord = ();    @Apache::randomlabel::xcoord = ();
   @Apache::randomlabel::ycoord = ();    @Apache::randomlabel::ycoord = ();
   @Apache::randomlabel::label_arr  = ();    @Apache::randomlabel::label_arr  = ();
Line 75  sub end_labelgroup { Line 77  sub end_labelgroup {
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
   my $gname = $Apache::randomlabel::groupname;    my $gname = $Apache::randomlabel::groupname;
   my $count = $#Apache::randomlabel::label_arr + 1;    my $count = $#Apache::randomlabel::label_arr + 1;
     my $type  = $Apache::randomlabel::type;
   my $code;    my $code;
   my $out;    my $out;
   my $label;    my $label;
   my $x;    my $x;
   my $y;    my $y;
   my $text= "<param name=\"count\" value=\"$count\">";    my $text;
     my $str;
     my $xstr;
     my $ystr;
   
     if( $type eq 'text') {
       $text= "<param name=\"count\" value=\"$count\">";
       $str = 'LB';
       $xstr = 'X';
       $ystr = 'Y';
     }
     if( $type eq 'image') {
       $text= "<param name=\"icount\" value=\"$count\">";
       $str = 'IMG';
       $xstr = 'IX';
       $ystr = 'IY';
     }
   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) {
     $label = "$Apache::randomlabel::label_arr[ $idx_arr[$_] ]";      $label = "$Apache::randomlabel::label_arr[ $idx_arr[$_] ]";
     $x = pop @Apache::randomlabel::xcoord;      $x = pop @Apache::randomlabel::xcoord;
     $y = pop @Apache::randomlabel::ycoord;      $y = pop @Apache::randomlabel::ycoord;
     $text .= "<param name=\"LB". $_ . "\" value=\"$label\">";      $text .= "<param name=\"" . $str  . $_ . "\" value=\"$label\">";
     $text .= "<param name=\"X" . $_ . "\" value=\"$x\"> ";      $text .= "<param name=\"" . $xstr . $_ . "\" value=\"$x\"> ";
     $text .= "<param name=\"Y" . $_ . "\" value=\"$y\">";      $text .= "<param name=\"" . $ystr . $_ . "\" value=\"$y\">";
     $code = "push(\@$gname, $label);" ;      $code = "push(\@$gname, $label);" ;
     # print("CODE=$code");  
     # $out=Apache::run::run($code,$safeeval,$$parstack[$#$parstack]);  
     $out=Apache::run::run($code,$safeeval);      $out=Apache::run::run($code,$safeeval);
   }    }
       
   return $text;    return $text;
 }  }
   
   # <location x=123 y=456 />
 sub start_location {  sub start_location {
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
   my $x= &Apache::lonxml::get_param('x',$parstack,$safeeval);    my $x= &Apache::lonxml::get_param('x',$parstack,$safeeval);
Line 114  sub end_location { Line 131  sub end_location {
   return '';    return '';
 }  }
   
   # <label>$var_abc</label>
 sub start_label {  sub start_label {
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
   my $ltext=&Apache::lonxml::get_all_text("/label",$$parser[$#$parser]);    my $ltext=&Apache::lonxml::get_all_text("/label",$$parser[$#$parser]);

Removed from v.1.1  
changed lines
  Added in v.1.2


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