--- loncom/lonnet/perl/lonnet.pm 2000/08/28 22:21:24 1.25 +++ loncom/lonnet/perl/lonnet.pm 2000/09/04 11:25:46 1.28 @@ -6,7 +6,7 @@ # plaintext(short) : plain text explanation of short term # fileembstyle(ext) : embed style in page for file extension # filedescription(ext) : descriptor text for file extension -# allowed(short,url) : returns codes for allowed actions F,R,S,C +# allowed(short,url) : returns codes for allowed actions F,R,S,X,C # definerole(rolename,sys,dom,cou) : define a custom role rolename # set priviledges in format of lonTabs/roles.tab for # system, domain and course level, @@ -23,12 +23,15 @@ # restore : returns hash for this url # eget(namesp,array) : returns hash with keys from array filled in from namesp # get(namesp,array) : returns hash with keys from array filled in from namesp +# del(namesp,array) : deletes keys out of arry from namesp # put(namesp,hash) : stores hash in namesp # dump(namesp) : dumps the complete namespace into a hash # ssi(url,hash) : does a complete request cycle on url to localhost, posts # hash # repcopy(filename) : replicate file # dirlist(url) : gets a directory listing +# condval(index) : value of condition index based on state +# varval(name) : value of a variable # # 6/1/99,6/2,6/10,6/11,6/12,6/14,6/26,6/28,6/29,6/30, # 7/1,7/2,7/9,7/10,7/12,7/14,7/15,7/19, @@ -40,7 +43,7 @@ # 06/26 Ben Tyszka # 06/30,07/15,07/17,07/18,07/20,07/21,07/22,07/25 Gerd Kortemeyer # 08/14 Ben Tyszka -# 08/22,08/28 Gerd Kortemeyer +# 08/22,08/28,08/31,09/01,09/02 Gerd Kortemeyer package Apache::lonnet; @@ -527,6 +530,19 @@ sub get { return %returnhash; } +# --------------------------------------------------------------- del interface + +sub del { + my ($namespace,@storearr)=@_; + my $items=''; + map { + $items.=escape($_).'&'; + } @storearr; + $items=~s/\&$//; + return reply("del:$ENV{'user.domain'}:$ENV{'user.name'}:$namespace:$items", + $ENV{'user.home'}); +} + # -------------------------------------------------------------- dump interface sub dump { @@ -761,6 +777,56 @@ sub dirlist { } } +# -------------------------------------------------------- Value of a Condition + +sub condval { + my $condidx=shift; + my $result=0; + if ($ENV{'request.course'}) { + if (defined($ENV{'acc.cond.'.$ENV{'request.course'}.'.'.$condidx})) { + my $operand='|'; + my @stack; + map { + if ($_ eq '(') { + push @stack,($operand,$result) + } elsif ($_ eq ')') { + my $before=pop @stack; + if (pop @stack eq '&') { + $result=$result>$before?$before:$result; + } else { + $result=$result>$before?$result:$before; + } + } elsif (($_ eq '&') || ($_ eq '|')) { + $operand=$_; + } else { + my $new= + substr($ENV{'user.state.'.$ENV{'request.course'}},$_,1); + if ($operand eq '&') { + $result=$result>$new?$new:$result; + } else { + $result=$result>$new?$result:$new; + } + } + } ($ENV{'acc.cond.'.$ENV{'request.course'}.'.'.$condidx}=~ + /(\d+|\(|\)|\&|\|)/g); + } + } + return $result; +} + +# --------------------------------------------------------- Value of a Variable + +sub varval { + my ($realm,$space,@components)=split(/\./,shift); + my $value=''; + if ($realm eq 'user') { + } elsif ($realm eq 'course') { + } elsif ($realm eq 'session') { + } elsif ($realm eq 'system') { + } + return $value; +} + # -------------------------------------------------------- Escape Special Chars sub escape {