version 1.73, 2000/11/28 02:48:25
|
version 1.79, 2000/12/12 23:43:05
|
Line 45
|
Line 45
|
# EXT(name) : value of a variable |
# EXT(name) : value of a variable |
# symblist(map,hash) : Updates symbolic storage links |
# symblist(map,hash) : Updates symbolic storage links |
# symbread([filename]) : returns the data handle (filename optional) |
# symbread([filename]) : returns the data handle (filename optional) |
# rndseed() : returns a random seed |
# rndseed() : returns a random seed |
|
# receipt() : returns a receipt to be given out to users |
# 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 |
# filelocation(dir,file) : returns a farily clean absolute reference to file |
# filelocation(dir,file) : returns a farily clean absolute reference to file |
Line 79
|
Line 80
|
# 10/04 Guy Albertelli |
# 10/04 Guy Albertelli |
# 10/06,10/09,10/10,10/11,10/14,10/20,10/23,10/25,10/26,10/27,10/28,10/29, |
# 10/06,10/09,10/10,10/11,10/14,10/20,10/23,10/25,10/26,10/27,10/28,10/29, |
# 10/30,10/31, |
# 10/30,10/31, |
# 11/2,11/14,11/15,11/16,11/20,11/21,11/22,11/25,11/27 Gerd Kortemeyer |
# 11/2,11/14,11/15,11/16,11/20,11/21,11/22,11/25,11/27, |
|
# 12/02,12/12 Gerd Kortemeyer |
|
|
package Apache::lonnet; |
package Apache::lonnet; |
|
|
Line 382 sub idget {
|
Line 384 sub idget {
|
$idlist=~tr/A-Z/a-z/; |
$idlist=~tr/A-Z/a-z/; |
my $reply=&reply("idget:$udom:".$idlist,$tryserver); |
my $reply=&reply("idget:$udom:".$idlist,$tryserver); |
my @answer=(); |
my @answer=(); |
if ($reply ne 'con_lost') { |
if (($reply ne 'con_lost') && ($reply!~/^error\:/)) { |
@answer=split(/\&/,$reply); |
@answer=split(/\&/,$reply); |
} ; |
} ; |
my $i; |
my $i; |
Line 631 sub restore {
|
Line 633 sub restore {
|
my ($name,$value)=split(/\=/,$_); |
my ($name,$value)=split(/\=/,$_); |
$returnhash{&unescape($name)}=&unescape($value); |
$returnhash{&unescape($name)}=&unescape($value); |
} split(/\&/,$answer); |
} split(/\&/,$answer); |
map { |
my $version; |
$returnhash{$_}=$returnhash{$returnhash{'version'}.':'.$_}; |
for ($version=1;$version<=$returnhash{'version'};$version++) { |
} split(/\:/,$returnhash{$returnhash{'version'}.':keys'}); |
map { |
|
$returnhash{$_}=$returnhash{$version.':'.$_}; |
|
} split(/\:/,$returnhash{$version.':keys'}); |
|
} |
return %returnhash; |
return %returnhash; |
} |
} |
|
|
Line 1149 sub fileembstyle {
|
Line 1154 sub fileembstyle {
|
|
|
# ------------------------------------------------------------ Description Text |
# ------------------------------------------------------------ Description Text |
|
|
sub filedecription { |
sub filedescription { |
my $ending=shift; |
my $ending=shift; |
return $fd{$ending}; |
return $fd{$ending}; |
} |
} |
Line 1421 sub EXT {
|
Line 1426 sub EXT {
|
my $reply=&reply('get:'. |
my $reply=&reply('get:'. |
$ENV{'course.'.$ENV{'request.course.id'}.$section.'.domain'}.':'. |
$ENV{'course.'.$ENV{'request.course.id'}.$section.'.domain'}.':'. |
$ENV{'course.'.$ENV{'request.course.id'}.$section.'.num'}. |
$ENV{'course.'.$ENV{'request.course.id'}.$section.'.num'}. |
':resourcedata:'. |
':resourcedata:'. |
escape($seclevelr).':'.escape($seclevelm).':'.escape($seclevel).':'. |
&escape($seclevelr).'&'.&escape($seclevelm).'&'.&escape($seclevel).'&'. |
escape($courselevelr).':'.escape($courselevelm).':'.escape($courselevel), |
&escape($courselevelr).'&'.&escape($courselevelm).'&'.&escape($courselevel), |
$ENV{'course.'.$ENV{'request.course.id'}.$section.'.home'}); |
$ENV{'course.'.$ENV{'request.course.id'}.$section.'.home'}); |
if ($reply!~/^error\:/) { |
if ($reply!~/^error\:/) { |
map { |
map { |
my ($name,$value)=split(/\=/,$_); |
if ($_) { return &unescape($_); } |
$resourcedata{unescape($name)}=unescape($value); |
} split(/\&/,$reply); |
} split(/\&/,$reply); |
|
|
|
if ($resourcedata{$seclevelr}) { return $resourcedata{$seclevelr}; } |
|
if ($resourcedata{$seclevelm}) { return $resourcedata{$seclevelm}; } |
|
if ($resourcedata{$seclevel}) { return $resourcedata{$seclevel}; } |
|
|
|
if ($resourcedata{$courselevelr}) { |
|
return $resourcedata{$courselevelr}; } |
|
if ($resourcedata{$courselevelm}) { |
|
return $resourcedata{$courselevelm}; } |
|
if ($resourcedata{$courselevel}) { return $resourcedata{$courselevel}; } |
|
|
|
} |
} |
|
|
# ------------------------------------------------------ third, check map parms |
# ------------------------------------------------------ third, check map parms |
Line 1456 sub EXT {
|
Line 1449 sub EXT {
|
|
|
# --------------------------------------------- last, look in resource metadata |
# --------------------------------------------- last, look in resource metadata |
|
|
|
$spacequalifierrest=~s/\./\_/; |
my $metadata=&metadata($ENV{'request.filename'},$spacequalifierrest); |
my $metadata=&metadata($ENV{'request.filename'},$spacequalifierrest); |
if ($metadata) { return $metadata; } |
if ($metadata) { return $metadata; } |
|
$metadata=&metadata($ENV{'request.filename'}, |
|
'parameter_'.$spacequalifierrest); |
|
if ($metadata) { return $metadata; } |
|
|
# ---------------------------------------------------- Any other user namespace |
# ---------------------------------------------------- Any other user namespace |
} elsif ($realm eq 'environment') { |
} elsif ($realm eq 'environment') { |
Line 1476 sub EXT {
|
Line 1473 sub EXT {
|
|
|
sub metadata { |
sub metadata { |
my ($uri,$what)=@_; |
my ($uri,$what)=@_; |
|
|
$uri=&declutter($uri); |
$uri=&declutter($uri); |
my $filename=$uri; |
my $filename=$uri; |
$uri=~s/\.meta$//; |
$uri=~s/\.meta$//; |
Line 1502 sub metadata {
|
Line 1500 sub metadata {
|
map { |
map { |
$metacache{$uri.':'.$unikey.'.'.$_}=$token->[2]->{$_}; |
$metacache{$uri.':'.$unikey.'.'.$_}=$token->[2]->{$_}; |
} @{$token->[3]}; |
} @{$token->[3]}; |
$metacache{$uri.':'.$unikey}=$parser->get_text('/'.$entry); |
unless ( |
|
$metacache{$uri.':'.$unikey}=$parser->get_text('/'.$entry) |
|
) { $metacache{$uri.':'.$unikey}= |
|
$metacache{$uri.':'.$unikey.'.default'}; |
|
} |
} |
} |
} |
} |
} |
} |
Line 1628 sub rndseed {
|
Line 1630 sub rndseed {
|
.$symbchck); |
.$symbchck); |
} |
} |
|
|
|
sub ireceipt { |
|
my ($funame,$fudom,$fucourseid,$fusymb)=@_; |
|
my $cuname=unpack("%32C*",$funame); |
|
my $cudom=unpack("%32C*",$fudom); |
|
my $cucourseid=unpack("%32C*",$fucourseid); |
|
my $cusymb=unpack("%32C*",$fusymb); |
|
my $cunique=unpack("%32C*",$perlvar{'lonReceipt'}); |
|
return unpack("%32C*",$perlvar{'lonHostID'}).'-'. |
|
($cunique%$cuname+ |
|
$cunique%$cudom+ |
|
$cusymb%$cuname+ |
|
$cusymb%$cudom+ |
|
$cucourseid%$cuname+ |
|
$cucourseid%$cudom); |
|
} |
|
|
|
sub receipt { |
|
return &ireceipt($ENV{'user.name'},$ENV{'user.domain'}, |
|
$ENV{'request.course.id'},&symbread()); |
|
} |
|
|
# ------------------------------------------------------------ Serves up a file |
# ------------------------------------------------------------ Serves up a file |
# returns either the contents of the file or a -1 |
# returns either the contents of the file or a -1 |
sub getfile { |
sub getfile { |