version 1.50, 2005/05/17 20:14:19
|
version 1.52, 2006/04/06 20:24:13
|
Line 290 Returns: The value of a parameter, or ''
|
Line 290 Returns: The value of a parameter, or ''
|
|
|
This function cascades through the possible levels searching for a value for |
This function cascades through the possible levels searching for a value for |
a parameter. The levels are checked in the following order: |
a parameter. The levels are checked in the following order: |
user, course (at section level and course level), map, and lonnet::metadata. |
user, course (at group, section level and course level), map, and |
|
lonnet::metadata. |
This function uses %parmhash, which must be tied prior to calling it. |
This function uses %parmhash, which must be tied prior to calling it. |
This function also requires %courseopt and %useropt to be initialized for |
This function also requires %courseopt and %useropt to be initialized for |
this user and course. |
this user and course. |
Line 301 this user and course.
|
Line 302 this user and course.
|
################################################## |
################################################## |
sub parmval { |
sub parmval { |
my $self = shift; |
my $self = shift; |
my ($what,$symb,$uname,$udom,$csec,$recurse,$mapname,$id,$fn)=@_; |
my ($what,$symb,$uname,$udom,$csec,$recurse,$mapname,$id,$fn,$cgroup)=@_; |
$uname = $self->{'name'} if (! defined($uname)); |
$uname = $self->{'name'} if (! defined($uname)); |
$udom = $self->{'domain'} if (! defined($udom)); |
$udom = $self->{'domain'} if (! defined($udom)); |
$csec = $self->{'section'} if (! defined($csec)); |
$csec = $self->{'section'} if (! defined($csec)); |
$symb = $self->{'symb'} if (! defined($symb)); |
$cgroup = $self->{'group'} if (! defined($cgroup)); |
|
$symb = $self->{'symb'} if (! defined($symb)); |
# |
# |
my $result=''; |
my $result=''; |
# |
# |
Line 323 sub parmval {
|
Line 325 sub parmval {
|
my $courseprefix = $self->{'cid'}; |
my $courseprefix = $self->{'cid'}; |
my $usercourseprefix = $uname.'_'.$udom.'_'.$self->{'cid'}; |
my $usercourseprefix = $uname.'_'.$udom.'_'.$self->{'cid'}; |
# |
# |
|
my $grplevel=$courseprefix.'.['.$cgroup.'].'.$what; |
|
my $grplevelr=$courseprefix.'.['.$cgroup.'].'.$symbparm; |
|
my $grplevelm=$courseprefix.'.['.$cgroup.'].'.$mapparm; |
|
# |
my $seclevel = $courseprefix.'.['.$csec.'].'.$what; |
my $seclevel = $courseprefix.'.['.$csec.'].'.$what; |
my $seclevelr = $courseprefix.'.['.$csec.'].'.$symbparm; |
my $seclevelr = $courseprefix.'.['.$csec.'].'.$symbparm; |
my $seclevelm = $courseprefix.'.['.$csec.'].'.$mapparm; |
my $seclevelm = $courseprefix.'.['.$csec.'].'.$mapparm; |
Line 334 sub parmval {
|
Line 340 sub parmval {
|
my $ucourselevel = $usercourseprefix.'.'.$what; |
my $ucourselevel = $usercourseprefix.'.'.$what; |
my $ucourselevelr = $usercourseprefix.'.'.$symbparm; |
my $ucourselevelr = $usercourseprefix.'.'.$symbparm; |
my $ucourselevelm = $usercourseprefix.'.'.$mapparm; |
my $ucourselevelm = $usercourseprefix.'.'.$mapparm; |
# check user |
# check user |
if (defined($uname)) { |
if (defined($uname)) { |
return $useropt{$ucourselevelr} if (defined($useropt{$ucourselevelr})); |
return $useropt{$ucourselevelr} if (defined($useropt{$ucourselevelr})); |
return $useropt{$ucourselevelm} if (defined($useropt{$ucourselevelm})); |
return $useropt{$ucourselevelm} if (defined($useropt{$ucourselevelm})); |
return $useropt{$ucourselevel} if (defined($useropt{$ucourselevel})); |
return $useropt{$ucourselevel} if (defined($useropt{$ucourselevel})); |
} |
} |
|
# check group |
|
if (defined($cgroup)) { |
|
return $courseopt{$grplevelr} if (defined($courseopt{$grplevelr})); |
|
return $courseopt{$grplevelm} if (defined($courseopt{$grplevelm})); |
|
return $courseopt{$grplevel} if (defined($courseopt{$grplevel})); |
|
} |
# check section |
# check section |
if (defined($csec)) { |
if (defined($csec)) { |
return $courseopt{$seclevelr} if (defined($courseopt{$seclevelr})); |
return $courseopt{$seclevelr} if (defined($courseopt{$seclevelr})); |
Line 703 sub parameter_part_is_valid {
|
Line 715 sub parameter_part_is_valid {
|
return 1; |
return 1; |
} |
} |
# |
# |
my (undef,$part) = |
my ($start,@pieces)=split('_',$parameter); |
($parameter =~ m/^(resource|stores|parameter)_([^_]+)_.*/); |
if ( $start !~ m/^(resource|stores|parameter)$/) { return 0; } |
if (exists($self->{'Parts'}) && |
while (@pieces) { |
exists($self->{'Parts'}->{$part}) && |
pop(@pieces); |
$self->{'Parts'}->{$part} ) { |
my $testpart=join('_',@pieces); |
return 1; |
if (exists($self->{'Parts'}->{$testpart}) && |
} else { |
$self->{'Parts'}->{$testpart} ) { |
return 0; |
return 1; |
|
} |
} |
} |
|
return 0; |
} |
} |
|
|
sub compute { |
sub compute { |