version 1.128.2.3, 2009/11/16 20:26:04
|
version 1.137.2.1, 2011/10/06 23:30:06
|
Line 62 my %hiddenurl; # this URL (or complete f
|
Line 62 my %hiddenurl; # this URL (or complete f
|
|
|
# ----------------------------------- Remove version from URL and store in hash |
# ----------------------------------- Remove version from URL and store in hash |
|
|
|
sub versionerror { |
|
my ($uri,$usedversion,$unusedversion)=@_; |
|
return '<br />'.&mt('Version discrepancy: resource [_1] included in both version [_2] and version [_3]. Using version [_2].', |
|
$uri,$usedversion,$unusedversion).'<br />'; |
|
} |
|
|
sub versiontrack { |
sub versiontrack { |
my $uri=shift; |
my $uri=shift; |
if ($uri=~/\.(\d+)\.\w+$/) { |
if ($uri=~/\.(\d+)\.\w+$/) { |
Line 69 sub versiontrack {
|
Line 75 sub versiontrack {
|
$uri=~s/\.\d+\.(\w+)$/\.$1/; |
$uri=~s/\.\d+\.(\w+)$/\.$1/; |
unless ($hash{'version_'.$uri}) { |
unless ($hash{'version_'.$uri}) { |
$hash{'version_'.$uri}=$version; |
$hash{'version_'.$uri}=$version; |
} |
} elsif ($version!=$hash{'version_'.$uri}) { |
|
$errtext.=&versionerror($uri,$hash{'version_'.$uri},$version); |
|
} |
} |
} |
return $uri; |
return $uri; |
} |
} |
Line 118 sub loadmap {
|
Line 126 sub loadmap {
|
my $lpc=$pc; |
my $lpc=$pc; |
$hash{'map_pc_'.$uri}=$lpc; |
$hash{'map_pc_'.$uri}=$lpc; |
$hash{'map_id_'.$lpc}=$uri; |
$hash{'map_id_'.$lpc}=$uri; |
|
if ($parent_rid =~ /^(\d+)\.\d+$/) { |
|
my $parent_pc = $1; |
|
if (defined($hash{'map_hierarchy_'.$parent_pc})) { |
|
$hash{'map_hierarchy_'.$lpc}=$hash{'map_hierarchy_'.$parent_pc}.','. |
|
$parent_pc; |
|
} else { |
|
$hash{'map_hierarchy_'.$lpc}=$parent_pc; |
|
} |
|
} |
|
|
# Determine and check filename |
# Determine and check filename |
my $fn=&Apache::lonnet::filelocation('',&putinversion($uri)); |
my $fn=&Apache::lonnet::filelocation('',&putinversion($uri)); |
Line 278 sub parse_resource {
|
Line 295 sub parse_resource {
|
$hash{'ids_'.$idsuri}=''.$rid; |
$hash{'ids_'.$idsuri}=''.$rid; |
} |
} |
|
|
if ($turi=~/\/(syllabus|aboutme|navmaps|smppg|bulletinboard)$/) { |
if ($turi=~/\/(syllabus|aboutme|navmaps|smppg|bulletinboard|viewclasslist)$/) { |
$turi.='?register=1'; |
$turi.='?register=1'; |
} |
} |
|
|
Line 420 sub simplify {
|
Line 437 sub simplify {
|
# 8&8=8 |
# 8&8=8 |
$expression=~s/([^_\.\d])([_\.\d]+)\&\2([^_\.\d])/$1$2$3/g; |
$expression=~s/([^_\.\d])([_\.\d]+)\&\2([^_\.\d])/$1$2$3/g; |
# 8|8=8 |
# 8|8=8 |
$expression=~s/([^_\.\d])([_\.\d]+)\|\2([^_\.\d])/$1$2$3/g; |
$expression=~s/([^_\.\d])([_\.\d]+)(?:\|\2)+([^_\.\d])/$1$2$3/g; |
# (5&3)&4=5&3&4 |
# (5&3)&4=5&3&4 |
$expression=~s/\(([_\.\d]+)((?:\&[_\.\d]+)+)\)\&([_\.\d]+[^_\.\d])/$1$2\&$3/g; |
$expression=~s/\(([_\.\d]+)((?:\&[_\.\d]+)+)\)\&([_\.\d]+[^_\.\d])/$1$2\&$3/g; |
# (((5&3)|(4&6)))=((5&3)|(4&6)) |
# (((5&3)|(4&6)))=((5&3)|(4&6)) |
Line 688 sub readmap {
|
Line 705 sub readmap {
|
'Could not untie coursemap hash '.$fn.' for '.$uri.'.</font>'); |
'Could not untie coursemap hash '.$fn.' for '.$uri.'.</font>'); |
} |
} |
} |
} |
flock(LOCKFILE,LOCK_UN); |
flock(LOCKFILE,LOCK_UN); |
} |
} |
unless ($lock && $tiedhash && $tiedparmhash) { |
unless ($lock && $tiedhash && $tiedparmhash) { |
# if we are here it is likely because we are already trying to |
# if we are here it is likely because we are already trying to |
# initialize the course in another child, busy wait trying to |
# initialize the course in another child, busy wait trying to |
# tie the hashes for the next 90 seconds, if we succeed forward |
# tie the hashes for the next 90 seconds, if we succeed forward |
Line 703 sub readmap {
|
Line 720 sub readmap {
|
} |
} |
if ($tiedhash) { |
if ($tiedhash) { |
unless($untiedhash) { |
unless($untiedhash) { |
untie(%hash); |
untie(%hash); |
} |
} |
} |
} |
if ($tiedparmhash) { |
if ($tiedparmhash) { |
Line 711 sub readmap {
|
Line 728 sub readmap {
|
untie(%parmhash); |
untie(%parmhash); |
} |
} |
} |
} |
&Apache::lonnet::logthis('<font color="blue">WARNING: '. |
&Apache::lonnet::logthis('<font color="blue">WARNING: '. |
"Could not tie coursemap $fn for $uri.</font>"); |
"Could not tie coursemap $fn for $uri.</font>"); |
$tiedhash = ''; |
$tiedhash = ''; |
$tiedparmhash = ''; |
$tiedparmhash = ''; |
my $i=0; |
my $i=0; |
Line 728 sub readmap {
|
Line 745 sub readmap {
|
if (-e "$fn.state") { |
if (-e "$fn.state") { |
$retfurl='/adm/navmaps'; |
$retfurl='/adm/navmaps'; |
&Apache::lonnet::appenv({"request.course.id" => $short, |
&Apache::lonnet::appenv({"request.course.id" => $short, |
"request.course.fn" => $fn, |
"request.course.fn" => $fn, |
"request.course.uri" => $uri}); |
"request.course.uri" => $uri}); |
$untiedhash = untie(%hash); |
$untiedhash = untie(%hash); |
$untiedparmhash = untie(%parmhash); |
$untiedparmhash = untie(%parmhash); |
$gotstate = 1; |
$gotstate = 1; |
last; |
last; |
} |
} |
$untiedparmhash = untie(%parmhash); |
$untiedparmhash = untie(%parmhash); |
} |
} |
$untiedhash = untie(%hash); |
$untiedhash = untie(%hash); |
} |
} |
} |
} |
} |
} |
if ($lock) { |
if ($lock) { |
flock(LOCKFILE,LOCK_UN); |
flock(LOCKFILE,LOCK_UN); |
Line 889 sub build_tmp_hashes {
|
Line 906 sub build_tmp_hashes {
|
|
|
sub unlink_tmpfiles { |
sub unlink_tmpfiles { |
my ($fn) = @_; |
my ($fn) = @_; |
if ($fn =~ m{^\Q$Apache::lonnet::perlvar{'lonUsersDir'}\E/tmp/}) { |
if ($fn =~ m{^\Q$Apache::lonnet::perlvar{'lonDaemons'}\E/tmp/}) { |
my @files = qw (.db _symb.db .state _parms.db); |
my @files = qw (.db _symb.db .state _parms.db); |
foreach my $file (@files) { |
foreach my $file (@files) { |
if (-e $fn.$file) { |
if (-e $fn.$file) { |
Line 1002 of course for user.
|
Line 1019 of course for user.
|
This is part of the LearningOnline Network with CAPA project |
This is part of the LearningOnline Network with CAPA project |
described at http://www.lon-capa.org. |
described at http://www.lon-capa.org. |
|
|
=head1 HANDLER SUBROUTINE |
=head1 SUBROUTINES |
|
|
There is no handler subroutine. |
|
|
|
=head1 OTHER SUBROUTINES |
|
|
|
=over 4 |
=over |
|
|
=item * |
=item loadmap() |
|
|
loadmap() : Loads map from disk |
Loads map from disk |
|
|
=item * |
=item simplify() |
|
|
simplify() : Simplify expression |
Simplify expression |
|
|
=item * |
=item traceroute() |
|
|
traceroute() : Build condition hash |
Build condition hash |
|
|
=item * |
=item accinit() |
|
|
accinit() : Cascading conditions, quick access, parameters |
Cascading conditions, quick access, parameters |
|
|
=item * |
=item readmap() |
|
|
readmap() : Read map and all submaps |
Read map and all submaps |
|
|
=item * |
=item evalstate() |
|
|
evalstate() : Evaluate state string |
Evaluate state string |
|
|
=back |
=back |
|
|