--- /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
+// Assign file operation variables\r
+$validtypes = array('image','media','file');\r
+$typenow = ((isset($_GET['type']) && in_array($_GET['type'],$validtypes)) ? $_GET['type'] : 'image');\r
+$standalone = ((isset($_GET['feid']) && $_GET['feid']!='') ? true : false);\r
+$foldernow = str_replace(array('../','..\\','./','.\\'),'',($tinybrowser['allowfolders'] && isset($_REQUEST['folder']) ? urldecode($_REQUEST['folder']) : ''));\r
+\r
+if($standalone)\r
+ {\r
+ $passfeid = '&feid='.$_GET['feid']; \r
+ $rowhlightinit = ' onload="rowHighlight();"';\r
+ }\r
+else\r
+ {\r
+ $passfeid = '';\r
+ $rowhlightinit = ''; \r
+ }\r
+\r
+// Assign browsing options\r
+$sortbynow = (isset($_REQUEST['sortby']) ? $_REQUEST['sortby'] : $tinybrowser['order']['by']);\r
+$sorttypenow = (isset($_REQUEST['sorttype']) ? $_REQUEST['sorttype'] : $tinybrowser['order']['type']);\r
+$sorttypeflip = ($sorttypenow == 'asc' ? 'desc' : 'asc'); \r
+$viewtypenow = (isset($_REQUEST['viewtype']) ? $_REQUEST['viewtype'] : $tinybrowser['view']['image']);\r
+$findnow = (isset($_POST['find']) && !empty($_POST['find']) ? $_POST['find'] : false);\r
+$showpagenow = (isset($_REQUEST['showpage']) ? $_REQUEST['showpage'] : 0);\r
+\r
+// Assign url pass variables\r
+$passfolder = '&folder='.urlencode($foldernow);\r
+$passfeid = (isset($_GET['feid']) && $_GET['feid']!='' ? '&feid='.$_GET['feid'] : '');\r
+$passviewtype = '&viewtype='.$viewtypenow;\r
+$passsortby = '&sortby='.$sortbynow.'&sorttype='.$sorttypenow;\r
+\r
+// Assign view, thumbnail and link paths\r
+$browsepath = $tinybrowser['path'][$typenow].$foldernow;\r
+$linkpath = $tinybrowser['link'][$typenow].$foldernow;\r
+$thumbpath = $tinybrowser[$tinybrowser['thumbsrc']][$typenow].$foldernow;\r
+\r
+// Assign sort parameters for column header links\r
+$sortbyget = array();\r
+$sortbyget['name'] = '&viewtype='.$viewtypenow.'&sortby=name';\r
+$sortbyget['size'] = '&viewtype='.$viewtypenow.'&sortby=size'; \r
+$sortbyget['type'] = '&viewtype='.$viewtypenow.'&sortby=type'; \r
+$sortbyget['modified'] = '&viewtype='.$viewtypenow.'&sortby=modified';\r
+$sortbyget['dimensions'] = '&viewtype='.$viewtypenow.'&sortby=dimensions'; \r
+$sortbyget[$sortbynow] .= '&sorttype='.$sorttypeflip;\r
+\r
+// Assign css style for current sort type column\r
+$thclass = array();\r
+$thclass['name'] = '';\r
+$thclass['size'] = ''; \r
+$thclass['type'] = ''; \r
+$thclass['modified'] = '';\r
+$thclass['dimensions'] = ''; \r
+$thclass[$sortbynow] = ' class="'.$sorttypenow.'"';\r
+\r
+// Initalise alert array\r
+$notify = array(\r
+ 'type' => array(),\r
+ 'message' => array()\r
+);\r
+$newthumbqty = 0;\r
+\r
+// read folder contents if folder exists\r
+if(file_exists($tinybrowser['docroot'].$browsepath))\r
+ {\r
+ // Read directory contents and populate $file array\r
+ $dh = opendir($tinybrowser['docroot'].$browsepath);\r
+ $file = array();\r
+ while (($filename = readdir($dh)) !== false)\r
+ {\r
+ // get file extension\r
+ $nameparts = explode('.',$filename);\r
+ $ext = end($nameparts);\r
+\r
+ // filter directories and prohibited file types\r
+ if($filename != '.' && $filename != '..' && !is_dir($tinybrowser['docroot'].$browsepath.$filename) && !in_array($ext, $tinybrowser['prohibited']) && ($typenow == 'file' || strpos(strtolower($tinybrowser['filetype'][$typenow]),strtolower($ext))))\r
+ {\r
+ // search file name if search term entered\r
+ if($findnow) $exists = strpos(strtolower($filename),strtolower($findnow));\r
+ \r
+ // assign file details to array, for all files or those that match search\r
+ if(!$findnow || ($findnow && $exists !== false))\r
+ {\r
+ $file['name'][] = $filename;\r
+ $file['sortname'][] = strtolower($filename);\r
+ $file['modified'][] = filemtime($tinybrowser['docroot'].$browsepath.$filename);\r
+ $file['size'][] = filesize($tinybrowser['docroot'].$browsepath.$filename);\r
+ \r
+ // image specific info or general\r
+ if($typenow=='image' && $imginfo = getimagesize($tinybrowser['docroot'].$browsepath.$filename))\r
+ {\r
+ $file['width'][] = $imginfo[0];\r
+ $file['height'][] = $imginfo[1];\r
+ $file['dimensions'][] = $imginfo[0] + $imginfo[1];\r
+ $file['type'][] = $imginfo['mime'];\r
+ \r
+ // Check a thumbnail exists\r
+ if(!file_exists($tinybrowser['docroot'].$browsepath.'_thumbs/')) createfolder($tinybrowser['docroot'].$browsepath.'_thumbs/',$tinybrowser['unixpermissions']);\r
+ $thumbimg = $tinybrowser['docroot'].$browsepath.'_thumbs/_'.$filename;\r
+ if (!file_exists($thumbimg))\r
+ {\r
+ $nothumbimg = $tinybrowser['docroot'].$browsepath.$filename;\r
+ $mime = getimagesize($nothumbimg);\r
+ $im = convert_image($nothumbimg,$mime['mime']);\r
+ resizeimage($im,$tinybrowser['thumbsize'],$tinybrowser['thumbsize'],$thumbimg,$tinybrowser['thumbquality'],$mime['mime']);\r
+ imagedestroy($im);\r
+ $newthumbqty++;\r
+ }\r
+ }\r
+ else \r
+ {\r
+ $file['width'][] = 'N/A';\r
+ $file['height'][] = 'N/A';\r
+ $file['dimensions'][] = 'N/A';\r
+ $file['type'][] = returnMIMEType($filename);\r
+ }\r
+ } \r
+ }\r
+ }\r
+ closedir($dh);\r
+ }\r
+// create file upload folder\r
+else\r
+ {\r
+ $success = createfolder($tinybrowser['docroot'].$browsepath,$tinybrowser['unixpermissions']);\r
+ if($success)\r
+ {\r
+ if($typenow=='image') createfolder($tinybrowser['docroot'].$browsepath.'_thumbs/',$tinybrowser['unixpermissions']);\r
+ $notify['type'][]='success';\r
+ $notify['message'][]=sprintf(TB_MSGMKDIR, $browsepath);\r
+ }\r
+ else\r
+ {\r
+ $notify['type'][]='error';\r
+ $notify['message'][]=sprintf(TB_MSGMKDIRFAIL, $browsepath);\r
+ }\r
+ }\r
+ \r
+// Assign directory structure to array\r
+$browsedirs=array();\r
+dirtree($browsedirs,$tinybrowser['filetype'][$typenow],$tinybrowser['docroot'],$tinybrowser['path'][$typenow]);\r
+ \r
+// generate alert if new thumbnails created\r
+if($newthumbqty>0)\r
+ {\r
+ $notify['type'][]='info';\r
+ $notify['message'][]=sprintf(TB_MSGNEWTHUMBS, $newthumbqty);\r
+ }\r
+ \r
+\r
+// determine sort order\r
+$sortorder = ($sorttypenow == 'asc' ? SORT_ASC : SORT_DESC);\r
+$num_of_files = (isset($file['name']) ? count($file['name']) : 0);\r
+\r
+if($num_of_files>0)\r
+ {\r
+ // sort files by selected order\r
+ sortfileorder($sortbynow,$sortorder,$file);\r
+ }\r
+\r
+// determine pagination\r
+if($tinybrowser['pagination']>0)\r
+ {\r
+ $showpage_start = ($showpagenow ? ($_REQUEST['showpage']*$tinybrowser['pagination'])-$tinybrowser['pagination'] : 0);\r
+ $showpage_end = $showpage_start+$tinybrowser['pagination'];\r
+ if($showpage_end>$num_of_files) $showpage_end = $num_of_files;\r
+ }\r
+else\r
+ {\r
+ $showpage_start = 0;\r
+ $showpage_end = $num_of_files;\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_BROWSE; ?></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(!$standalone && $tinybrowser['integration']=='tinymce')\r
+ {\r
+ ?><script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>\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?<?php echo substr($passfeid,1); ?>"></script>\r
+</head>\r
+<body<?php echo $rowhlightinit; ?>>\r
+<?php\r
+if(count($notify['type'])>0) alert($notify);\r
+form_open('foldertab',false,'tinybrowser.php','?type='.$typenow.$passviewtype.$passsortby.$passfeid);\r
+?>\r
+<div class="tabs">\r
+<ul>\r
+<li id="browse_tab" class="current"><span><a href="tinybrowser.php?type=<?php echo $typenow.$passfolder.$passfeid; ?>"><?php echo TB_BROWSE; ?></a></span></li><?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><?php\r
+ }\r
+if($tinybrowser['allowedit'] || $tinybrowser['allowdelete'])\r
+ {\r
+ ?><li id="edit_tab"><span><a href="edit.php?type=<?php echo $typenow.$passfolder.$passfeid; ?>"><?php echo TB_EDIT; ?></a></span></li><?php\r
+ }\r
+if($tinybrowser['allowfolders'])\r
+ {\r
+ ?><li id="folders_tab"><span><a href="folders.php?type=<?php echo $typenow.$passfolder.$passfeid; ?>"><?php echo TB_FOLDERS; ?></a></span></li><?php\r
+ }\r
+// Display folder select, if multiple exist\r
+if(count($browsedirs)>1)\r
+ {\r
+ ?><li id="folder_tab" class="right"><span><?php\r
+ form_select($browsedirs,'folder',TB_FOLDERCURR,urlencode($foldernow),true);\r
+ ?></span></li><?php\r
+ } \r
+?>\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_BROWSEFILES; ?></legend>\r
+<?php\r
+form_open('browse','custom','tinybrowser.php','?type='.$typenow.$passfolder.$passfeid);\r
+?>\r
+<div class="pushleft">\r
+<?php\r
+\r
+// Offer view type if file type is image\r
+if($typenow=='image')\r
+ {\r
+ $select = array(\r
+ array('thumb',TB_THUMBS),\r
+ array('detail',TB_DETAILS)\r
+ );\r
+ form_select($select,'viewtype',TB_VIEW,$viewtypenow,true);\r
+ }\r
+ \r
+// Show page select if pagination is set\r
+if($tinybrowser['pagination']>0)\r
+ {\r
+ $pagelimit = ceil($num_of_files/$tinybrowser['pagination'])+1;\r
+ $page = array();\r
+ for($i=1;$i<$pagelimit;$i++)\r
+ {\r
+ $page[] = array($i,TB_PAGE.' '.$i);\r
+ }\r
+ if($i>2) form_select($page,'showpage',TB_SHOW,$showpagenow,true);\r
+ }\r
+?></div><div class="pushright"><?php\r
+\r
+form_hidden_input('sortby',$sortbynow);\r
+form_hidden_input('sorttype',$sorttypenow);\r
+form_text_input('find',false,$findnow,25,50);\r
+form_submit_button('search',TB_SEARCH,'');\r
+\r
+?></div>\r
+<?php\r
+\r
+// if image show dimensions header\r
+if($typenow=='image')\r
+ {\r
+ $imagehead = '<th><a href="?type='.$typenow.$passfolder.$passfeid.$sortbyget['dimensions'].'"'.$thclass['dimensions'].'>'.TB_DIMENSIONS.'</a></th>';\r
+ }\r
+else $imagehead = '';\r
+\r
+echo '<div class="tabularwrapper"><table class="browse">'\r
+ .'<tr><th><a href="?type='.$typenow.$passfolder.$passfeid.$sortbyget['name'].'"'.$thclass['name'].'>'.TB_FILENAME.'</a></th>'\r
+ .'<th><a href="?type='.$typenow.$passfolder.$passfeid.$sortbyget['size'].'"'.$thclass['size'].'>'.TB_SIZE.'</a></th>'\r
+ .$imagehead\r
+ .'<th><a href="?type='.$typenow.$passfolder.$passfeid.$sortbyget['type'].'"'.$thclass['type'].'>'.TB_TYPE.'</th>'\r
+ .'<th><a href="?type='.$typenow.$passfolder.$passfeid.$sortbyget['modified'].'"'.$thclass['modified'].'>'.TB_DATE.'</th></tr>';\r
+\r
+// show image thumbnails, unless detail view is selected\r
+if($typenow=='image' && $viewtypenow != 'detail')\r
+ {\r
+ echo '</table></div>';\r
+\r
+ for($i=$showpage_start;$i<$showpage_end;$i++)\r
+ {\r
+ echo '<div class="img-browser"><a href="#" onclick="selectURL(\''.$linkpath.$file['name'][$i].'\');" title="'.TB_FILENAME.': '.$file['name'][$i]\r
+ .' '.TB_DIMENSIONS.': '.$file['width'][$i].' x '.$file['height'][$i]\r
+ .' '.TB_DATE.': '.date($tinybrowser['dateformat'],$file['modified'][$i])\r
+ .' '.TB_TYPE.': '.$file['type'][$i]\r
+ .' '.TB_SIZE.': '.bytestostring($file['size'][$i],1)\r
+ .'"><img src="'.$thumbpath.'_thumbs/_'.$file['name'][$i]\r
+ .'" /><div class="filename">'.$file['name'][$i].'</div></a></div>';\r
+ }\r
+ }\r
+else\r
+ {\r
+ for($i=$showpage_start;$i<$showpage_end;$i++)\r
+ {\r
+ $alt = (IsOdd($i) ? 'r1' : 'r0');\r
+ echo '<tr class="'.$alt.'">';\r
+ if($typenow=='image') echo '<td><a class="imghover" href="#" onclick="selectURL(\''.$linkpath.$file['name'][$i].'\');" title="'.$file['name'][$i].'"><img src="'.$thumbpath.'_thumbs/_'.$file['name'][$i].'" alt="" />'.truncate_text($file['name'][$i],30).'</a></td>';\r
+ else echo '<td><a href="#" onclick="selectURL(\''.$linkpath.$file['name'][$i].'\');" title="'.$file['name'][$i].'">'.truncate_text($file['name'][$i],30).'</a></td>';\r
+ echo '<td>'.bytestostring($file['size'][$i],1).'</td>';\r
+ if($typenow=='image') echo '<td>'.$file['width'][$i].' x '.$file['height'][$i].'</td>'; \r
+ echo '<td>'.$file['type'][$i].'</td>'\r
+ .'<td>'.date($tinybrowser['dateformat'],$file['modified'][$i]).'</td></tr>'."\n";\r
+ }\r
+ echo '</table></div>';\r
+ }\r
+?>\r
+</fieldset></div></div>\r
+<form name="passform"><input name = "fileurl" type="hidden" value= "" /></form>\r
+</body>\r
+</html>\r