--- loncom/interface/Attic/lonspreadsheet.pm 2001/12/27 19:37:46 1.77 +++ loncom/interface/Attic/lonspreadsheet.pm 2002/01/14 16:32:38 1.78 @@ -8,6 +8,7 @@ # 03/19,03/20,03/21,03/27,04/05,04/09, # 07/09,07/14,07/21,09/01,09/10,9/11,9/12,9/13,9/14,9/17, # 10/16,10/17,10/20,11/05,11/28,12/27 Gerd Kortemeyer +# 01/14/02 Matthew package Apache::lonspreadsheet; @@ -142,16 +143,16 @@ sub mask { } else { if (length($ld)!=length($ud)) { $num.='('; - map { + foreach ($ld=~m/\d/g) { $num.='['.$_.'-9]'; - } ($ld=~m/\d/g); + } if (length($ud)-length($ld)>1) { $num.='|\d{'.(length($ld)+1).','.(length($ud)-1).'}'; } $num.='|'; - map { + foreach ($ud=~m/\d/g) { $num.='[0-'.$_.']'; - } ($ud=~m/\d/g); + } $num.=')'; } else { my @lda=($ld=~m/\d/g); @@ -191,10 +192,7 @@ sub mask { sub NUM { my $mask=mask(@_); - my $num=0; - map { - $num++; - } grep /$mask/,keys %v; + my $num= $#{@{grep(/$mask/,keys(%v))}}+1; return $num; } @@ -202,11 +200,11 @@ sub BIN { my ($low,$high,$lower,$upper)=@_; my $mask=mask($lower,$upper); my $num=0; - map { + foreach (grep /$mask/,keys(%v)) { if (($v{$_}>=$low) && ($v{$_}<=$high)) { $num++; } - } grep /$mask/,keys %v; + } return $num; } @@ -214,19 +212,19 @@ sub BIN { sub SUM { my $mask=mask(@_); my $sum=0; - map { + foreach (grep /$mask/,keys(%v)) { $sum+=$v{$_}; - } grep /$mask/,keys %v; + } return $sum; } sub MEAN { my $mask=mask(@_); my $sum=0; my $num=0; - map { + foreach (grep /$mask/,keys(%v)) { $sum+=$v{$_}; $num++; - } grep /$mask/,keys %v; + } if ($num) { return $sum/$num; } else { @@ -237,45 +235,45 @@ sub MEAN { sub STDDEV { my $mask=mask(@_); my $sum=0; my $num=0; - map { + foreach (grep /$mask/,keys(%v)) { $sum+=$v{$_}; $num++; - } grep /$mask/,keys %v; + } unless ($num>1) { return undef; } my $mean=$sum/$num; $sum=0; - map { + foreach (grep /$mask/,keys(%v)) { $sum+=($v{$_}-$mean)**2; - } grep /$mask/,keys %v; + } return sqrt($sum/($num-1)); } sub PROD { my $mask=mask(@_); my $prod=1; - map { + foreach (grep /$mask/,keys(%v)) { $prod*=$v{$_}; - } grep /$mask/,keys %v; + } return $prod; } sub MAX { my $mask=mask(@_); my $max='-'; - map { + foreach (grep /$mask/,keys(%v)) { unless ($max) { $max=$v{$_}; } if (($v{$_}>$max) || ($max eq '-')) { $max=$v{$_}; } - } grep /$mask/,keys %v; + } return $max; } sub MIN { my $mask=mask(@_); my $min='-'; - map { + foreach (grep /$mask/,keys(%v)) { unless ($max) { $max=$v{$_}; } if (($v{$_}<$min) || ($min eq '-')) { $min=$v{$_}; } - } grep /$mask/,keys %v; + } return $min; } @@ -283,9 +281,9 @@ sub SUMMAX { my ($num,$lower,$upper)=@_; my $mask=mask($lower,$upper); my @inside=(); - map { + foreach (grep /$mask/,keys(%v)) { $inside[$#inside+1]=$v{$_}; - } grep /$mask/,keys %v; + } @inside=sort(@inside); my $sum=0; my $i; for ($i=$#inside;(($i>$#inside-$num) && ($i>=0));$i--) { @@ -298,9 +296,9 @@ sub SUMMIN { my ($num,$lower,$upper)=@_; my $mask=mask($lower,$upper); my @inside=(); - map { + foreach (grep /$mask/,keys(%v)) { $inside[$#inside+1]=$v{$_}; - } grep /$mask/,keys %v; + } @inside=sort(@inside); my $sum=0; my $i; for ($i=0;(($i<$num) && ($i<=$#inside));$i++) { @@ -316,25 +314,25 @@ sub expandnamed { my @vars=split(/\W+/,$formula); my %values=(); undef %values; - map { + foreach ( @vars ) { my $varname=$_; if ($varname=~/\D/) { $formula=~s/$varname/'$c{\''.$varname.'\'}'/ge; $varname=~s/$var/\(\\w\+\)/g; - map { + foreach (keys(%c)) { if ($_=~/$varname/) { $values{$1}=1; } - } keys %c; + } } - } @vars; + } if ($func eq 'EXPANDSUM') { my $result=''; - map { + foreach (keys(%values)) { my $thissum=$formula; $thissum=~s/$var/$_/g; $result.=$thissum.'+'; - } keys %values; + } $result=~s/\+$//; return $result; } else { @@ -353,11 +351,11 @@ sub sett { } else { $pattern='[A-Z]'; } - map { + foreach (keys(%f)) { if ($_=~/template\_(\w)/) { my $col=$1; unless ($col=~/^$pattern/) { - map { + foreach (keys(%f)) { if ($_=~/A(\d+)/) { my $trow=$1; if ($trow) { @@ -369,11 +367,11 @@ sub sett { $t{$lb}=~s/(^|[^\"\'])\[([^\]]+)\]/$1.&expandnamed($2)/ge; } } - } keys %f; + } } } - } keys %f; - map { + } + foreach (keys(%f)) { if (($f{$_}) && ($_!~/template\_/)) { my $matches=($_=~/^$pattern(\d+)/); if (($matches) && ($1)) { @@ -387,7 +385,7 @@ sub sett { $t{$_}=~s/(^|[^\"\'])\[([^\]]+)\]/$1.&expandnamed($2)/ge; } } - } keys %f; + } $t{'A0'}=$f{'A0'}; $t{'A0'}=~s/\.\.+/\,/g; $t{'A0'}=~s/(^|[^\"\'])([A-Za-z]\d+)/$1\$v\{\'$2\'\}/g; @@ -401,7 +399,7 @@ sub calc { my $depth=0; while ($notfinished) { $notfinished=0; - map { + foreach (keys(%t)) { my $old=$v{$_}; $v{$_}=eval($t{$_}); if ($@) { @@ -409,7 +407,7 @@ sub calc { return $@; } if ($v{$_} ne $old) { $notfinished=1; } - } keys %t; + } $depth++; if ($depth>100) { %v=(); @@ -422,14 +420,14 @@ sub calc { sub templaterow { my @cols=(); $cols[0]='Template'; - map { + foreach ('A','B','C','D','E','F','G','H','I','J','K','L','M', + 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z', + 'a','b','c','d','e','f','g','h','i','j','k','l','m', + 'n','o','p','q','r','s','t','u','v','w','x','y','z') { my $fm=$f{'template_'.$_}; $fm=~s/[\'\"]/\&\#34;/g; $cols[$#cols+1]="'template_$_','$fm'".'___eq___'.$fm; - } ('A','B','C','D','E','F','G','H','I','J','K','L','M', - 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z', - 'a','b','c','d','e','f','g','h','i','j','k','l','m', - 'n','o','p','q','r','s','t','u','v','w','x','y','z'); + } return @cols; } @@ -441,25 +439,25 @@ sub outrowassess { $cols[0]=$rl{$usy}.'
'. ''; } else { $cols[0]='Export'; } - map { + foreach ('A','B','C','D','E','F','G','H','I','J','K','L','M', + 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z', + 'a','b','c','d','e','f','g','h','i','j','k','l','m', + 'n','o','p','q','r','s','t','u','v','w','x','y','z') { my $fm=$f{$_.$n}; $fm=~s/[\'\"]/\&\#34;/g; $cols[$#cols+1]="'$_$n','$fm'".'___eq___'.$v{$_.$n}; - } ('A','B','C','D','E','F','G','H','I','J','K','L','M', - 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z', - 'a','b','c','d','e','f','g','h','i','j','k','l','m', - 'n','o','p','q','r','s','t','u','v','w','x','y','z'); + } return @cols; } @@ -471,23 +469,23 @@ sub outrow { } else { $cols[0]='Export'; } - map { + foreach ('A','B','C','D','E','F','G','H','I','J','K','L','M', + 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z', + 'a','b','c','d','e','f','g','h','i','j','k','l','m', + 'n','o','p','q','r','s','t','u','v','w','x','y','z') { my $fm=$f{$_.$n}; $fm=~s/[\'\"]/\&\#34;/g; $cols[$#cols+1]="'$_$n','$fm'".'___eq___'.$v{$_.$n}; - } ('A','B','C','D','E','F','G','H','I','J','K','L','M', - 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z', - 'a','b','c','d','e','f','g','h','i','j','k','l','m', - 'n','o','p','q','r','s','t','u','v','w','x','y','z'); + } return @cols; } sub exportrowa { my @exportarray=(); - map { + foreach ('A','B','C','D','E','F','G','H','I','J','K','L','M', + 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z') { $exportarray[$#exportarray+1]=$v{$_.'0'}; - } ('A','B','C','D','E','F','G','H','I','J','K','L','M', - 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); + } return @exportarray; } @@ -698,7 +696,7 @@ sub rown { $maxred=26; } if ($n eq '-') { $proc='&templaterow'; $n=-1; $dataflag=1; } - map { + foreach ($safeeval->reval($proc.'('.$n.')')) { my $bgcolor=$defaultbg.((($showf-1)/5==int(($showf-1)/5))?'99':'DD'); my ($fm,$vl)=split(/\_\_\_eq\_\_\_/,$_); if ((($vl ne '') || ($vl eq '0')) && @@ -721,7 +719,7 @@ sub rown { $rowdata.=',"'.$vl.'"'; } $showf++; - } $safeeval->reval($proc.'('.$n.')'); + } # End of foreach($safeval...) if ($ENV{'form.showall'} || ($dataflag)) { return $rowdata.($ENV{'form.showcsv'}?'':''); } else { @@ -756,7 +754,10 @@ sub outsheet { 'Calculations'; my $showf=0; - map { + foreach ('A','B','C','D','E','F','G','H','I','J','K','L','M', + 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z', + 'a','b','c','d','e','f','g','h','i','j','k','l','m', + 'n','o','p','q','r','s','t','u','v','w','x','y','z') { $showf++; if ($showf<=$maxred) { $tabledata.=''; @@ -764,10 +765,7 @@ sub outsheet { $tabledata.=''; } $tabledata.="$_"; - } ('A','B','C','D','E','F','G','H','I','J','K','L','M', - 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z', - 'a','b','c','d','e','f','g','h','i','j','k','l','m', - 'n','o','p','q','r','s','t','u','v','w','x','y','z'); + } $tabledata.=''.&rown($safeeval,'-').&rown($safeeval,0); } else { $tabledata='
'; }
 
@@ -799,12 +797,12 @@ sub outsheet {
 	$r->print("\n
\n"); $r->rflush(); $r->print(''); - map { + foreach ('A','B','C','D','E','F','G','H','I','J','K','L','M', + 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z', + 'a','b','c','d','e','f','g','h','i','j','k','l','m', + 'n','o','p','q','r','s','t','u','v','w','x','y','z') { $r->print(''); - } ('A','B','C','D','E','F','G','H','I','J','K','L','M', - 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z', - 'a','b','c','d','e','f','g','h','i','j','k','l','m', - 'n','o','p','q','r','s','t','u','v','w','x','y','z'); + } $r->print(''); } $n++; @@ -829,10 +827,10 @@ sub othersheets { my $result=&Apache::lonnet::reply('dump:'.$cdom.':'.$cnum.':'. $stype.'_spreadsheets',$chome); if ($result!~/^error\:/) { - map { + foreach (split(/\&/,$result)) { $alternatives[$#alternatives+1]= &Apache::lonnet::unescape((split(/\=/,$_))[0]); - } split(/\&/,$result); + } } return @alternatives; } @@ -909,11 +907,11 @@ sub readsheet { unless ($reply=~/^error\:/) { $sheet=$reply; } - map { + foreach (split(/\&/,$sheet)) { my ($name,$value)=split(/\=/,$_); $f{&Apache::lonnet::unescape($name)}= &Apache::lonnet::unescape($value); - } split(/\&/,$sheet); + } } # --------------------------------------------------------------- Cache and set $spreadsheets{$cnum.'_'.$cdom.'_'.$stype.'_'.$fn}=join('___;___',%f); @@ -959,12 +957,12 @@ sub writesheet { $spreadsheets{$cnum.'_'.$cdom.'_'.$stype.'_'.$fn}=join('___;___',%f); # ----------------------------------------------------------------- Write sheet my $sheetdata=''; - map { + foreach (keys(%f)) { unless ($f{$_} eq 'import') { $sheetdata.=&Apache::lonnet::escape($_).'='. &Apache::lonnet::escape($f{$_}).'&'; } - } keys %f; + } $sheetdata=~s/\&$//; my $reply=&Apache::lonnet::reply('put:'.$cdom.':'.$cnum.':'.$fn.':'. $sheetdata,$chome); @@ -1145,7 +1143,7 @@ sub updateclasssheet { my %currentlist=(); my $now=time; unless ($classlst=~/^error\:/) { - map { + foreach (split(/\&/,$classlst)) { my ($name,$value)=split(/\=/,$_); my ($end,$start)=split(/\:/,&Apache::lonnet::unescape($value)); my $active=1; @@ -1172,24 +1170,24 @@ sub updateclasssheet { $rowlabel=''. $ssec.' '.$reply{$sname}.'
'; - map { + foreach ( split(/\&/,$reply)) { $rowlabel.=&Apache::lonnet::unescape($_).' '; - } split(/\&/,$reply); + } $rowlabel.='
'; } else { $rowlabel=$ssec.'","'.$reply{$sname}.'"'; my $ncount=0; - map { + foreach (split(/\&/,$reply)) { $rowlabel.=',"'.&Apache::lonnet::unescape($_).'"'; $ncount++; - } split(/\&/,$reply); + } unless ($ncount==4) { $rowlabel.=',""'; } $rowlabel=~s/\"$//; } } $currentlist{&Apache::lonnet::unescape($name)}=$rowlabel; } - } split(/\&/,$classlst); + } # end of foreach (split(/\&/,$classlst)) # # -------------------- Find discrepancies between the course row table and this # @@ -1200,7 +1198,7 @@ sub updateclasssheet { my %existing=(); # ----------------------------------------------------------- Now obsolete rows - map { + foreach (keys(%f)) { if ($_=~/^A(\d+)/) { $maxrow=($1>$maxrow)?$1:$maxrow; $existing{$f{$_}}=1; @@ -1209,17 +1207,17 @@ sub updateclasssheet { $changed=1; } } - } keys %f; + } # -------------------------------------------------------- New and unknown keys - map { + foreach (sort keys(%currentlist)) { unless ($existing{$_}) { $changed=1; $maxrow++; $f{'A'.$maxrow}=$_; } - } sort keys %currentlist; + } if ($changed) { &setformulas($safeeval,%f); } @@ -1274,7 +1272,7 @@ sub updatestudentassesssheet { '">Discussion' ); - map { + foreach (keys(%bighash)) { if ($_=~/^src\_(\d+)\.(\d+)$/) { my $mapid=$1; my $resid=$2; @@ -1289,7 +1287,8 @@ sub updatestudentassesssheet { ''. $bighash{'title_'.$id}.''; if ($stype eq 'assesscalc') { - map { + foreach (split(/\,/, + &Apache::lonnet::metadata($srcf,'keys'))) { if (($_=~/^stores\_(.*)/) || ($_=~/^parameter\_(.*)/)) { my $key=$_; my $display= @@ -1301,11 +1300,11 @@ sub updatestudentassesssheet { $display.='
'.$key; $allkeys{$key}=$display; } - } split(/\,/,&Apache::lonnet::metadata($srcf,'keys')); + } # end of foreach } } } - } keys %bighash; + } # end of foreach (keys(%bighash)) untie(%bighash); # @@ -1337,7 +1336,7 @@ sub updatestudentassesssheet { my %existing=(); # ----------------------------------------------------------- Now obsolete rows - map { + foreach (keys(%f)) { if ($_=~/^A(\d+)/) { $maxrow=($1>$maxrow)?$1:$maxrow; my ($usy,$ufn)=split(/\_\_\&\&\&\_\_/,$f{$_}); @@ -1350,17 +1349,17 @@ sub updatestudentassesssheet { =~s/assesscalc\?usymb\=/assesscalc\?ufn\=$ufn\&usymb\=/; } } - } keys %f; + } # -------------------------------------------------------- New and unknown keys - map { + foreach (keys(%current)) { unless ($existing{$_}) { $changed=1; $maxrow++; $f{'A'.$maxrow}=$_; } - } keys %current; + } if ($changed) { &setformulas($safeeval,%f); } @@ -1385,15 +1384,15 @@ sub loadstudent { &getcid($safeeval), &getuhome($safeeval)); unless ($reply=~/^error\:/) { - map { + foreach ( split(/\&/,$reply)) { my ($name,$value)=split(/\=/,$_); $cachedstores{&Apache::lonnet::unescape($name)}= &Apache::lonnet::unescape($value); - } split(/\&/,$reply); + } } } my @assessdata=(); - map { + foreach (keys(%f)) { if ($_=~/^A(\d+)/) { my $row=$1; unless (($f{$_}=~/^\!/) || ($row==0)) { @@ -1402,7 +1401,8 @@ sub loadstudent { &getudom($safeeval), 'assesscalc',$usy,$ufn); my $index=0; - map { + foreach ('A','B','C','D','E','F','G','H','I','J','K','L','M', + 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z') { if ($assessdata[$index]) { my $col=$_; if ($assessdata[$index]=~/\D/) { @@ -1415,11 +1415,10 @@ sub loadstudent { } } $index++; - } ('A','B','C','D','E','F','G','H','I','J','K','L','M', - 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); + } } } - } keys %f; + } $cachedassess=''; undef %cachedstores; &setformulas($safeeval,%f); @@ -1433,11 +1432,11 @@ sub loadcourse { my %c=(); my %f=&getformulas($safeeval); my $total=0; - map { + foreach (keys(%f)) { if ($_=~/^A(\d+)/) { unless ($f{$_}=~/^\!/) { $total++; } } - } keys %f; + } my $now=0; my $since=time; $r->print(< ENDPOP $r->rflush(); - map { + foreach (keys(%f)) { if ($_=~/^A(\d+)/) { my $row=$1; unless (($f{$_}=~/^\!/) || ($row==0)) { @@ -1466,7 +1465,8 @@ ENDPOP $r->rflush(); my $index=0; - map { + foreach ('A','B','C','D','E','F','G','H','I','J','K','L','M', + 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z') { if ($studentdata[$index]) { my $col=$_; if ($studentdata[$index]=~/\D/) { @@ -1479,11 +1479,10 @@ ENDPOP } } $index++; - } ('A','B','C','D','E','F','G','H','I','J','K','L','M', - 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); + } } } - } keys %f; + } &setformulas($safeeval,%f); &setconstants($safeeval,%c); $r->print(''); @@ -1519,9 +1518,9 @@ sub loadassessment { my $version=$cachedstores{'version:'.$symb}; my $scope; for ($scope=1;$scope<=$version;$scope++) { - map { + foreach (split(/\:/,$cachedstores{$scope.':keys:'.$symb})) { $returnhash{$_}=$cachedstores{$scope.':'.$symb.':'.$_}; - } split(/\:/,$cachedstores{$scope.':keys:'.$symb}); + } } } else { @@ -1533,16 +1532,16 @@ sub loadassessment { "restore:$udom:$uname:". &Apache::lonnet::escape($namespace).":". &Apache::lonnet::escape($symb),$uhome); - map { + foreach (split(/\&/,$answer)) { my ($name,$value)=split(/\=/,$_); $returnhash{&Apache::lonnet::unescape($name)}= &Apache::lonnet::unescape($value); - } split(/\&/,$answer); + } my $version; for ($version=1;$version<=$returnhash{'version'};$version++) { - map { + foreach (split(/\:/,$returnhash{$version.':keys'})) { $returnhash{$_}=$returnhash{$version.':'.$_}; - } split(/\:/,$returnhash{$version.':keys'}); + } } } # ----------------------------- returnhash now has all stores for this resource @@ -1551,13 +1550,13 @@ sub loadassessment { my @oldkeys=keys %returnhash; - map { + foreach (@oldkeys) { my $name=$_; my $value=$returnhash{$_}; delete $returnhash{$_}; $name=~s/\_/\./g; $returnhash{$name}=$value; - } @oldkeys; + } # ---------------------------- initialize coursedata and userdata for this user undef %courseopt; @@ -1576,11 +1575,11 @@ sub loadassessment { $courserdatas{$cid.'.last_cache'}=time; } } - map { + foreach (split(/\&/,$courserdatas{$cid})) { my ($name,$value)=split(/\=/,$_); $courseopt{$userprefix.&Apache::lonnet::unescape($name)}= &Apache::lonnet::unescape($value); - } split(/\&/,$courserdatas{$cid}); + } # --------------------------------------------------- Get userdata (if present) unless ((time-$userrdatas{$uname.'___'.$udom.'.last_cache'})<240) { @@ -1591,11 +1590,11 @@ sub loadassessment { $userrdatas{$uname.'___'.$udom.'.last_cache'}=time; } } - map { + foreach (split(/\&/,$userrdatas{$uname.'___'.$udom})) { my ($name,$value)=split(/\=/,$_); $useropt{$userprefix.&Apache::lonnet::unescape($name)}= &Apache::lonnet::unescape($value); - } split(/\&/,$userrdatas{$uname.'___'.$udom}); + } } # ----------------- now courseopt, useropt initialized for this user and course # (used by parmval) @@ -1606,9 +1605,9 @@ sub loadassessment { my %thisassess=(); my ($symap,$syid,$srcf)=split(/\_\_\_/,$symb); - map { + foreach (split(/\,/,&Apache::lonnet::metadata($srcf,'keys'))) { $thisassess{$_}=1; - } split(/\,/,&Apache::lonnet::metadata($srcf,'keys')); + } # # Load parameters # @@ -1617,7 +1616,7 @@ sub loadassessment { if (tie(%parmhash,'GDBM_File', &getcfn($safeeval).'_parms.db',&GDBM_READER,0640)) { my %f=&getformulas($safeeval); - map { + foreach (keys(%f)) { if ($_=~/^A/) { unless ($f{$_}=~/^\!/) { if ($f{$_}=~/^parameter/) { @@ -1636,7 +1635,7 @@ sub loadassessment { } } } - } keys %f; + } untie(%parmhash); } &setconstants($safeeval,%c); @@ -1658,11 +1657,11 @@ sub hiddenfield { sub selectbox { my ($title,$name,$value,%options)=@_; my $selout="\n

$title:
".''; } @@ -1750,23 +1749,23 @@ sub exportsheet { my $found=''; if ($oldsheets{$key}) { - map { + foreach (split(/\_\_\_\&\_\_\_/,$oldsheets{$key})) { my ($name,$value)=split(/\_\_\_\=\_\_\_/,$_); if ($name eq $fn) { $found=$value; } - } split(/\_\_\_\&\_\_\_/,$oldsheets{$key}); + } } unless ($found) { &cachedssheets($uname,$udom,&Apache::lonnet::homeserver($uname,$udom)); if ($oldsheets{$key}) { - map { + foreach (split(/\_\_\_\&\_\_\_/,$oldsheets{$key})) { my ($name,$value)=split(/\_\_\_\=\_\_\_/,$_); if ($name eq $fn) { $found=$value; } - } split(/\_\_\_\&\_\_\_/,$oldsheets{$key}); + } } } # @@ -1819,18 +1818,18 @@ sub exportsheet { } my %currentlystored=(); unless ($current=~/^error\:/) { - map { + foreach (split(/\_\_\_\&\_\_\_/,&Apache::lonnet::unescape($current))) { my ($name,$value)=split(/\_\_\_\=\_\_\_/,$_); $currentlystored{$name}=$value; - } split(/\_\_\_\&\_\_\_/,&Apache::lonnet::unescape($current)); + } } $currentlystored{$fn}=join('___;___',@exportarr); my $newstore=''; - map { + foreach (keys(%currentlystored)) { if ($newstore) { $newstore.='___&___'; } $newstore.=$_.'___=___'.$currentlystored{$_}; - } keys %currentlystored; + } my $now=time; if ($stype eq 'studentcalc') { &Apache::lonnet::reply('put:'. @@ -1869,11 +1868,11 @@ sub expirationdates { ':nohist_expirationdates', $ENV{'course.'.$cid.'.home'}); unless ($reply=~/^error\:/) { - map { + foreach (split(/\&/,$reply)) { my ($name,$value)=split(/\=/,$_); $expiredates{&Apache::lonnet::unescape($name)} =&Apache::lonnet::unescape($value); - } split(/\&/,$reply); + } } } @@ -1890,11 +1889,11 @@ sub cachedcsheets { ':nohist_calculatedsheets', $ENV{'course.'.$cid.'.home'}); unless ($reply=~/^error\:/) { - map { + foreach ( split(/\&/,$reply)) { my ($name,$value)=split(/\=/,$_); $oldsheets{&Apache::lonnet::unescape($name)} =&Apache::lonnet::unescape($value); - } split(/\&/,$reply); + } } } @@ -1912,11 +1911,11 @@ sub cachedssheets { $ENV{'request.course.id'}, $shome); unless ($reply=~/^error\:/) { - map { + foreach ( split(/\&/,$reply)) { my ($name,$value)=split(/\=/,$_); $oldsheets{&Apache::lonnet::unescape($name)} =&Apache::lonnet::unescape($value); - } split(/\&/,$reply); + } } $loadedcaches{$sname.'_'.$sdom}=1; } @@ -1954,7 +1953,7 @@ $tmpdir=$r->dir_config('lonDaemons').'/t # --------------------------- Get query string for limited number of parameters - map { + foreach (split(/&/,$ENV{'QUERY_STRING'})) { my ($name, $value) = split(/=/,$_); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; @@ -1964,7 +1963,7 @@ $tmpdir=$r->dir_config('lonDaemons').'/t $ENV{'form.'.$name}=$value; } } - } (split(/&/,$ENV{'QUERY_STRING'})); + } if (($ENV{'form.usymb'}=~/^\_(\w+)/) && (!$ENV{'form.ufn'})) { $ENV{'form.ufn'}='default_'.$1; @@ -2140,13 +2139,13 @@ ENDSCRIPT $r->print('

'. '

'); if (&gettype($asheet) eq 'studentcalc') { &setothersheets($asheet,&othersheets($asheet,'assesscalc'));

 '.$what.''.$_.'