MySQL-Admin
view release on metacpan or search on metacpan
cgi-bin/Content/files.pl view on Meta::CPAN
: ''
)
. ' ',
a(
{
href =>
"javascript:requestURI('$m_hrSettings->{cgi}{serverName}$ENV{SCRIPT_NAME}?action=FileOpen&file=$esubfolder&orderBy=mTime&desc=$newstate','FileOpen','FileOpen')",
class => "treeviewLink$m_hrSettings->{size}",
align => "left"
},
'Last Modified'
)
. (
$orderby eq 'mTime'
? (
$state
? qq| <img src="/style/$m_sStyle/$m_hrSettings->{size}/mimetypes/up.png" border="0" alt="" title="up" width="16" height="16"/>|
: qq| <img src="/style/$m_sStyle/$m_hrSettings->{size}/mimetypes/down.png" border="0" alt="" title="down"/>|
)
: ''
)
. ' ',
'',
) if $#t >= 0;
my $hf = "javascript:requestURI('$m_hrSettings->{cgi}{serverName}$ENV{SCRIPT_NAME}?action=FileOpen&file=$elinks','FileOpen','FileOpen')";
my $toolbar = div(
{ align => 'left' },
a(
{
onclick =>
"prompt('Enter File Name',function(a){if(a != null )requestURI('$m_hrSettings->{cgi}{serverName}$ENV{SCRIPT_NAME}?action=newFile&file='+encodeURIComponent(a)+'&dir=$esubfolder','newFile','newFile')});",
class => 'toolbarButton'
},
'New File'
)
. ' '
. a(
{
onclick =>
"prompt('Neues Verzeichnis',function(a){if(a != null )requestURI('$m_hrSettings->{cgi}{serverName}$ENV{SCRIPT_NAME}?action=makeDir&file=$esubfolder&d='+encodeURIComponent(a),'makeDir','makeDir')});",
class => 'toolbarButton'
},
'New Directory'
)
. ' '
. (
$^O ne 'MSWin32' ? a(
{
onclick =>
"prompt('Enter Chmod: 0755',function(a){if(a != null ) requestURI('$m_hrSettings->{cgi}{serverName}$ENV{SCRIPT_NAME}?action=chmodFile&file=$esubfolder&chmod='+encodeURIComponent(a),'chmodFile','chmodFile')});",
class => 'toolbarButton'
},
'Chmod',
) : ''
)
. ' '
. (
$^O ne 'MSWin32' ? a(
{
onclick =>
"var a;prompt('Enter User:',function(argv){a= argv;prompt('Enter Group:',function(b){if(a != null && b != null)requestURI('$m_hrSettings->{cgi}{serverName}$ENV{SCRIPT_NAME}?action=chownFile&file=$esubfolder&user='+encodeURIComponent(a)+'&gid='+encod...
class => 'toolbarButton'
},
'Chown',
) : ''
)
);
print
qq(<table class="ShowTables marginTop"><tr class="captionRadius"><td class="captionRadius" colspan="7"><a href="$hf" class="treeviewLink$m_hrSettings->{size}">$links $fname</a></td></tr><tr><td colspan="7" class="toolbar"><div id="toolbarcontent" cla...
. ( $#t >= 0 ? $fileview->Tree( \@t, $m_sStyle ) : '' )
. q(</td></tr></table>);
} ## end sub showDir
sub readFiles {
my @TREEVIEW;
my $dir = shift;
my $edir = uri_escape($dir);
my $rk = shift;
$r++ if ($rk);
if ( -d "$dir" && -r "$dir" ) {
opendir DIR, $dir or warn "files.pl sub readFiles: $dir $!";
foreach my $d ( readdir(DIR) ) {
my $fl = "$dir/$d";
my $sb = stat($fl);
TYPE: {
last TYPE if ( $d =~ /^\.+$/ );
my $efl = uri_escape($fl);
my $href =
"javascript:requestURI('$m_hrSettings->{cgi}{serverName}$ENV{SCRIPT_NAME}?action=FileOpen&file=$efl','FileOpen','FileOpen')";
my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) = localtime( $sb->mtime );
$year += 1900;
$mon = sprintf( "%02d", $mon );
$mday = sprintf( "%02d", $mday );
$min = sprintf( "%02d", $min );
$hour = sprintf( "%02d", $hour );
$sec = sprintf( "%02d", $sec );
my $trdelete = translate('delete');
my $trnew = translate('new');
my $trrename = translate('rename');
if ( -d $fl ) {
push @TREEVIEW, {
text => $d,
href => "$href",
empty => 1,
subtree => [ {}, {} ],
mtime => $sb->mtime,
size => $sb->size,
columns => [
sprintf( "%s", $sb->size ),
( $^O ne 'MSWin32' ? sprintf( "%04o", $sb->mode & 07777 ) : '' ),
( $^O ne 'MSWin32' ? getpwuid( $sb->uid )->name : '' ),
( $^O ne 'MSWin32' ? $sb->gid : '' ),
"$year-$mon-$mday $hour:$min:$sec",
qq|<table cellpading="0" cellspacing="0">
<tr><td class="batch"><a class="treeviewLink16" href="javascript:prompt('Enter Filename:',function(a){if(a != null )requestURI('$m_hrSettings->{cgi}{serverName}$ENV{SCRIPT_NAME}?action=renameFile&file=$efl&newName=...
. (
$^O ne 'MSWin32'
? qq|<td class="batch"><a class="treeviewLink16" href="javascript:prompt('Enter User:',function(c){ a = c; prompt('Enter Group:',function(b){ if(a != null && b != null)requestURI('$m_hrSettings->{cgi}{serverNa...
: ''
)
. (
$^O ne 'MSWin32'
? qq|<td class="batch"><a class="treeviewLink16" href="javascript:prompt('Enter Chmod: 0755',function(a){if(a != null )requestURI('$m_hrSettings->{cgi}{serverName}$ENV{SCRIPT_NAME}?action=chmodFile&file=$efl&ch...
: ''
)
. qq|<td class="batch"><a class="treeviewLink16" href="javascript:confirm2('$trdelete ?',function(a){requestURI('$m_hrSettings->{cgi}{serverName}$ENV{SCRIPT_NAME}?action=deleteFile&file=$efl','deleteFile','delete...
</td></tr></table>|
],
};
last TYPE;
} ## end if ( -d $fl )
if ( -f $fl ) {
my $suffix = $d =~ /\.([^\.]+)$/ ? $1 : '';
push @TREEVIEW, {
text => "$d",
href => "$href",
mtime => $sb->mtime,
size => $sb->size,
columns => [
sprintf( "%s", $sb->size ),
sprintf( "%04o", $sb->mode & 07777 ),
( $^O ne 'MSWin32' ? getpwuid( $sb->uid )->name : '' ),
$sb->gid,
"$year-$mon-$mday $hour:$min:$sec",
qq|
<table cellpading="0" cellspacing="0"><tr>
<td class="batch" style="font-size:14px;"><a class="treeviewLink16" href="javascript:prompt('Enter Filename:',function(a){if(a != null )requestURI('$m_hrSettings->{cgi}{serverName}$ENV{SCRIPT_NAME}?action=renameFile&file=$efl&newName='+...
|
. (
$^O ne 'MSWin32'
? qq|<td class="batch" style="font-size:14px;"><a class="treeviewLink16" href="javascript:prompt('Enter User:',function(c){a=c;prompt('Enter Group:',function(b){if(a != null && b != null)requestURI('$m_hrSetti...
: ''
)
. (
$^O ne 'MSWin32'
? qq|<td class="batch" style="font-size:14px;"><a class="treeviewLink16" href="javascript:prompt('Enter Chmod: 0755',function(a){;if(a != null )requestURI('$m_hrSettings->{cgi}{serverName}$ENV{SCRIPT_NAME}?acti...
: ''
)
. qq|<td class="batch" style="font-size:14px;"><a class="treeviewLink16" href="javascript:confirm2('$trdelete ?',function(a){requestURI('$m_hrSettings->{cgi}{serverName}$ENV{SCRIPT_NAME}?action=deleteFile&file=$e...
</tr></table>|,
],
image => ( -e "$m_hrSettings->{cgi}{DocumentRoot}/style/$m_sStyle/$m_hrSettings->{size}/mimetypes/$suffix.png" )
? "$suffix.png"
: 'link_overlay.png',
};
} ## end if ( -f $fl )
} ## end TYPE:
} ## end foreach my $d ( readdir(DIR...))
$r = 0;
return @TREEVIEW;
} ## end if ( -d "$dir" && -r "$dir")
} ## end sub readFiles
sub FileOpen {
my $f = defined param('file') ? param('file') : shift;
return unless defined $f;
SWITCH: {
if ( -d $f ) {
&showDir($f);
last SWITCH;
} ## end if ( -d $f )
if ( -T $f ) {
my $content = openFile($f);
&showEditor( $f, $content, 'saveFile', $f );
last SWITCH;
} else {
print br() . qq(<div align="center">) . translate('no_ascii_file') . "</div>";
} ## end else [ if ( -T $f ) ]
if ( $f =~ /png|jpg|jpeg|gif$/ && $f =~ m~/var/www/htdocs/(.*)$~ ) {
print br() . qq(<div align="center"><img alt="" src="/$1" align="center"/>) . br() . "</div>";
last SWITCH;
} ## end if ( $f =~ /png|jpg|jpeg|gif$/...)
print br() . translate("UnsopportedFileType") . br();
} ## end SWITCH:
} ## end sub FileOpen
sub saveFile {
my $txt = param('txt');
my $sFile = param('file');
# $txt =~ s/\r\n/\n/g;
my $fh = gensym();
unless ( -d $sFile ) {
open $fh, ">:encoding(UTF-8)", "$sFile.bak" or warn "files.pl::saveFile $/ $! $/ $sFile $/";
flock $fh, 2;
seek $fh, 0, 0;
truncate $fh, 0;
print $fh $txt;
close $fh;
rename "$sFile.bak", $sFile or warn "files.pl::saveFile $/ $! $/" if ( -e "$sFile.bak" );
chmod( 0755, $sFile ) if ( $sFile =~ m?\.pl? && $^O ne 'MSWin32' );
cgi-bin/Content/files.pl view on Meta::CPAN
<pre id="editor"></pre>
<textarea name="txt" id="txt" style="display:none;"></textarea>
</td>
</tr>
<tr>
<td align="right"><input type="submit" name="save" value="Save"/>
<input type="hidden" value="$a" name="action"/>
<input type="hidden" value="$fi" name="file"/>
</td>
</tr>
</tbody>
</table>
</form></div><script>html =1;</script>|;
} ## end sub showEditor
sub newFile {
my $d = defined param('dir') ? param('dir') : '';
my $sFile = param('file');
unless ( -e $sFile ) {
open( IN, ">$d/$sFile" ) or die $!;
close IN;
print translate('newfileadded') if -e $sFile;
} else {
print translate('fileExists ') if -e $sFile;
} ## end else
&showDir($d);
} ## end sub newFile
sub makeDir {
my $d = param('d');
my $sFile = param('file');
unless ( -d "$sFile/$d" ) {
mkdir "$sFile/$d";
print translate('newfileadded') if -d $sFile;
} else {
print translate('fileExists');
} ## end else
&showDir($sFile);
} ## end sub makeDir
sub renameFile {
my $file = param('file');
my $newName = param('newName');
my $dir = $file =~ /(.*\/)[^\/]+$/ ? $1 : '/';
rename $file, "$dir$newName";
&showDir($dir);
} ## end sub renameFile
sub chownFile {
my $user = param('user');
my $uid = getpwnam($user);
my $gid = param('gid');
my $g = getgrnam($gid);
my $sFile = param('file');
$can_chown_giveaway = not sysconf(_PC_CHOWN_RESTRICTED);
print 'Not allowed' unless $can_chown_giveaway;
my $cnt = chown $uid, $g, $sFile;
print 'Ok' if $cnt > 0;
my $d = $sFile =~ m?^(.*)/[^/]+$? ? $1 : $m_hrSettings->{cgi}{bin};
&showDir($d);
} ## end sub chownFile
sub chmodFile {
my $chmod = param('chmod');
my $sFile = param('file');
chmod oct($chmod), $sFile if $chmod =~ /\d\d\d\d/ && -e $sFile;
my $d = $sFile =~ m?^(.*)/[^/]+$? ? $1 : $m_hrSettings->{cgi}{bin};
&showDir($d);
} ## end sub chmodFile
sub deleteFile {
my $sFile = param('file');
unlink $sFile if -e $sFile;
rmdir $sFile if -d $sFile;
my $d = $sFile =~ m?^(.*)/[^/]+$? ? $1 : $m_hrSettings->{cgi}{bin};
&showDir($d);
} ## end sub deleteFile
( run in 1.826 second using v1.01-cache-2.11-cpan-71847e10f99 )