📄 webftppages.pm
字号:
sub uploadScreen { my $self = shift; \qq`<HTML> <HEAD> <TITLE>Web-FTP $self->{VERSION}: $self->{conf}{lang}{file_upload} $self->{HOSTNAME}</TITLE> </HEAD> <BODY BGCOLOR="$self->{conf}{backgroundcolor}" TEXT="$self->{conf}{textcolor}" VLINK="$self->{conf}{visitedlinkcolor}" LINK="$self->{conf}{linkcolor}"> <H3>web-FTP $self->{VERSION}: $self->{conf}{lang}{file_upload} $self->{HOSTNAME}:$self->{CURRENTDIR}</H3> <FORM ENCTYPE="multipart/form-data" ACTION="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/POST" METHOD=POST> <B>$self->{conf}{lang}{file}: </B><INPUT TYPE=FILE NAME="uploaded_file" SIZE=50> <BR> <B>$self->{conf}{lang}{file}: </B><INPUT TYPE=FILE NAME="uploaded_file" SIZE=50> <BR> <B>$self->{conf}{lang}{file}: </B><INPUT TYPE=FILE NAME="uploaded_file" SIZE=50> <BR> <B>$self->{conf}{lang}{file}: </B><INPUT TYPE=FILE NAME="uploaded_file" SIZE=50> <BR> <B>$self->{conf}{lang}{file}: </B><INPUT TYPE=FILE NAME="uploaded_file" SIZE=50> <BR> <B>$self->{conf}{lang}{file}: </B><INPUT TYPE=FILE NAME="uploaded_file" SIZE=50> <BR> <B>$self->{conf}{lang}{file}: </B><INPUT TYPE=FILE NAME="uploaded_file" SIZE=50> <BR> <B>$self->{conf}{lang}{file}: </B><INPUT TYPE=FILE NAME="uploaded_file" SIZE=50> <BR> <B>$self->{conf}{lang}{file}: </B><INPUT TYPE=FILE NAME="uploaded_file" SIZE=50> <BR> <B>$self->{conf}{lang}{file}: </B><INPUT TYPE=FILE NAME="uploaded_file" SIZE=50> <BR> <INPUT TYPE=SUBMIT NAME="action" VALUE="$self->{conf}{lang}{upload}"> <A HREF="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/MAIN"><FONT SIZE=+2>$self->{conf}{lang}{cancel}</FONT></A> </FORM> </BODY></HTML>`}sub HEAD { my $self = shift; my $head = qq`<H2><A TARGET="_top" HREF="http://www.web-ftp.org">Web-FTP</A> $self->{VERSION} - $self->{conf}{lang}{connected_to} <B>$self->{HOSTNAME}</B></H2>`; if(-f qq'$self->{conf}{base}/templates/header') { open(D, qq'$self->{conf}{base}/templates/header') or die $!; local $/; $head = <D>; close D; return \$head if $head =~ /<[Hh][Tt][Mm][Ll]\s*>/; } \qq`<HTML><BODY BGCOLOR="$self->{conf}{backgroundcolor}" TEXT="$self->{conf}{textcolor}" VLINK="$self->{conf}{visitedlinkcolor}" LINK="$self->{conf}{linkcolor}">$head</BODY></HTML>`;}sub FOOT { my $self = shift; \qq`<HTML><BODY BGCOLOR="$self->{conf}{backgroundcolor}" TEXT="$self->{conf}{textcolor}" VLINK="$self->{conf}{visitedlinkcolor}" LINK="$self->{conf}{linkcolor}">${\($self->credits())}</BODY></HTML>`;}sub credits { my $self = shift; if(-f qq'$self->{conf}{base}/templates/footer') { open(D, qq'$self->{conf}{base}/templates/footer') or die $!; local $/; my $foot = <D>; close D; return $foot; } qq`<TABLE CELLPADDING=0 CELLSPACING=0 WIDTH="100%"><TR><TD>$self->{conf}{lang}{maintained_by} <A HREF="http://www.web-ftp.org/contact.html">Anthony Ball</A> </TD><TD ALIGN=RIGHT>© 2002,2003</TD></TR></TABLE>`;}sub FILES { my $self = shift; my $OUT = qq`<HTML> <BODY BGCOLOR="$self->{conf}{backgroundcolor}" TEXT="$self->{conf}{textcolor}" VLINK="$self->{conf}{visitedlinkcolor}" LINK="$self->{conf}{linkcolor}"><BASEFONT SIZE=2><FORM TARGET=MAIN ENCTYPE="multipart/form-data" ACTION="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/POST" METHOD=POST><INPUT TYPE=HIDDEN NAME=DirectoriesList VALUE=""><INPUT TYPE=HIDDEN NAME=action VALUE=""><INPUT TYPE=HIDDEN NAME=tarname VALUE=""><SCRIPT LANGUAGE=JAVASCRIPT>function tag() { for(i=0; i<document.forms[0].length;i++) { foo = document.forms[0].elements[i]; if(foo.name == 'Files') { if(foo.checked) { foo.checked = 0; } else { foo.checked = 1; } } }}</SCRIPT><TABLE CELLPADDING=3 CELLSPACING=0 BORDER=0 WIDTH="100%">`; $OUT .= qq`<TH><A HREF="javascript:tag()">$self->{conf}{lang}{tag_title}</A></TH>` unless $self->{conf}{hidetag}; $OUT .= qq`<TH>$self->{conf}{lang}{file_title}</TH>`; $OUT .= qq`<TH>$self->{conf}{lang}{last_mod_title}</TH>` unless $self->{conf}{hidelastmod}; $OUT .= qq`<TH>$self->{conf}{lang}{size_title}</TH>` unless $self->{conf}{hidesize}; $OUT .= qq`<TH>$self->{conf}{lang}{owner_group_title}</TH>` unless $self->{conf}{hideowngrp}; $OUT .= qq`<TH>$self->{conf}{lang}{permissions_title}</TH>` unless $self->{conf}{hidepermissions}; $OUT .= qq`${\(join '', @{$self->{list}{FileEntries}})}</TABLE></FORM></BODY></HTML>`; return \$OUT;}sub DIRS { my $self = shift; my $OUT = qq`<HTML> <BODY BGCOLOR="$self->{conf}{backgroundcolor}" TEXT="$self->{conf}{textcolor}" VLINK="$self->{conf}{visitedlinkcolor}" LINK="$self->{conf}{linkcolor}"><BASEFONT SIZE=2><FORM TARGET=MAIN ENCTYPE="multipart/form-data" ACTION="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/POST" METHOD=POST><INPUT TYPE=HIDDEN NAME=ACTION VALUE=""><SCRIPT LANGUAGE=JAVASCRIPT>function tag() { for(i=0; i<document.forms[0].length;i++) { foo = document.forms[0].elements[i]; if(foo.name == 'Directories') { if(foo.checked) { foo.checked = 0; } else { foo.checked = 1; } } }}</SCRIPT><TABLE CELLPADDING=3 CELLSPACING=0 BORDER=0 WIDTH="100%">`; $OUT .= qq`<TH><A HREF="javascript:tag()">$self->{conf}{lang}{tag_title}</A></TH>` unless $self->{conf}{hidetag}; $OUT .= qq`<TH>$self->{conf}{lang}{dir_title}</TH>`; $OUT .= qq`<TH>$self->{conf}{lang}{last_mod_title}</TH>` unless $self->{conf}{hidelastmod}; $OUT .= qq`<TH>$self->{conf}{lang}{size_title}</TH>` unless $self->{conf}{hidesize}; $OUT .= qq`<TH>$self->{conf}{lang}{owner_group_title}</TH>` unless $self->{conf}{hideowngrp}; $OUT .= qq`<TH>$self->{conf}{lang}{permissions_title}</TH>` unless $self->{conf}{hidepermissions}; $OUT .= qq`${\(join '', @{$self->{list}{DirEntries}})}</TABLE></FORM></BODY></HTML>`; return \$OUT;}sub MAIN { my $self = shift; \qq`<HTML><HEAD><FRAMESET COLS="*" ROWS="$self->{conf}{dirsframesize},$self->{conf}{infoframesize},$self->{conf}{fileframesize}"><FRAME NAME=DIRS SRC="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/DIRS"><FRAME MARGINHEIGHT=0 MARGINWIDTH=0 NAME=PWD SRC="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/INFO"><FRAME NAME=FILES SRC="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/FILES"></FRAMESET></HTML>`;#<FRAME NAME=DIRSINFO SRC="$self->{conf}{SCRIPT}/DIRSINFO">}sub DIRSINFO { my $self = shift; \qq`<HTML><HEAD><FRAMESET COLS="*" ROWS="$self->{conf}{dirsframesize},$self->{conf}{infoframesize}"><FRAME NAME=DIRS SRC="$self->{conf}{SCRIPT}/DIRS"><FRAME MARGINHEIGHT=0 MARGINWIDTH=0 NAME=PWD SRC="$self->{conf}{SCRIPT}/INFO"></FRAMESET></HTML>`;}sub INFO { my $self = shift; my($dsf,$link); for(split '/', $self->{CURRENTDIR}) { $dsf .= "$_/"; $link .= qq`<A TARGET=MAIN HREF="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/CDTO?$dsf">$_/</A>`; } $link ||= '/'; \qq`<HTML><BODY BGCOLOR="$self->{conf}{backgroundcolor}" TEXT="$self->{conf}{textcolor}" VLINK="$self->{conf}{visitedlinkcolor}" LINK="$self->{conf}{linkcolor}"><TABLE WIDTH="100%"><TR><TD>$self->{conf}{lang}{index_of} $link</TD><TD ALIGN=CENTER><A TARGET=MAIN HREF="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/CDTO?%2e">$self->{conf}{lang}{refresh}</A><A HREF="#chdir">$self->{conf}{lang}{change_dir}</A></TD><TD ALIGN=RIGHT><A TARGET=MAIN HREF="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/CDTO?%2e%2e">$self->{conf}{lang}{parent_dir}</A></TD></TR><TR><TD COLSPAN=3 ALIGN=CENTER> <P> <P> <P> <FORM TARGET=MAIN ENCTYPE="multipart/form-data" ACTION="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/POST" METHOD=POST> <B>$self->{conf}{lang}{directory}:</B><A NAME="chdir"> <INPUT NAME="Directories" SIZE=40><INPUT TYPE=SUBMIT VALUE="$self->{conf}{lang}{go}"></A> <INPUT TYPE=HIDDEN NAME="action" VALUE="chdir"> </FORM></TABLE>`;}sub NAVBAR { my $self = $_[0]; my($OUT); $OUT = qq`<HTML><BODY BGCOLOR="$self->{conf}{backgroundcolor}" TEXT="$self->{conf}{textcolor}" VLINK="$self->{conf}{visitedlinkcolor}" LINK="$self->{conf}{linkcolor}"><SCRIPT LANGUAGE=JAVASCRIPT>function dtt(what) { var i,dcnt,fcnt,dirs,foo,tarname; dirs = ''; dcnt = fcnt = 0; for(i=0; i<parent.MAIN.FILES.document.forms[0].length;i++) { foo = parent.MAIN.FILES.document.forms[0].elements[i]; if(foo.name == 'Files' && foo.checked) { fcnt++; } } for(i=0; i<parent.MAIN.DIRS.document.forms[0].length;i++) { foo = parent.MAIN.DIRS.document.forms[0].elements[i]; if(foo.name == 'Directories' && foo.checked) { dcnt++; if(dirs) dirs += "\\n"; dirs += foo.value; } } if(what == 'download' && (fcnt > 1 || dcnt > 0)) { tarname = prompt('$self->{conf}{lang}{download_multiple_help}','$self->{conf}{lang}{download_multiple_default_name}'); } if(what == 'download' && !(fcnt+dcnt)) { alert('$self->{conf}{lang}{tag_a_directory}'); return; } if(dcnt + fcnt) { parent.MAIN.FILES.document.forms[0].DirectoriesList.value = dirs; parent.MAIN.FILES.document.forms[0].action.value = what; parent.MAIN.FILES.document.forms[0].tarname.value = tarname; parent.MAIN.FILES.document.forms[0].submit(); } else { alert('$self->{conf}{lang}{tag_a_file}'); }}function edit(editor) { var a,b,i; a = parent.MAIN.FILES.document.forms[0]; if(a.Files.checked) { b = a.Files.value; } for (i = 0; i<a.Files.length; i++) { if(a.Files[i].checked) { b = a.Files[i].value; break; } } if(b) { var w = window.open('$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/EDIT?file='+b+'&editor='+editor, 'EDIT', 'toolbar=no,menubar=no,location=no,resizable=yes'); w.focus(); } else { alert('$self->{conf}{lang}{tag_for_edit}'); } }function site() { var foo,i; var list = ''; for(i=0; i<parent.MAIN.FILES.document.forms[0].length;i++) { foo = parent.MAIN.FILES.document.forms[0].elements[i]; if(foo.name == 'Files' && foo.checked) { list += " " + foo.value; } } for(i=0; i<parent.MAIN.DIRS.document.forms[0].length;i++) { foo = parent.MAIN.DIRS.document.forms[0].elements[i]; if(foo.name == 'Directories' && foo.checked) { list += " " + foo.value; } } parent.MAIN.FILES.document.forms[0].DirectoriesList.value = prompt('$self->{conf}{lang}{enter_for_site}',unescape(list)); parent.MAIN.FILES.document.forms[0].action.value = 'site'; parent.MAIN.FILES.document.forms[0].submit();}function messages() { window.open('$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/MESSAGES','MESSAGES', 'scrollbars=yes,toolbar=no,menubar=no,location=no,resizable=yes,width=400,height=400');}function newfile(editor) { var a = prompt('$self->{conf}{lang}{new_file_name}', ''); if(a) window.open('$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/EDIT?file='+a+'&editor='+editor, 'EDIT');}</SCRIPT><TABLE CELLSPACING=2 CELLPADDING=3 BGCOLOR="$self->{conf}{buttoncolor}">`; $OUT .= qq`<TR><TD><FONT SIZE="-1"><A HREF="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/MKDIR" TARGET=MAIN>$self->{conf}{lang}{mkdir}</A></TD></TR>` unless $self->{conf}{hidemkdir}; $OUT .= qq`<TR><TD><FONT SIZE="-1"><A HREF="$self->{conf}{SCRIPT}$self->{conf}{COOKIE}/PUT" TARGET=MAIN>$self->{conf}{lang}{upload}</A></TD></TR>` unless $self->{conf}{hideupload}; $OUT .= qq`<TR><TD><FONT SIZE="-1"><A HREF="javascript:dtt('download')">$self->{conf}{lang}{download}</A></TD></TR>` unless $self->{conf}{hidedownload}; $OUT .= qq`<TR><TD><FONT SIZE="-1"><A HREF="javascript:dtt('permissions')">$self->{conf}{lang}{permissions}</A></TD></TR>` unless $self->{conf}{hidepermbutton}; $OUT .= qq`<TR><TD><FONT SIZE="-1"><A HREF="javascript:dtt('delete')">$self->{conf}{lang}{delete}</A></TD></TR>` unless $self->{conf}{hidedelete}; $OUT .= qq`<TR><TD><FONT SIZE="-1"><A HREF="javascript:dtt('move')">$self->{conf}{lang}{move}</A></TD></TR>` unless $self->{conf}{hidemove};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -