version 1.273, 2002/08/23 21:31:09
|
version 1.279, 2002/09/07 17:53:05
|
Line 2341 sub createcourse {
|
Line 2341 sub createcourse {
|
unless ($nonstandard) { |
unless ($nonstandard) { |
# ------------------------------------------ For standard courses, make top url |
# ------------------------------------------ For standard courses, make top url |
my $mapurl=&clutter($url); |
my $mapurl=&clutter($url); |
|
if ($mapurl eq '/res/') { $mapurl=''; } |
$ENV{'form.initmap'}=(<<ENDINITMAP); |
$ENV{'form.initmap'}=(<<ENDINITMAP); |
<map> |
<map> |
<resource id="1" type="start"></resource> |
<resource id="1" type="start"></resource> |
Line 2458 sub dirlist {
|
Line 2459 sub dirlist {
|
} |
} |
} |
} |
|
|
|
# --------------------------------------------- GetFileTimestamp |
|
# This function utilizes dirlist and returns the date stamp for |
|
# when it was last modified. It will also return an error of -1 |
|
# if an error occurs |
|
|
|
sub GetFileTimestamp { |
|
my ($studentDomain,$studentName,$filename,$root)=@_; |
|
$studentDomain=~s/\W//g; |
|
$studentName=~s/\W//g; |
|
my $subdir=$studentName.'__'; |
|
$subdir =~ s/(.)(.)(.).*/$1\/$2\/$3/; |
|
my $proname="$studentDomain/$subdir/$studentName"; |
|
$proname .= '/'.$filename; |
|
my @dir = &Apache::lonnet::dirlist($proname, $studentDomain, $studentName, |
|
$root); |
|
my $fileStat = $dir[0]; |
|
my @stats = split('&', $fileStat); |
|
if($stats[0] ne 'empty' && $stats[0] ne 'no_such_dir') { |
|
return $stats[9]; |
|
} else { |
|
return -1; |
|
} |
|
} |
|
|
# -------------------------------------------------------- Value of a Condition |
# -------------------------------------------------------- Value of a Condition |
|
|
sub directcondval { |
sub directcondval { |
Line 2510 sub condval {
|
Line 2535 sub condval {
|
return $result; |
return $result; |
} |
} |
|
|
|
# ---------------------------------------------------- Devalidate courseresdata |
|
|
|
sub devalidatecourseresdata { |
|
my ($coursenum,$coursedomain)=@_; |
|
my $hashid=$coursenum.':'.$coursedomain; |
|
delete $courseresdatacache{$hashid.'.time'}; |
|
} |
|
|
# --------------------------------------------------- Course Resourcedata Query |
# --------------------------------------------------- Course Resourcedata Query |
|
|
sub courseresdata { |
sub courseresdata { |
Line 2750 sub metadata {
|
Line 2783 sub metadata {
|
# Look at timestamp of caching |
# Look at timestamp of caching |
# Everything is cached by the main uri, libraries are never directly cached |
# Everything is cached by the main uri, libraries are never directly cached |
# |
# |
unless (abs($metacache{$uri.':cachedtimestamp'}-time)<600) { |
unless (abs($metacache{$uri.':cachedtimestamp'}-time)<600 && !defined($liburi)) { |
# |
# |
# Is this a recursive call for a library? |
# Is this a recursive call for a library? |
# |
# |
Line 2773 sub metadata {
|
Line 2806 sub metadata {
|
my $package=$token->[2]->{'package'}; |
my $package=$token->[2]->{'package'}; |
my $keyroot=''; |
my $keyroot=''; |
if ($prefix) { |
if ($prefix) { |
$keyroot.='_'.$prefix; |
$keyroot.=$prefix; |
} else { |
} else { |
if (defined($token->[2]->{'part'})) { |
if (defined($token->[2]->{'part'})) { |
$keyroot.='_'.$token->[2]->{'part'}; |
$keyroot.='_'.$token->[2]->{'part'}; |
Line 2831 sub metadata {
|
Line 2864 sub metadata {
|
# |
# |
# Importing a library here |
# Importing a library here |
# |
# |
if (defined($depthcount)) { $depthcount++; } else |
|
{ $depthcount=0; } |
|
if ($depthcount<20) { |
if ($depthcount<20) { |
foreach (split(/\,/,&metadata($uri,'keys', |
my $location=$parser->get_text('/import'); |
$parser->get_text('/import'),$unikey, |
my $dir=$filename; |
$depthcount))) { |
$dir=~s|[^/]*$||; |
|
$location=&filelocation($dir,$location); |
|
foreach (sort(split(/\,/,&metadata($uri,'keys', |
|
$location,$unikey, |
|
$depthcount+1)))) { |
$metathesekeys{$_}=1; |
$metathesekeys{$_}=1; |
} |
} |
} |
} |
Line 2861 sub metadata {
|
Line 2896 sub metadata {
|
# the next is the end of "start tag" |
# the next is the end of "start tag" |
} |
} |
} |
} |
&metadata_generate_part0(\%metathesekeys,\%metacache,$uri); |
|
$metacache{$uri.':keys'}=join(',',keys %metathesekeys); |
$metacache{$uri.':keys'}=join(',',keys %metathesekeys); |
|
&metadata_generate_part0(\%metathesekeys,\%metacache,$uri); |
|
$metacache{$uri.':allpossiblekeys'}=join(',',keys %metathesekeys); |
$metacache{$uri.':cachedtimestamp'}=time; |
$metacache{$uri.':cachedtimestamp'}=time; |
# this is the end of "was not already recently cached |
# this is the end of "was not already recently cached |
} |
} |