--- loncom/interface/spreadsheet/Spreadsheet.pm 2004/03/31 05:24:00 1.37 +++ loncom/interface/spreadsheet/Spreadsheet.pm 2005/02/03 23:59:41 1.38 @@ -1,5 +1,5 @@ # -# $Id: Spreadsheet.pm,v 1.37 2004/03/31 05:24:00 albertel Exp $ +# $Id: Spreadsheet.pm,v 1.38 2005/02/03 23:59:41 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -313,6 +313,9 @@ Returns the safe space required by a Spr sub initialize_safe_space { my $self = shift; + my $usection = &Apache::lonnet::getsection($self->{'domain'}, + $self->{'name'}, + $ENV{'request.course.id'}); if (! defined($safeeval)) { $safeeval = new Safe(shift); my $safehole = new Safe::Hole; @@ -320,7 +323,7 @@ sub initialize_safe_space { $safeeval->permit(":base_math"); $safeeval->permit("sort"); $safeeval->deny(":base_io"); - $safehole->wrap(\&Apache::lonnet::EXT,$safeeval,'&EXT'); + $safehole->wrap(\&Apache::lonnet::EXT,$safeeval,'&Apache::lonnet::EXT'); $safehole->wrap(\&mask,$safeeval,'&mask'); $safeeval->share('$@'); my $code=<<'ENDDEFS'; @@ -379,6 +382,25 @@ $errormsg = ''; =pod +=item EXT(parameter) + +Calls the system EXT function to determine the value of the given parameter. + +=cut + +#------------------------------------------------------- +sub EXT { + my ($parameter) = @_; + return '' if (! defined($parameter) || $parameter eq ''); + $parameter =~ s/^parameter\./resource\./; + my $value = &Apache::lonnet::EXT($parameter,$symb,$domain,$name,$usection); + return $value; +} + +#------------------------------------------------------- + +=pod + =item NUM(range) returns the number of items in the range. @@ -696,10 +718,11 @@ ENDDEFS # Place some of the %$self items into the safe space except the safe space # itself my $initstring = ''; - foreach (qw/name domain type usymb cid csec coursefilename + foreach (qw/name domain type symb cid csec coursefilename cnum cdom chome uhome/) { $initstring.= qq{\$$_="$self->{$_}";}; } + $initstring.=qq{\$usection="$usection";}; $self->{'safe'}->reval($initstring); return $self; }