# The LearningOnline Network with CAPA
# random labelling tool
#
# $Id: randomlabel.pm,v 1.8 2001/12/04 15:17:56 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
#
# LON-CAPA is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# LON-CAPA is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LON-CAPA; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# /home/httpd/html/adm/gpl.txt
#
# http://www.lon-capa.org/
#
# 7/20/2001 Isaac Tsai, initial syntax
# 8/10/2001 Isaac Tsai,
# 8/30/2001 Isaac Tsai,
# SYNTAX:
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
# ===========================================
# side effect:
# location (123,456): $GroupOne[0] = 2 # images give out indexes
# (321,654): $GroupOne[1] = 1
# (213,546): $GroupOne[2] = 0
# location (12,45) : $GroupTwo[0] = "TEXT-3"
# (32,65) : $GroupTwo[1] = "TEXT-1"
# (21,54) : $GroupTwo[2] = "TEXT-2"
# ===========================================
package Apache::randomlabel;
use strict;
sub BEGIN {
&Apache::lonxml::register('Apache::randomlabel',('randomlabel','labelgroup','location','label'));
}
sub start_randomlabel {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
my $result='';
$Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=
'/res/adm/includes/GLabel.class';
my $bgimg= &Apache::lonxml::get_param('bgimg',$parstack,$safeeval);
if ( $bgimg !~ /^http:/ ) {
$Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=$bgimg;
$bgimg=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$bgimg);
if ($bgimg =~ /$Apache::lonnet::perlvar{'lonDocRoot'}/) {
$bgimg=~s/$Apache::lonnet::perlvar{'lonDocRoot'}//;
} elsif ($bgimg =~ m:^/home/.*/public_html:) {
$bgimg =~ s:^/home/(.*)/public_html:/~$1:;
}
$bgimg="http://".$ENV{'SERVER_NAME'}.$bgimg;
}
my $code = &Apache::lonxml::get_param('code',$parstack,$safeeval);
my $codebase = &Apache::lonxml::get_param('codebase',$parstack,$safeeval);
my $w= &Apache::lonxml::get_param('width',$parstack,$safeeval);
my $h= &Apache::lonxml::get_param('height',$parstack,$safeeval);
my $texwidth= &Apache::lonxml::get_param('texwidth',$parstack,$safeeval);
if (!$code) { $code='GLabel.class'; }
if (!$codebase) { $codebase='/res/adm/includes/'; }
$Apache::randomlabel::tlabel_cnt=0;
$Apache::randomlabel::ilabel_cnt=0;
if ($target eq 'web') {
$result.="