Apache::lonpubdir - Construction space directory lister
Invoked (for various locations) by /etc/httpd/conf/srm.conf:
<LocationMatch "^/\~.*/$"> PerlAccessHandler Apache::loncacc SetHandler perl-script PerlHandler Apache::lonpubdir ErrorDocument 403 /adm/login ErrorDocument 404 /adm/notfound.html ErrorDocument 406 /adm/unauthorized.html ErrorDocument 500 /adm/errorhandler </LocationMatch>
<Location /adm/pubdir> PerlAccessHandler Apache::lonacc SetHandler perl-script PerlHandler Apache::lonpubdir ErrorDocument 403 /adm/login ErrorDocument 404 /adm/notfound.html ErrorDocument 406 /adm/unauthorized.html ErrorDocument 500 /adm/errorhandler </Location>
This module publishes a directory of files.
This is part of the LearningOnline Network with CAPA project described at http://www.lon-capa.org.
This routine is called by Apache and mod_perl.
read in information
start page output
run through list of files and attempt to publish unhidden files
Output the header of the page. This includes: - The HTML header - The H1/H3 stuff which includes the directory.
startpage($r, $uame, $udom, $thisdisfn); $r - The apache request object. $uname - User name. $udom - Domain name the user is logged in under. $thisdisfn - Displayable version of the filename.
getTitleString($fullname)
Get the title string or "[untitled]" if the file has no title metadata: Without the latter substitution, it's impossible to examine metadata for untitled resources. Resources may be legitimately untitled, to prevent searches from locating them. $str = getTitleString($fullname); $fullname - Fully qualified filename to check.
Put out a directory table row: putdirectory($r, $base, $here, $dirname, $modtime) $r - Apache request object. $reqfile - File in request. $here - Where we are in directory tree. $dirname - Name of directory special file. $modtime - Encoded modification time.
Categorize files in the directory. For each file in a list of files in a file directory, the file categorized as one of: - directory - sequence - problem - Other resource.
For each file the modification date is determined as well. Returned is a list of sublists: (directories, sequences, problems, other) each of the sublists contains entries of the following form (sorted by filename): (filename, typecode, lastmodtime) $list = CategorizeFiles($location, $files) $location - Directory in which the files live (relative to our execution) $files - list of files.