Apache-AutoIndex
view release on metacpan or search on metacpan
AutoIndex.pm view on Meta::CPAN
#$Id: AutoIndex.pm,v 1.1 1999/06/29 14:09:25 gozer Exp $
package Apache::AutoIndex;
use strict;
use Apache::Constants qw(:common OPT_INDEXES DECLINE_CMD REDIRECT DIR_MAGIC_TYPE);
use DynaLoader ();
use Apache::Util qw(ht_time size_string);
use Apache::ModuleConfig;
use Apache::Icon;
use Apache::Language;
use vars qw ($VERSION);
$VERSION="0.08";
#Configuration constants
use constant FANCY_INDEXING => 1;
use constant ICONS_ARE_LINKS => 2;
use constant SCAN_HTML_TITLES => 4;
use constant SUPPRESS_LAST_MOD => 8;
use constant SUPPRESS_SIZE => 16;
use constant SUPPRESS_DESC => 32;
use constant SUPPRESS_PREAMBLE => 64;
use constant SUPPRESS_COLSORT => 128;
use constant THUMBNAILS => 256;
use constant SHOW_PERMS => 512;
use constant NO_OPTIONS => 1024;
use vars qw(%GenericDirectives);
%GenericDirectives =
(
fancyindexing => FANCY_INDEXING,
iconsarelinks => ICONS_ARE_LINKS,
scanhtmltitles => SCAN_HTML_TITLES,
suppresslastmodified => SUPPRESS_LAST_MOD,
suppresssize => SUPPRESS_SIZE,
suppressdescription => SUPPRESS_DESC,
suppresshtmlperamble => SUPPRESS_PREAMBLE,
suppresscolumnsorting => SUPPRESS_COLSORT,
thumbnails => THUMBNAILS,
showpermissions => SHOW_PERMS,
);
#Default values
use constant DEFAULT_ICON_WIDTH => 20;
use constant DEFAULT_ICON_HEIGHT=> 22;
use constant DEFAULT_NAME_WIDTH => 23;
use constant DEFAULT_ORDER => "ND";
#Global Options/Congiguration Directives
use vars qw($config);
$config->{debug}=0;
use vars qw(%sortname);
%sortname =
(
'N'=>'Name' ,
'M'=>'LastModified',
'S'=>'Size',
'D'=>'Description',
);
#Statistics variables
use vars qw($nDir $nRedir $nIndex $nThumb);
$nDir=0;
$nRedir=0;
$nIndex=0;
$nThumb=0;
if ($ENV{MOD_PERL}){
no strict;
@ISA=qw(DynaLoader);
__PACKAGE__->bootstrap($VERSION);
if (Apache->module('Apache::Status')){
Apache::Status->menu_item('AutoIndex' => 'Apache::AutoIndex status', \&status);
}
}
sub dir_index {
my($r) = @_;
my $lang = new Apache::Language ($r);
my %args = $r->args;
my $name = $r->filename;
my $cfg = Apache::ModuleConfig->get($r);
my $subr;
$r->filename("$name/") unless $name =~ m:/$:;
unless (opendir DH, "$name"){
$r->log_reason( __PACKAGE__ . " Can't open directory for index", $r->uri . " (" . $r->filename . ")");
return FORBIDDEN;
}
$nDir++;
if ($cfg->{options} & THUMBNAILS){
( run in 0.576 second using v1.01-cache-2.11-cpan-acf6aa7dc9e )