version 1.139, 2001/08/04 20:13:17
|
version 1.140, 2001/08/07 09:47:53
|
Line 122
|
Line 122
|
# 5/30 H. K. Ng |
# 5/30 H. K. Ng |
# 6/1 Gerd Kortemeyer |
# 6/1 Gerd Kortemeyer |
# July Guy Albertelli |
# July Guy Albertelli |
# 8/4 Gerd Kortemeyer |
# 8/4,8/7 Gerd Kortemeyer |
|
|
package Apache::lonnet; |
package Apache::lonnet; |
|
|
Line 1846 sub metadata {
|
Line 1846 sub metadata {
|
my $filename=$uri; |
my $filename=$uri; |
$uri=~s/\.meta$//; |
$uri=~s/\.meta$//; |
unless ($metacache{$uri.':keys'}) { |
unless ($metacache{$uri.':keys'}) { |
|
my %metathesekeys=(); |
unless ($filename=~/\.meta$/) { $filename.='.meta'; } |
unless ($filename=~/\.meta$/) { $filename.='.meta'; } |
my $metastring=&getfile($perlvar{'lonDocRoot'}.'/res/'.$filename); |
my $metastring=&getfile($perlvar{'lonDocRoot'}.'/res/'.$filename); |
my $parser=HTML::TokeParser->new(\$metastring); |
my $parser=HTML::TokeParser->new(\$metastring); |
my $token; |
my $token; |
|
undef %metathesekeys; |
while ($token=$parser->get_token) { |
while ($token=$parser->get_token) { |
if ($token->[0] eq 'S') { |
if ($token->[0] eq 'S') { |
if (defined($token->[2]->{'package'})) { |
if (defined($token->[2]->{'package'})) { |
my $package=$token->[2]->{'package'}; |
my $package=$token->[2]->{'package'}; |
my %thispackagekeys=(); |
|
my $keyroot=''; |
my $keyroot=''; |
if (defined($token->[2]->{'part'})) { |
if (defined($token->[2]->{'part'})) { |
$keyroot.='_'.$token->[2]->{'part'}; |
$keyroot.='_'.$token->[2]->{'part'}; |
Line 1867 sub metadata {
|
Line 1868 sub metadata {
|
} else { |
} else { |
$metacache{$uri.':packages'}=$package.$keyroot; |
$metacache{$uri.':packages'}=$package.$keyroot; |
} |
} |
undef %thispackagekeys; |
|
map { |
map { |
if ($_=~/^$package\&/) { |
if ($_=~/^$package\&/) { |
my ($pack,$name,$subp)=split(/\&/,$_); |
my ($pack,$name,$subp)=split(/\&/,$_); |
Line 1878 sub metadata {
|
Line 1878 sub metadata {
|
$value.=' [Part: '.$part.']'; |
$value.=' [Part: '.$part.']'; |
} |
} |
my $unikey='parameter'.$keyroot.'_'.$name; |
my $unikey='parameter'.$keyroot.'_'.$name; |
$thispackagekeys{$unikey}=1; |
$metathesekeys{$unikey}=1; |
$metacache{$uri.':'.$unikey.'.'.$subp}=$value; |
$metacache{$uri.':'.$unikey.'.'.$subp}=$value; |
} |
} |
} keys %packagetab; |
} keys %packagetab; |
my $addpackagekeys=join(',',keys %thispackagekeys); |
|
if ($metacache{$uri.':keys'}) { |
|
$metacache{$uri.':keys'}.=','.$addpackagekeys; |
|
} else { |
|
$metacache{$uri.':keys'}=$addpackagekeys; |
|
} |
|
} else { |
} else { |
my $entry=$token->[1]; |
my $entry=$token->[1]; |
my $unikey=$entry; |
my $unikey=$entry; |
Line 1900 sub metadata {
|
Line 1894 sub metadata {
|
if (defined($token->[2]->{'name'})) { |
if (defined($token->[2]->{'name'})) { |
$unikey.='_'.$token->[2]->{'name'}; |
$unikey.='_'.$token->[2]->{'name'}; |
} |
} |
if ($metacache{$uri.':keys'}) { |
$metathesekeys{$unikey}=1; |
$metacache{$uri.':keys'}.=','.$unikey; |
|
} else { |
|
$metacache{$uri.':keys'}=$unikey; |
|
} |
|
map { |
map { |
$metacache{$uri.':'.$unikey.'.'.$_}=$token->[2]->{$_}; |
$metacache{$uri.':'.$unikey.'.'.$_}=$token->[2]->{$_}; |
} @{$token->[3]}; |
} @{$token->[3]}; |
Line 1914 sub metadata {
|
Line 1904 sub metadata {
|
$metacache{$uri.':'.$unikey.'.default'}; |
$metacache{$uri.':'.$unikey.'.default'}; |
} |
} |
} |
} |
} |
} |
} |
} |
|
$metacache{$uri.':keys'}=join(',',keys %metathesekeys); |
} |
} |
return $metacache{$uri.':'.$what}; |
return $metacache{$uri.':'.$what}; |
} |
} |