version 1.3, 2015/04/28 13:20:41
|
version 1.5, 2016/03/04 21:43:16
|
Line 265 use LONCAPA qw(:DEFAULT :match);
|
Line 265 use LONCAPA qw(:DEFAULT :match);
|
|
|
sub init_global_hashes { |
sub init_global_hashes { |
%Apache::lonrelrequtils::checkparms = (); |
%Apache::lonrelrequtils::checkparms = (); |
%Apache::lonrelrequtils::checkparmsmatch = (); |
%Apache::lonrelrequtils::checkparmvalsmatch = (); |
|
%Apache::lonrelrequtils::checkparmnamesmatch = (); |
%Apache::lonrelrequtils::checkresponsetypes = (); |
%Apache::lonrelrequtils::checkresponsetypes = (); |
%Apache::lonrelrequtils::checkcrstypes = (); |
%Apache::lonrelrequtils::checkcrstypes = (); |
%Apache::lonrelrequtils::anonsurvey = (); |
%Apache::lonrelrequtils::anonsurvey = (); |
%Apache::lonrelrequtils::randomizetry = (); |
%Apache::lonrelrequtils::randomizetry = (); |
|
|
foreach my $key (keys(%Apache::lonnet::needsrelease)) { |
foreach my $key (keys(%Apache::lonnet::needsrelease)) { |
my ($item,$name,$value,$valuematch) = split(/:/,$key); |
my ($item,$name,$value,$valuematch,$namematch) = split(/:/,$key); |
if ($item eq 'parameter') { |
if ($item eq 'parameter') { |
if ($value ne '') { |
if ($namematch ne '') { |
if (ref($Apache::lonrelrequtils::checkparms{$name}) eq 'ARRAY') { |
$Apache::lonrelrequtils::checkparmnamesmatch{$namematch} = 1; |
unless(grep(/^\Q$name\E$/,@{$Apache::lonrelrequtils::checkparms{$name}})) { |
} |
push(@{$Apache::lonrelrequtils::checkparms{$name}},$value); |
if ($name ne '') { |
|
if ($value ne '') { |
|
if (ref($Apache::lonrelrequtils::checkparms{$name}) eq 'ARRAY') { |
|
unless(grep(/^\Q$name\E$/,@{$Apache::lonrelrequtils::checkparms{$name}})) { |
|
push(@{$Apache::lonrelrequtils::checkparms{$name}},$value); |
|
} |
|
} else { |
|
push(@{$Apache::lonrelrequtils::checkparms{$name}},$value); |
} |
} |
} else { |
} elsif ($valuematch ne '') { |
push(@{$Apache::lonrelrequtils::checkparms{$name}},$value); |
if (ref($Apache::lonrelrequtils::checkparmvalsmatch{$name}) eq 'ARRAY') { |
} |
unless(grep(/^\Q$name\E$/,@{$Apache::lonrelrequtils::checkparmvalsmatch{$name}})) { |
} elsif ($valuematch ne '') { |
push(@{$Apache::lonrelrequtils::checkparmvalsmatch{$name}},$valuematch); |
if (ref($Apache::lonrelrequtils::checkparmsmatch{$name}) eq 'ARRAY') { |
} |
unless(grep(/^\Q$name\E$/,@{$Apache::lonrelrequtils::checkparmsmatch{$name}})) { |
} else { |
push(@{$Apache::lonrelrequtils::checkparmsmatch{$name}},$valuematch); |
push(@{$Apache::lonrelrequtils::checkparmvalsmatch{$name}},$valuematch); |
} |
} |
} else { |
|
push(@{$Apache::lonrelrequtils::checkparmsmatch{$name}},$valuematch); |
|
} |
} |
} |
} |
} elsif ($item eq 'resourcetag') { |
} elsif ($item eq 'resourcetag') { |
Line 302 sub init_global_hashes {
|
Line 308 sub init_global_hashes {
|
} |
} |
} |
} |
($Apache::lonrelrequtils::anonsurvey{major},$Apache::lonrelrequtils::anonsurvey{minor}) = |
($Apache::lonrelrequtils::anonsurvey{major},$Apache::lonrelrequtils::anonsurvey{minor}) = |
split(/\./,$Apache::lonnet::needsrelease{'parameter:type:anonsurvey'}); |
split(/\./,$Apache::lonnet::needsrelease{'parameter:type:anonsurvey::'}); |
($Apache::lonrelrequtils::randomizetry{major},$Apache::lonrelrequtils::randomizetry{minor}) = |
($Apache::lonrelrequtils::randomizetry{major},$Apache::lonrelrequtils::randomizetry{minor}) = |
split(/\./,$Apache::lonnet::needsrelease{'parameter:type:randomizetry'}); |
split(/\./,$Apache::lonnet::needsrelease{'parameter:type:randomizetry::'}); |
return; |
return; |
} |
} |
|
|
Line 362 sub parameter_constraints {
|
Line 368 sub parameter_constraints {
|
} |
} |
if (grep(/^\Q$value\E$/,@{$Apache::lonrelrequtils::checkparms{$item}})) { |
if (grep(/^\Q$value\E$/,@{$Apache::lonrelrequtils::checkparms{$item}})) { |
my ($major,$minor) = |
my ($major,$minor) = |
split(/\./,$Apache::lonnet::needsrelease{'parameter:'.$item.':'.$value.':'}); |
split(/\./,$Apache::lonnet::needsrelease{'parameter:'.$item.':'.$value.'::'}); |
($reqdmajor,$reqdminor) = |
($reqdmajor,$reqdminor) = |
&update_reqd_loncaparev($major,$minor,$reqdmajor,$reqdminor); |
&update_reqd_loncaparev($major,$minor,$reqdmajor,$reqdminor); |
} |
} |
} |
} |
} |
} |
} |
} |
foreach my $item (keys(%Apache::lonrelrequtils::checkparmsmatch)) { |
foreach my $item (keys(%Apache::lonrelrequtils::checkparmvalsmatch)) { |
if ($key =~ /(\Q$item\E)$/) { |
if ($key =~ /(\Q$item\E)$/) { |
if (ref($Apache::lonrelrequtils::checkparms{$item}) eq 'ARRAY') { |
if (ref($Apache::lonrelrequtils::checkparmvalsmatch{$item}) eq 'ARRAY') { |
my $value = $resourcedata->{$key}; |
my $value = $resourcedata->{$key}; |
foreach my $entry (@{$Apache::lonrelrequtils::checkparms{$item}}) { |
foreach my $entry (@{$Apache::lonrelrequtils::checkparmvalsmatch{$item}}) { |
my $regexp; |
my $regexp; |
if (($item eq 'lenient') && ($entry eq 'weighted')) { |
if (($item eq 'lenient') && ($entry eq 'weighted')) { |
$regexp = '^[\-\.\d]+,[\-\.\d]+,[\-\.\d]+,[\-\.\d]+$'; |
$regexp = '^[\-\.\d]+,[\-\.\d]+,[\-\.\d]+,[\-\.\d]+$'; |
} elsif (($item eq 'acc') && ($entry eq '_denyfrom_')) { |
} elsif (($item eq 'acc') && ($entry eq '_denyfrom_')) { |
$regexp = '\!'; |
$regexp = '\!'; |
|
} elsif (($item eq 'interval') && ($entry eq 'done')) { |
|
$regexp = '^\d+_done$'; |
} |
} |
if ($regexp ne '') { |
if ($regexp ne '') { |
if ($value =~ /$regexp/) { |
if ($value =~ /$regexp/) { |
my ($major,$minor) = |
my ($major,$minor) = |
split(/\./,$Apache::lonnet::needsrelease{'parameter:'.$item.'::'.$entry}); |
split(/\./,$Apache::lonnet::needsrelease{'parameter:'.$item.'::'.$entry.':'}); |
($reqdmajor,$reqdminor) = |
($reqdmajor,$reqdminor) = |
&update_reqd_loncaparev($major,$minor,$reqdmajor,$reqdminor); |
&update_reqd_loncaparev($major,$minor,$reqdmajor,$reqdminor); |
last; |
last; |
Line 393 sub parameter_constraints {
|
Line 401 sub parameter_constraints {
|
} |
} |
} |
} |
} |
} |
|
foreach my $item (keys(%Apache::lonrelrequtils::checkparmnamesmatch)) { |
|
my $regexp; |
|
if ($item eq 'maplevelrecurse') { |
|
$regexp = '\.(?:sequence|page)___\(rec\)\.'; |
|
} |
|
if ($regexp ne '') { |
|
if ($key =~ /$regexp/) { |
|
my ($major,$minor) = |
|
split(/\./,$Apache::lonnet::needsrelease{'parameter::::'.$item}); |
|
($reqdmajor,$reqdminor) = |
|
&update_reqd_loncaparev($major,$minor,$reqdmajor,$reqdminor); |
|
|
|
} |
|
} |
|
} |
} |
} |
} |
} |
return ($reqdmajor,$reqdminor); |
return ($reqdmajor,$reqdminor); |