--- loncom/interface/lonindexer.pm 2001/08/07 14:02:27 1.14 +++ loncom/interface/lonindexer.pm 2001/11/28 16:47:25 1.23 @@ -1,36 +1,59 @@ # The LearningOnline Network with CAPA # # Directory Indexer -# (Login Screen # -# 5/21/99,5/22,5/25,5/26,5/31,6/2,6/10,7/12,7/14 Gerd Kortemeyer) +# YEAR=1999 +# 5/21/99, 5/22,5/25,5/26,5/31,6/2,6/10,7/12,7/14 Gerd Kortemeyer) # 11/23 Gerd Kortemeyer +# YEAR=2000 # 07/20-08/04 H.K. Ng -# +# YEAR=2001 # 05/9-05/19/2001 H. K. Ng # 05/21/2001 H. K. Ng # 05/23/2001 H. K. Ng -# 05/31/2001 Scott Harrison -# 06/01/2001 Scott Harrison -# 06/02/2001 Scott Harrison -# 06/15/2001 Scott Harrison -# 06/26/2001 H. K. Ng -# 07/08/2001 H. K. Ng +# 5/31,6/1,6/2,6/15 Scott Harrison +# 6/26,7/8 H. K. Ng +# 8/6,8/7,8/10 Scott Harrison +# 8/14 H. K. Ng +# 8/28,10/15,11/28 Scott Harrison +# +# $Id: lonindexer.pm,v 1.23 2001/11/28 16:47:25 harris41 Exp $ +### + +############################################################################### +## ## +## ORGANIZATION OF THIS PERL MODULE ## +## ## +## 1. Description of functions ## +## 2. Modules used by this module ## +## 3. Choices for different output views (detailed, summary, xml, etc) ## +## 4. BEGIN block (to be run once after compilation) ## +## 5. Handling routine called via Apache and mod_perl ## +## 6. Other subroutines ## +## ## +############################################################################### package Apache::lonindexer; +# ------------------------------------------------- modules used by this module use strict; use Apache::lonnet(); use Apache::Constants qw(:common); use Apache::File; use GDBM_File; -my %hash; -my %dirs; -my %language; -my $hidden; -my $extrafield; -my $fnum; +# ---------------------------------------- variables used throughout the module +my %hash; # tied to a user-specific gdbm file +my %dirs; # keys are directories, values are the open/close status +my %language; # has the reference information present in language.tab + +# ----- Values which are set by the handler subroutine and are accessible to +# ----- other methods. +my $extrafield; # default extra table cell +my $fnum; # file counter +my $dnum; # directory counter + +# ---------------------------------------------------------------------- BEGIN sub BEGIN { my $fh=Apache::File->new($Apache::lonnet::perlvar{'lonTabDir'}. '/language.tab'); @@ -40,12 +63,17 @@ sub BEGIN { } <$fh>; } +# ----------------------------- Handling routine called via Apache and mod_perl sub handler { my $r = shift; $r->content_type('text/html'); $r->send_http_header; return OK if $r->header_only; $fnum=0; + $dnum=0; + untie %hash; + +# ------------------------------------- read in machine configuration variables my $iconpath= $r->dir_config('lonIconsURL') . "/"; my $domain = $r->dir_config('lonDefDomain'); my $role = $r->dir_config('lonRole'); @@ -56,99 +84,72 @@ sub handler { my $tabdir = $r->dir_config('lonTabDir'); my $fileclr='#ffffe6'; + my $line; + my (@attrchk,@openpath); + my $uri=$r->uri; + # -------------------------------------- see if called from an interactive mode - map { - my ($name, $value) = split(/=/,$_); - $value =~ tr/+/ /; - $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; - if ($name eq 'catalogmode') { - $ENV{'form.'.$name}=$value; - } - } (split(/&/,$ENV{'QUERY_STRING'})); + &get_unprocessed_cgi(); - $hidden=''; my $closebutton=''; + my $closebutton=''; my $groupimportbutton=''; my $colspan=''; $extrafield=''; - if ($ENV{'form.catalogmode'} eq 'interactive') { - $extrafield='