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