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]); |