version 1.37, 2000/10/06 21:00:05
|
version 1.42, 2000/10/10 18:46:53
|
Line 28
|
Line 28
|
# restore : returns hash for this url |
# restore : returns hash for this url |
# eget(namesp,array) : returns hash with keys from array filled in from namesp |
# eget(namesp,array) : returns hash with keys from array filled in from namesp |
# get(namesp,array) : returns hash with keys from array filled in from namesp |
# get(namesp,array) : returns hash with keys from array filled in from namesp |
# del(namesp,array) : deletes keys out of arry from namesp |
# del(namesp,array) : deletes keys out of array from namesp |
# put(namesp,hash) : stores hash in namesp |
# put(namesp,hash) : stores hash in namesp |
# dump(namesp) : dumps the complete namespace into a hash |
# dump(namesp) : dumps the complete namespace into a hash |
# ssi(url,hash) : does a complete request cycle on url to localhost, posts |
# ssi(url,hash) : does a complete request cycle on url to localhost, posts |
Line 36
|
Line 36
|
# coursedescription(id) : returns and caches course description for id |
# coursedescription(id) : returns and caches course description for id |
# repcopy(filename) : replicate file |
# repcopy(filename) : replicate file |
# dirlist(url) : gets a directory listing |
# dirlist(url) : gets a directory listing |
|
# directcondval(index) : reading condition value of single condition from |
|
# state string |
# condval(index) : value of condition index based on state |
# condval(index) : value of condition index based on state |
# varval(name) : value of a variable |
# varval(name) : value of a variable |
# refreshstate() : refresh the state information string |
# refreshstate() : refresh the state information string |
# symblist(map,hash) : Updates symbolic storage links |
# symblist(map,hash) : Updates symbolic storage links |
|
# symbread(filename) : returns the data handle |
# rndseed() : returns a random seed |
# rndseed() : returns a random seed |
# getfile(filename) : returns the contents of filename, or a -1 if it can't |
# getfile(filename) : returns the contents of filename, or a -1 if it can't |
# be found, replicates and subscribes to the file |
# be found, replicates and subscribes to the file |
Line 59
|
Line 62
|
# 08/22,08/28,08/31,09/01,09/02,09/04,09/05,09/25,09/28,09/30 Gerd Kortemeyer |
# 08/22,08/28,08/31,09/01,09/02,09/04,09/05,09/25,09/28,09/30 Gerd Kortemeyer |
# 10/04 Gerd Kortemeyer |
# 10/04 Gerd Kortemeyer |
# 10/04 Guy Albertelli |
# 10/04 Guy Albertelli |
# 10/06 Gerd Kortemeyer |
# 10/06,10/09,10/10 Gerd Kortemeyer |
|
|
package Apache::lonnet; |
package Apache::lonnet; |
|
|
Line 487 sub coursedescription {
|
Line 490 sub coursedescription {
|
} split(/\&/,$rep); |
} split(/\&/,$rep); |
$returnhash{'url'}='/res/'.declutter($returnhash{'url'}); |
$returnhash{'url'}='/res/'.declutter($returnhash{'url'}); |
$returnhash{'fn'}=$perlvar{'lonDaemons'}.'/tmp/'. |
$returnhash{'fn'}=$perlvar{'lonDaemons'}.'/tmp/'. |
$ENV{'user.name.'}.'_'.$cdomain.'_'.$cnum; |
$ENV{'user.name'}.'_'.$cdomain.'_'.$cnum; |
put ('coursedescriptions',%cachehash); |
put ('coursedescriptions',%cachehash); |
return %returnhash; |
return %returnhash; |
} |
} |
Line 593 sub get {
|
Line 596 sub get {
|
$ENV{'user.home'}); |
$ENV{'user.home'}); |
my @pairs=split(/\&/,$rep); |
my @pairs=split(/\&/,$rep); |
my %returnhash=(); |
my %returnhash=(); |
|
my $i=0; |
map { |
map { |
my ($key,$value)=split(/=/,$_); |
$returnhash{$_}=unescape($pairs[$i]); |
$returnhash{unescape($key)}=unescape($value); |
$i++; |
} @pairs; |
} @storearr; |
return %returnhash; |
return %returnhash; |
} |
} |
|
|
Line 654 sub eget {
|
Line 658 sub eget {
|
$ENV{'user.home'}); |
$ENV{'user.home'}); |
my @pairs=split(/\&/,$rep); |
my @pairs=split(/\&/,$rep); |
my %returnhash=(); |
my %returnhash=(); |
|
my $i=0; |
map { |
map { |
my ($key,$value)=split(/=/,$_); |
$returnhash{$_}=unescape($pairs[$i]); |
$returnhash{unescape($key)}=unescape($value); |
$i++; |
} @pairs; |
} @storearr; |
return %returnhash; |
return %returnhash; |
} |
} |
|
|
Line 756 sub allowed {
|
Line 761 sub allowed {
|
# Restricted by state? |
# Restricted by state? |
|
|
if ($thisallowed=~/X/) { |
if ($thisallowed=~/X/) { |
if (&condval($uricond)>1) { |
if (&condval($uricond)) { |
return '2'; |
return '2'; |
} else { |
} else { |
return ''; |
return ''; |
Line 939 sub dirlist {
|
Line 944 sub dirlist {
|
|
|
# -------------------------------------------------------- Value of a Condition |
# -------------------------------------------------------- Value of a Condition |
|
|
|
sub directcondval { |
|
my $number=shift; |
|
if ($ENV{'user.state.'.$ENV{'request.course.id'}}) { |
|
return substr($ENV{'user.state.'.$ENV{'request.course.id'}},$number,1); |
|
} else { |
|
return 2; |
|
} |
|
} |
|
|
sub condval { |
sub condval { |
my $condidx=shift; |
my $condidx=shift; |
my $result=0; |
my $result=0; |
Line 959 sub condval {
|
Line 973 sub condval {
|
} elsif (($_ eq '&') || ($_ eq '|')) { |
} elsif (($_ eq '&') || ($_ eq '|')) { |
$operand=$_; |
$operand=$_; |
} else { |
} else { |
my $new= |
my $new=directcondval($_); |
substr($ENV{'user.state.'.$ENV{'request.course.id'}},$_,1); |
|
if ($operand eq '&') { |
if ($operand eq '&') { |
$result=$result>$new?$new:$result; |
$result=$result>$new?$new:$result; |
} else { |
} else { |
Line 1043 sub symbread {
|
Line 1056 sub symbread {
|
if ($ids) { |
if ($ids) { |
# ------------------------------------------------------------------- Has ID(s) |
# ------------------------------------------------------------------- Has ID(s) |
my @possibilities=split(/\,/,$ids); |
my @possibilities=split(/\,/,$ids); |
if ($#possibilities==1) { |
if ($#possibilities==0) { |
|
# ----------------------------------------------- There is only one possibility |
my ($mapid,$resid)=split(/\./,$ids); |
my ($mapid,$resid)=split(/\./,$ids); |
$syval=declutter($bighash{'map_id_'.$mapid}).'___'.$resid; |
$syval=declutter($bighash{'map_id_'.$mapid}).'___'.$resid; |
} else { |
} else { |
$syval=''; |
# ------------------------------------------ There is more than one possibility |
|
my $realpossible=0; |
|
map { |
|
my $file=$bighash{'src_'.$_}; |
|
if (&allowed('bre',$file)) { |
|
my ($mapid,$resid)=split(/\./,$_); |
|
if ($bighash{'map_type_'.$mapid} ne 'page') { |
|
$realpossible++; |
|
$syval=declutter($bighash{'map_id_'.$mapid}). |
|
'___'.$resid; |
|
} |
|
} |
|
} @possibilities; |
|
if ($realpossible!=1) { $syval=''; } |
} |
} |
} |
} |
untie(%bighash) |
untie(%bighash) |
} |
} |
} |
} |
return $syval.'___'.$thisfn; |
if ($syval) { return $syval.'___'.$thisfn; } |
} |
} |
return ''; |
return ''; |
} |
} |