version 1.72, 2004/04/05 18:25:08
|
version 1.73, 2004/04/23 15:23:35
|
Line 41 use Apache::lonmsg;
|
Line 41 use Apache::lonmsg;
|
use Safe; |
use Safe; |
use Safe::Hole; |
use Safe::Hole; |
use Opcode; |
use Opcode; |
|
use Apache::lonenc; |
|
|
# ---------------------------------------------------- Globals for this package |
# ---------------------------------------------------- Globals for this package |
|
|
Line 52 my $errtext; # variable with all errors
|
Line 53 my $errtext; # variable with all errors
|
my $retfurl; # variable with the very first URL in the course |
my $retfurl; # variable with the very first URL in the course |
my %randompick; # randomly picked resources |
my %randompick; # randomly picked resources |
my %randompickseed; # optional seed for randomly picking resources |
my %randompickseed; # optional seed for randomly picking resources |
|
my %encurl; # URLs in this folder are supposed to be encrypted |
|
my %hiddenurl; # this URL (or complete folder) is supposed to be hidden |
|
|
# ----------------------------------- Remove version from URL and store in hash |
# ----------------------------------- Remove version from URL and store in hash |
|
|
Line 285 sub loadmap {
|
Line 288 sub loadmap {
|
if ($token->[2]->{'name'} eq 'parameter_randompickseed') { |
if ($token->[2]->{'name'} eq 'parameter_randompickseed') { |
$randompick{$referid}=$token->[2]->{'value'}; |
$randompick{$referid}=$token->[2]->{'value'}; |
} |
} |
|
if ($token->[2]->{'name'} eq 'parameter_encrypturl') { |
|
$encurl{$referid}=$token->[2]->{'value'}; |
|
} |
|
if ($token->[2]->{'name'} eq 'parameter_hiddenresource') { |
|
$hiddenurl{$referid}=$token->[2]->{'value'}; |
|
} |
} |
} |
|
|
} |
} |
Line 454 sub accinit {
|
Line 463 sub accinit {
|
"request.course.uri" => $courseuri); |
"request.course.uri" => $courseuri); |
} |
} |
|
|
# ------------------------------------- Selectively delete from randompick maps |
# ---------------- Selectively delete from randompick maps and hidden url parms |
|
|
sub pickrandom { |
sub hiddenurls { |
my $randomoutentry=''; |
my $randomoutentry=''; |
foreach my $rid (keys %randompick) { |
foreach my $rid (keys %randompick) { |
my $rndpick=$randompick{$rid}; |
my $rndpick=$randompick{$rid}; |
Line 498 sub pickrandom {
|
Line 507 sub pickrandom {
|
} |
} |
} |
} |
} |
} |
|
# ------------------------------ take care of explicitly hidden urls or folders |
|
foreach my $rid (keys %hiddenurl) { |
|
$hash{'randomout_'.$rid}=1; |
|
my ($mapid,$resid)=split(/\./,$rid); |
|
$randomoutentry.='&'. |
|
&Apache::lonnet::symbclean( |
|
&Apache::lonnet::declutter($hash{'map_id_'.$mapid}). |
|
'___'.$resid.'___'. |
|
&Apache::lonnet::declutter($hash{'src_'.$rid}) |
|
).'&'; |
|
} |
|
# --------------------------------------- append randomout entry to environment |
if ($randomoutentry) { |
if ($randomoutentry) { |
&Apache::lonnet::appenv('acc.randomout' => $randomoutentry); |
&Apache::lonnet::appenv('acc.randomout' => $randomoutentry); |
} |
} |
Line 523 sub readmap {
|
Line 544 sub readmap {
|
unlink($fn.'.state'); |
unlink($fn.'.state'); |
unlink($fn.'parms.db'); |
unlink($fn.'parms.db'); |
undef %randompick; |
undef %randompick; |
|
undef %hiddenurl; |
|
undef %encurl; |
$retfurl=''; |
$retfurl=''; |
if ((tie(%hash,'GDBM_File',"$fn.db",&GDBM_WRCREAT(),0640)) && |
if ((tie(%hash,'GDBM_File',"$fn.db",&GDBM_WRCREAT(),0640)) && |
(tie(%parmhash,'GDBM_File',$fn.'_parms.db',&GDBM_WRCREAT(),0640))) { |
(tie(%parmhash,'GDBM_File',$fn.'_parms.db',&GDBM_WRCREAT(),0640))) { |
Line 540 sub readmap {
|
Line 563 sub readmap {
|
if (defined($hash{'map_start_'.$uri})) { |
if (defined($hash{'map_start_'.$uri})) { |
&traceroute('0',$hash{'map_start_'.$uri},'&'); |
&traceroute('0',$hash{'map_start_'.$uri},'&'); |
&accinit($uri,$short,$fn); |
&accinit($uri,$short,$fn); |
&pickrandom(); |
&hiddenurls(); |
} |
} |
# ------------------------------------------------------- Put versions into src |
# ------------------------------------------------------- Put versions into src |
foreach (keys %hash) { |
foreach (keys %hash) { |