View source
<?php
require_once 'config_tinybrowser.php';
if (isset($tinybrowser['language']) && file_exists('langs/' . $tinybrowser['language'] . '.php')) {
require_once 'langs/' . $tinybrowser['language'] . '.php';
}
else {
require_once 'langs/en.php';
}
require_once 'fns_tinybrowser.php';
if (session_id() != '') {
if (!isset($_SESSION[$tinybrowser['sessioncheck']])) {
echo TB_DENIED;
exit;
}
}
if (!$tinybrowser['allowfolders']) {
echo TB_FODENIED;
exit;
}
$validtypes = array(
'image',
'media',
'file',
);
$typenow = isset($_GET['type']) && in_array($_GET['type'], $validtypes) ? $_GET['type'] : 'image';
$foldernow = str_replace(array(
'../',
'..\\',
'./',
'.\\',
), '', $tinybrowser['allowfolders'] && isset($_REQUEST['folder']) && !empty($_REQUEST['folder']) ? urldecode($_REQUEST['folder']) : '');
$dirpath = $tinybrowser['path'][$typenow];
if (!isset($_REQUEST['folder']) && isset($_SESSION['folder'][$typenow])) {
$foldernow = $_SESSION['folder'][$typenow];
}
if (isset($_REQUEST['folder'])) {
$_SESSION['folder'][$typenow] = $foldernow;
}
$passfolder = '&folder=' . urlencode($foldernow);
$passfeid = isset($_GET['feid']) && !empty($_GET['feid']) ? '&feid=' . $_GET['feid'] : '';
$actionnow = isset($_POST['editaction']) ? $_POST['editaction'] : 'create';
$notify = array(
'type' => array(),
'message' => array(),
);
$createqty = 0;
$deleteqty = 0;
$renameqty = 0;
$errorqty = 0;
if (isset($_POST['createfolder'])) {
foreach ($_POST['createfolder'] as $parent => $newfolder) {
if ($newfolder != '') {
$createthisfolder = $tinybrowser['docroot'] . $dirpath . urldecode($_POST['actionfolder'][$parent]) . clean_filename($newfolder);
if (!file_exists($createthisfolder) && createfolder($createthisfolder, $tinybrowser['unixpermissions'])) {
$createqty++;
}
else {
$errorqty++;
}
if ($typenow == 'image') {
createfolder($createthisfolder . '/_thumbs/', $tinybrowser['unixpermissions']);
}
}
}
}
if (isset($_POST['deletefolder'])) {
foreach ($_POST['deletefolder'] as $delthis => $val) {
if ($typenow == 'image') {
$delthisthumbdir = $tinybrowser['docroot'] . $dirpath . urldecode($_POST['actionfolder'][$delthis]) . '_thumbs/';
if (is_dir($delthisthumbdir)) {
rmdir($delthisthumbdir);
}
}
$delthisdir = $tinybrowser['docroot'] . $dirpath . urldecode($_POST['actionfolder'][$delthis]);
if (is_dir($delthisdir) && rmdir($delthisdir)) {
$deleteqty++;
}
else {
$errorqty++;
}
if ($foldernow == urldecode($_POST['actionfolder'][$delthis])) {
$foldernow = '';
$passfolder = '';
}
}
}
if (isset($_POST['renamefolder'])) {
foreach ($_POST['renamefolder'] as $namethis => $newname) {
$urlparts = explode('/', rtrim(urldecode($_POST['actionfolder'][$namethis]), '/'));
if (array_pop($urlparts) != $newname) {
$namethisfolderfrom = $tinybrowser['docroot'] . $dirpath . urldecode($_POST['actionfolder'][$namethis]);
$renameurl = implode('/', $urlparts) . '/' . clean_filename($newname) . '/';
$namethisfolderto = $tinybrowser['docroot'] . $dirpath . $renameurl;
if (is_dir($namethisfolderfrom) && rename($namethisfolderfrom, $namethisfolderto)) {
$renameqty++;
}
else {
$errorqty++;
}
if ($foldernow == urldecode($_POST['actionfolder'][$namethis])) {
$foldernow = ltrim($renameurl, '/');
$passfolder = '&folder=' . urlencode(ltrim($renameurl, '/'));
}
}
}
}
$dirs = array();
dirtree($dirs, $tinybrowser['filetype'][$typenow], $tinybrowser['docroot'], $tinybrowser['path'][$typenow]);
if ($createqty > 0) {
$notify['type'][] = 'success';
$notify['message'][] = sprintf(TB_MSGCREATE, $createqty);
}
elseif ($deleteqty > 0) {
$notify['type'][] = 'success';
$notify['message'][] = sprintf(TB_MSGDELETE, $deleteqty);
}
elseif ($renameqty > 0) {
$notify['type'][] = 'success';
$notify['message'][] = sprintf(TB_MSGRENAME, $renameqty);
}
if ($errorqty > 0) {
$notify['type'][] = 'failure';
$notify['message'][] = sprintf(TB_MSGEDITERR, $errorqty);
}
$num_of_folders = isset($dirs) ? count($dirs) : 0;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>TinyBrowser :: <?php
echo TB_FOLDERS;
?></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Pragma" content="no-cache" />
<?php
if ($passfeid == '' && $tinybrowser['integration'] == 'tinymce') {
?><link rel="stylesheet" type="text/css" media="all" href="<?php
echo $tinybrowser['tinymcecss'];
?>" /><?php
}
else {
?><link rel="stylesheet" type="text/css" media="all" href="css/stylefull_tinybrowser.css" /><?php
}
?>
<link rel="stylesheet" type="text/css" media="all" href="css/style_tinybrowser.css.php" />
<script language="javascript" type="text/javascript" src="js/tinybrowser.js.php"></script>
</head>
<body onload="rowHighlight();">
<?php
if (count($notify['type']) > 0) {
alert($notify);
}
form_open('foldertab', false, 'folders.php', '?type=' . $typenow . $passfeid);
?>
<div class="tabs">
<ul>
<li id="browse_tab"><span><a href="tinybrowser.php?type=<?php
echo $typenow . $passfolder . $passfeid;
?>"><?php
echo TB_BROWSE;
?></a></span></li>
<?php
if ($tinybrowser['allowupload']) {
?><li id="upload_tab"><span><a href="upload.php?type=<?php
echo $typenow . $passfolder . $passfeid;
?>"><?php
echo TB_UPLOAD;
?></a></span></li>
<?php
}
if ($tinybrowser['allowedit'] || $tinybrowser['allowdelete']) {
?><li id="edit_tab"><span><a href="edit.php?type=<?php
echo $typenow . $passfolder . $passfeid;
?>"><?php
echo TB_EDIT;
?></a></span></li>
<?php
}
?><li id="folders_tab" class="current"><span><a href="folders.php?type=<?php
echo $typenow . $passfolder . $passfeid;
?>"><?php
echo TB_FOLDERS;
?></a></span></li>
</ul>
</div>
</form>
<div class="panel_wrapper">
<div id="general_panel" class="panel currentmod">
<fieldset>
<legend><?php
echo TB_FOLDERS;
?></legend>
<?php
form_open('edit', 'custom', 'folders.php', '?type=' . $typenow . $passfolder . $passfeid);
?>
<div class="pushleft">
<?php
$select = array();
if ($tinybrowser['allowfolders']) {
$select[] = array(
'create',
TB_CREATE,
);
}
if ($tinybrowser['allowdelete']) {
$select[] = array(
'delete',
TB_DELETE,
);
}
if ($tinybrowser['allowedit']) {
$select[] = array(
'rename',
TB_RENAME,
);
}
form_select($select, 'editaction', TB_ACTION, $actionnow, true);
?></form></div><?php
form_open('actionform', 'custom', 'folders.php', '?type=' . $typenow . $passfolder . $passfeid);
if ($actionnow == 'move') {
?><div class="pushleft"><?php
form_select($editdirs, 'destination', TB_FOLDERDEST, urlencode($foldernow), false);
?></div><?php
}
switch ($actionnow) {
case 'delete':
$actionhead = TB_DELETE;
break;
case 'rename':
$actionhead = TB_RENAME;
break;
case 'create':
$actionhead = TB_CREATE;
break;
default:
}
?><div class="tabularwrapper"><table class="browse"><tr>
<th class="nohvr"><?php
echo TB_FOLDERNAME;
?></th>
<th class="nohvr"><?php
echo TB_FILES;
?></th>
<th class="nohvr"><?php
echo TB_DATE;
?></th>
<th class="nohvr"><?php
echo $actionhead;
?></th></tr>
<?php
for ($i = 0; $i < $num_of_folders; $i++) {
$disable = $i == 0 ? true : false;
$alt = IsOdd($i) ? 'r1' : 'r0';
echo '<tr class="' . $alt . '">';
echo '<td>' . $dirs[$i][2] . '</td>';
echo '<td>' . $dirs[$i][4] . '</td><td>' . date($tinybrowser['dateformat'], $dirs[$i][5]) . '</td>' . '<td>';
form_hidden_input('actionfolder[' . $i . ']', $dirs[$i][0]);
switch ($actionnow) {
case 'create':
echo '→ ';
form_text_input('createfolder[' . $i . ']', false, '', 30, 120);
break;
case 'delete':
$disabledel = $dirs[$i][4] > 0 ? ' DISABLED' : '';
if (!$disable) {
echo '<input class="del" type="checkbox" name="deletefolder[' . $i . ']" value="1"' . $disabledel . ' />';
}
break;
case 'rename':
if (!$disable) {
form_text_input('renamefolder[' . $i . ']', false, $dirs[$i][3], 30, 120);
}
break;
default:
}
echo "</td></tr>\n";
}
echo "</table></div>\n" . '<div class="pushright">';
if ($tinybrowser['allowdelete'] || $tinybrowser['allowedit']) {
form_hidden_input('editaction', $actionnow);
form_submit_button('commit', $actionhead . ' ' . TB_FOLDERS, 'edit');
}
?>
</div></fieldset></div></div>
</body>
</html>