version 1.110, 2006/05/11 23:54:06
|
version 1.114, 2006/05/30 17:15:10
|
Line 33 package Apache::lonuserstate;
|
Line 33 package Apache::lonuserstate;
|
use strict; |
use strict; |
use HTML::TokeParser; |
use HTML::TokeParser; |
use Apache::lonnet; |
use Apache::lonnet; |
|
use Apache::lonlocal; |
use Apache::loncommon(); |
use Apache::loncommon(); |
use GDBM_File; |
use GDBM_File; |
use Apache::lonmsg; |
use Apache::lonmsg; |
Line 41 use Safe::Hole;
|
Line 42 use Safe::Hole;
|
use Opcode; |
use Opcode; |
use Apache::lonenc; |
use Apache::lonenc; |
use Fcntl qw(:flock); |
use Fcntl qw(:flock); |
|
use lib '/home/httpd/lib/perl/'; |
|
use LONCAPA; |
|
|
|
|
# ---------------------------------------------------- Globals for this package |
# ---------------------------------------------------- Globals for this package |
|
|
Line 103 sub processversionfile {
|
Line 107 sub processversionfile {
|
|
|
sub loadmap { |
sub loadmap { |
my $uri=shift; |
my $uri=shift; |
if ($hash{'map_pc_'.$uri}) { return; } |
if ($hash{'map_pc_'.$uri}) { |
|
$errtext.=&mt('<br />Multiple use of sequence/page <tt>[_1]</tt>! The course will not function properly.',$uri); |
|
return; |
|
} |
$pc++; |
$pc++; |
my $lpc=$pc; |
my $lpc=$pc; |
$hash{'map_pc_'.$uri}=$lpc; |
$hash{'map_pc_'.$uri}=$lpc; |
Line 117 sub loadmap {
|
Line 123 sub loadmap {
|
|
|
unless (($fn=~/\.sequence$/) || |
unless (($fn=~/\.sequence$/) || |
($fn=~/\.page$/)) { |
($fn=~/\.page$/)) { |
$errtext.="Invalid map: $fn\n"; |
$errtext.=&mt("<br />Invalid map: <tt>[_1]</tt>",$fn); |
return; |
return; |
} |
} |
|
|
Line 277 sub loadmap {
|
Line 283 sub loadmap {
|
} |
} |
$name=~s/^.*_([^_]*)$/$1/; |
$name=~s/^.*_([^_]*)$/$1/; |
my $newparam= |
my $newparam= |
&Apache::lonnet::escape($token->[2]->{'type'}).':'. |
&escape($token->[2]->{'type'}).':'. |
&Apache::lonnet::escape($part.'.'.$name).'='. |
&escape($part.'.'.$name).'='. |
&Apache::lonnet::escape($token->[2]->{'value'}); |
&escape($token->[2]->{'value'}); |
if (defined($hash{'param_'.$referid})) { |
if (defined($hash{'param_'.$referid})) { |
$hash{'param_'.$referid}.='&'.$newparam; |
$hash{'param_'.$referid}.='&'.$newparam; |
} else { |
} else { |
Line 310 sub loadmap {
|
Line 316 sub loadmap {
|
} |
} |
|
|
} else { |
} else { |
$errtext.='Map not loaded: The file ('.$fn.') does not exist. '; |
$errtext.=&mt('<br />Map not loaded: The file <tt>[_1]</tt> does not exist.',$fn); |
} |
} |
} |
} |
|
|
Line 390 sub traceroute {
|
Line 396 sub traceroute {
|
$further=simplify('('.'_'.$rid.')&('. |
$further=simplify('('.'_'.$rid.')&('. |
$hash{'condid_'.$hash{'undercond_'.$id}}.')'); |
$hash{'condid_'.$hash{'undercond_'.$id}}.')'); |
} else { |
} else { |
$errtext.='Undefined condition ID: ' |
$errtext.=&mt('<br />Undefined condition ID: [_1]',$hash{'undercond_'.$id}); |
.$hash{'undercond_'.$id}.'. '; |
|
} |
} |
} |
} |
$newsofar=&traceroute($further,$hash{'goesto_'.$id},$beenhere, |
$newsofar=&traceroute($further,$hash{'goesto_'.$id},$beenhere, |
Line 438 sub accinit {
|
Line 443 sub accinit {
|
foreach my $param (split(/\&/,$hash{$key})) { |
foreach my $param (split(/\&/,$hash{$key})) { |
my ($typename,$value)=split(/\=/,$param); |
my ($typename,$value)=split(/\=/,$param); |
my ($type,$name)=split(/\:/,$typename); |
my ($type,$name)=split(/\:/,$typename); |
$parmhash{$prefix.'.'.&Apache::lonnet::unescape($name)}= |
$parmhash{$prefix.'.'.&unescape($name)}= |
&Apache::lonnet::unescape($value); |
&unescape($value); |
$parmhash{$prefix.'.'.&Apache::lonnet::unescape($name).'.type'}= |
$parmhash{$prefix.'.'.&unescape($name).'.type'}= |
&Apache::lonnet::unescape($type); |
&unescape($type); |
} |
} |
} |
} |
} |
} |
Line 552 sub readmap {
|
Line 557 sub readmap {
|
unless ($uri=$cenv{'url'}) { |
unless ($uri=$cenv{'url'}) { |
&Apache::lonnet::logthis("<font color=blue>WARNING: ". |
&Apache::lonnet::logthis("<font color=blue>WARNING: ". |
"Could not load course $short.</font>"); |
"Could not load course $short.</font>"); |
return 'No course data available.'; |
return ('',&mt('No course data available.'));; |
} |
} |
@cond=('true:normal'); |
@cond=('true:normal'); |
|
|
Line 595 sub readmap {
|
Line 600 sub readmap {
|
if ($key=~/^src_/) { |
if ($key=~/^src_/) { |
$hash{$key}=&putinversion($hash{$key}); |
$hash{$key}=&putinversion($hash{$key}); |
} elsif ($key =~ /^(map_(?:start|finish|pc)_)(.*)/) { |
} elsif ($key =~ /^(map_(?:start|finish|pc)_)(.*)/) { |
&Apache::lonnet::logthis($key); |
|
my ($type, $url) = ($1,$2); |
my ($type, $url) = ($1,$2); |
my $value = $hash{$key}; |
my $value = $hash{$key}; |
delete($hash{$key}); |
|
$hash{$type.&putinversion($url)}=$value; |
$hash{$type.&putinversion($url)}=$value; |
} |
} |
} |
} |
Line 683 sub evalstate {
|
Line 686 sub evalstate {
|
if (-e $fn) { |
if (-e $fn) { |
my @conditions=(); |
my @conditions=(); |
{ |
{ |
my $fh=Apache::File->new($fn); |
open(my $fh,$fn); |
@conditions=<$fh>; |
@conditions=<$fh>; |
} |
} |
my $safeeval = new Safe; |
my $safeeval = new Safe; |