--- loncom/interface/lonparmset.pm 2001/12/06 22:39:45 1.37 +++ loncom/interface/lonparmset.pm 2001/12/17 14:21:49 1.38 @@ -5,14 +5,19 @@ # # (TeX Content Handler # +# YEAR=2000 # 05/29/00,05/30,10/11 Gerd Kortemeyer) # # 10/11,10/12,10/16 Gerd Kortemeyer) # # 11/20,11/21,11/22,11/23,11/24,11/25,11/27,11/28, # 12/08,12/12, +# YEAR=2001 # 16/01/01,02/08,03/20,03/23,03/24,03/26,05/09, # 07/05,07/06,08/08,08/09,09/01,09/21 Gerd Kortemeyer +# 12/17 Scott Harrison +# +### package Apache::lonparmset; @@ -250,7 +255,7 @@ sub assessparms { undef %allkeys; undef %allmaps; undef %defp; - map { + foreach (keys %bighash) { if ($_=~/^src\_(\d+)\.(\d+)$/) { my $mapid=$1; my $resid=$2; @@ -260,7 +265,8 @@ sub assessparms { $ids[$#ids+1]=$id; $typep{$id}=$1; $keyp{$id}=''; - map { + foreach (split(/\,/, + &Apache::lonnet::metadata($srcf,'keys'))) { if ($_=~/^parameter\_(.*)/) { my $key=$_; my $allkey=$1; @@ -282,8 +288,7 @@ sub assessparms { $keyp{$id}=$key; } } - } split(/\,/, - &Apache::lonnet::metadata($srcf,'keys')); + } $mapp{$id}= &Apache::lonnet::declutter($bighash{'map_id_'.$mapid}); $allmaps{$mapid}=$mapp{$id}; @@ -292,7 +297,7 @@ sub assessparms { &Apache::lonnet::declutter($srcf); } } - } keys %bighash; + } # ---------------------------------------------------------- Anything to store? if ($ENV{'form.pres_marker'}) { my ($sresid,$spnam,$snum)=split(/\&/,$ENV{'form.pres_marker'}); @@ -384,22 +389,22 @@ sub assessparms { $ENV{'course.'.$ENV{'request.course.id'}.'.num'}.':resourcedata', $ENV{'course.'.$ENV{'request.course.id'}.'.home'}); if ($reply!~/^error\:/) { - map { + foreach (split(/\&/,$reply)) { my ($name,$value)=split(/\=/,$_); $courseopt{&Apache::lonnet::unescape($name)}= &Apache::lonnet::unescape($value); - } split(/\&/,$reply); + } } # --------------------------------------------------- Get userdata (if present) if ($uname) { my $reply= &Apache::lonnet::reply('dump:'.$udom.':'.$uname.':resourcedata',$uhome); if ($reply!~/^error\:/) { - map { + foreach (split(/\&/,$reply)) { my ($name,$value)=split(/\=/,$_); $useropt{&Apache::lonnet::unescape($name)}= &Apache::lonnet::unescape($value); - } split(/\&/,$reply); + } } } @@ -492,37 +497,37 @@ ENDHEAD $r->print(''); } - map { + foreach ('tolerance','date_default','date_start','date_end', + 'date_interval','int','float','string'); { $r->print(''); - } ('tolerance','date_default','date_start','date_end','date_interval', - 'int','float','string'); + } $r->print('

'.$message.'

Sort list by'); $r->print('
Select Enclosing Map
Select Parameter

' ); @@ -566,7 +571,7 @@ ENDTABLEHEADFOUR $r->print(''); my $defbgone=''; my $defbgtwo=''; - map { + foreach (@ids) { my $rid=$_; my ($inmapid)=($rid=~/\.(\d+)$/); if (($pschp eq 'all') || ($allmaps{$pschp} eq $mapp{$rid}) || @@ -593,7 +598,7 @@ ENDTABLEHEADFOUR my %default=(); my $uri=&Apache::lonnet::declutter($bighash{'src_'.$rid}); - map { + foreach (split(/\,/,$keyp{$rid})) { if (($_ eq $catmarker) || ($pscat eq 'all')) { $part{$_}=&Apache::lonnet::metadata($uri,$_.'.part'); $name{$_}=&Apache::lonnet::metadata($uri,$_.'.name'); @@ -604,7 +609,7 @@ ENDTABLEHEADFOUR $type{$_}=&Apache::lonnet::metadata($uri,$_.'.type'); $thistitle=&Apache::lonnet::metadata($uri,$_.'.title'); } - } split(/\,/,$keyp{$rid}); + } my $totalparms=scalar keys %name; if ($totalparms>0) { @@ -623,7 +628,7 @@ ENDTABLEHEADFOUR $r->print(''. join(' / ',split(/\//,$mapp{$rid})).''); - map { + foreach (sort keys %name) { my $result=&parmval($part{$_}.'.'.$name{$_},$rid,$default{$_}); unless ($firstrow) { $r->print(''); @@ -696,11 +701,11 @@ ENDTABLEHEADFOUR ''.$sessionval.' '. ''); $r->print(""); - } sort keys %name; + } } # -------------------------------------------------- End entry for one resource } - } @ids; + } $r->print(''); } $r->print(''); @@ -713,7 +718,7 @@ sub crsenv { my $r=shift; my $setoutput=''; # -------------------------------------------------- Go through list of changes - map { + foreach (keys %ENV) { if ($_=~/^form\.(.+)\_setparmval$/) { my $name=$1; my $value=$ENV{'form.'.$name.'_value'}; @@ -751,7 +756,7 @@ sub crsenv { '
'; } } - } keys %ENV; + } # -------------------------------------------------------- Get parameters again my $rep=&Apache::lonnet::reply ('dump:'.$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}. @@ -774,21 +779,21 @@ sub crsenv { '(user:domain,user:domain,...)' ); - map { + foreach (split(/\&/,$rep)) { my ($name,$value)=split(/\=/,$_); $name=&Apache::lonnet::unescape($name); $values{$name}=&Apache::lonnet::unescape($value); unless ($descriptions{$name}) { $descriptions{$name}=$name; } - } split(/\&/,$rep); - map { + } + foreach (sort keys %descriptions) { $output.=''.$descriptions{$_}.''; - } sort keys %descriptions; + } $output.='Create New Environment Variable
'. ''. ''. @@ -853,5 +858,73 @@ sub handler { __END__ +=head1 NAME + +Apache::lonparmset - Handler to set parameters for assessments + +=head1 SYNOPSIS + +Invoked by /etc/httpd/conf/srm.conf: + + + PerlAccessHandler Apache::lonacc + SetHandler perl-script + PerlHandler Apache::lonparmset + ErrorDocument 403 /adm/login + ErrorDocument 406 /adm/roles + ErrorDocument 500 /adm/errorhandler + + +=head1 INTRODUCTION + +This module sets assessment parameters. + +This is part of the LearningOnline Network with CAPA project +described at http://www.lon-capa.org. + +=head1 HANDLER SUBROUTINE + +This routine is called by Apache and mod_perl. + +=over 4 + +=item * + +need to be in course + +=item * + +bring up assessment screen or course environment + +=back + +=head1 OTHER SUBROUTINES + +=over 4 + +=item * + +parmval() : figure out a cascading parameter + +=item * + +valout() : output for value + +=item * + +plink() : produces link anchor + +=item * + +assessparms() : show assess data and parameters + +=item * + +crsenv() : for the course environment + +=back + +=cut +