Apache-FileManager
view release on metacpan or search on metacpan
FileManager.pm view on Meta::CPAN
# ---- If this was called directly via a perl content handler by apache -------
sub handler {
return DECLINED if defined r->param('nossi');
my $package = __PACKAGE__;
my $obj = $package->new();
r->send_http_header('text/html');
r->print("<HTML><HEAD><TITLE>".r->server->server_hostname." File Manager $VERSION</TITLE></HEAD>");
$obj->print();
r->print("</HTML>");
return OK;
}
# ---- Call the view ----------------------------------------------
sub print {
my $o = shift;
my $view = "view_".$$o{'view'};
$o->$view();
}
# ------------ Intialize object -----------------------------------------
sub intialize {
my $o = shift;
$$o{MESSAGE} = "";
$$o{JS} = "";
$o->{EDIT_COLS} ||= 75;
$o->{EDIT_ROWS} ||= 22;
# Is this filemanager rsync capable?
$$o{'RSYNC_TO'} ||= r->dir_config('RSYNC_TO') || undef;
#set some defaults (for warnings sake)
r->param('FILEMANAGER_cmd' => "")
unless defined r->param('FILEMANAGER_cmd');
r->param('FILEMANAGER_arg' => "")
unless defined r->param('FILEMANAGER_arg');
r->param('FILEMANAGER_curr_dir' => "")
unless defined r->param('FILEMANAGER_curr_dir');
r->param('FILEMANAGER_sel_files' => [])
unless defined r->param('FILEMANAGER_sel_files');
#document root
my $dr = r->document_root;
$$o{DR} ||= r->dir_config('DOCUMENT_ROOT') || r->document_root;
#does user defined document root lie inside real doc root?
if ($$o{DR} !~ /^$dr/) {
$$o{DR} = r->document_root;
r->log_error("Warning: Document root changed to $dr. Custom document root must lie inside of real document root.");
}
#verify current working directory
$_ = r->param('FILEMANAGER_curr_dir');
s/\.\.//g; s/^\///; s/\/$//;
my $curr_dir = $_;
#set current directory
if (! chdir $$o{DR}."/$curr_dir") {
chdir $$o{DR};
$curr_dir = "";
}
r->param('FILEMANAGER_curr_dir' => $curr_dir);
#set default view method
$$o{'view'} = "filemanager";
return undef;
}
###############################################################################
# ----- Views --------------------------------------------------------------- #
###############################################################################
#after upload files - view
sub view_post_upload {
my $o = shift;
( run in 0.749 second using v1.01-cache-2.11-cpan-13bb782fe5a )