From d256b35a6769ff3295adda982800d26ebca02dda Mon Sep 17 00:00:00 2001 From: Matt Pass Date: Fri, 27 Jul 2012 11:52:40 +0100 Subject: [PATCH] file & root alts, shortURLStarts gone & onLoad docRoot defined in settings.php now so no need to set docRoot swapped for iceRoot in a few areas (there were kind of one and the same before, ugghh) Conditionally prefix file refs with $docRoot and/or $iceRoot if different paths are needed Removed shortURLStarts - too inefficient & problematic Only on winow load begin to createNewCMInstance (In the rare case the files frame loads before the editor frame) Code simplified in a few areas --- lib/file-control.php | 49 ++++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/lib/file-control.php b/lib/file-control.php index 183b8ed..e3fc49c 100644 --- a/lib/file-control.php +++ b/lib/file-control.php @@ -4,7 +4,6 @@ // Establish the full file path reference $file=strClean($_GET['file']); if (isset($_GET['saveType'])) {$saveType = strClean($_GET['saveType']);}; -$docRoot = str_replace("\\","/",$ICEcoder['root']); // Not done the first time we are on the save loop (ie, before the form posting reload) if ($_GET['action']=="load"||$_GET['action']=="newFolder"||$_GET['action']=="rename"||$_GET['action']=="delete"||$_GET['action']=="perms"||isset($_POST['contents'])) { @@ -28,10 +27,10 @@ if ($_GET['action']=="load") { } } if ($_SESSION['userLevel'] == 10 || ($_SESSION['userLevel'] < 10 && $bannedFile==false)) { + if (strpos($file,$docRoot)===false) {$file=$docRoot.$iceRoot.$file;}; echo ''; + echo "top.ICEcoder.shortURL = '".str_replace($docRoot,"",str_replace("|","/",$file))."';"; + echo ''; $loadedFile = file_get_contents($file); echo '","",$loadedFile).''; } else { @@ -41,22 +40,22 @@ if ($_GET['action']=="load") { }; if ($fileType=="image") { - echo ''; + echo ''; }; }; // If we're due to add a new folder... if ($_GET['action']=="newFolder") { if ($_SESSION['userLevel'] > 0) { - mkdir($docRoot.$file, 0707); + mkdir($docRoot.$iceRoot.$file, 0707); // Reload file manager $fileName = substr($file,strrpos($file,"/")+1); $fileLoc = substr($file,0,strrpos($file,"/")); if ($fileLoc=="") {$fileLoc = "/";}; echo ''; } else { - if (!is_writable($docRoot.$file)) { - echo ""; + if (!is_writable($docRoot.$iceRoot.$file)) { + echo ""; } else { echo ''; } @@ -66,13 +65,13 @@ if ($_GET['action']=="newFolder") { // If we're due to rename a file... if ($_GET['action']=="rename") { - if ($_SESSION['userLevel'] > 0 && is_writable($_GET['oldFileName'])) { - rename(strClean($_GET['oldFileName']),$docRoot.$file); + if ($_SESSION['userLevel'] > 0 && is_writable($docRoot.$iceRoot.str_replace("|","/",$_GET['oldFileName']))) { + rename($docRoot.$iceRoot.str_replace("|","/",strClean($_GET['oldFileName'])),$docRoot.$iceRoot.str_replace("|","/",$file)); // Reload file manager $fileName = substr($file,strrpos($file,"/")+1); $fileLoc = substr($file,0,strrpos($file,"/")); if ($fileLoc=="") {$fileLoc = "/";}; - echo ''; + echo ''; } else { if (!is_writable($_GET['oldFileName'])) { echo ""; @@ -85,16 +84,16 @@ if ($_GET['action']=="rename") { // If we're due to change permissions on a file/folder... if ($_GET['action']=="perms") { - if ($_SESSION['userLevel'] > 0 && is_writable($docRoot.$file)) { - chmod($docRoot.$file,octdec(numClean($_GET['perms']))); + if ($_SESSION['userLevel'] > 0 && is_writable($file)) { + chmod($file,octdec(numClean($_GET['perms']))); // Reload file manager $fileName = substr($file,strrpos($file,"/")+1); $fileLoc = substr($file,0,strrpos($file,"/")); if ($fileLoc=="") {$fileLoc = "/";}; echo ''; } else { - if (!is_writable($docRoot.$file)) { - echo ""; + if (!is_writable($file)) { + echo ""; } else { echo ''; } @@ -104,14 +103,15 @@ if ($_GET['action']=="perms") { // If we're due to delete a file... if ($_GET['action']=="delete") { + if (strpos($file,$docRoot)===false) {$file=$docRoot.$iceRoot.$file;}; if ($_SESSION['userLevel'] > 0) { $filesArray = split(";",$file); // May contain more than one file here for ($i=0;$i<=count($filesArray)-1;$i++) { - if (is_writable($docRoot.$filesArray[$i])) { - if (is_dir($docRoot.$filesArray[$i])) { - rrmdir($docRoot.$filesArray[$i]); + if (is_writable($iceRoot.$filesArray[$i])) { + if (is_dir($iceRoot.$filesArray[$i])) { + rrmdir($iceRoot.$filesArray[$i]); } else { - unlink($docRoot.$filesArray[$i]); + unlink($iceRoot.$filesArray[$i]); } // Reload file manager $fileName = substr($file,strrpos($file,"/")+1); @@ -124,8 +124,8 @@ if ($_GET['action']=="delete") { echo ''; } } else { - if (!is_writable($docRoot.$filesArray[$i])) { - echo ""; + if (!is_writable($iceRoot.$filesArray[$i])) { + echo ""; } else { echo ''; } @@ -155,7 +155,8 @@ if ($_GET['action']=="save") { if (isset($_POST['newFileName'])&&$_POST['newFileName']!="") { $file = strClean($_POST['newFileName']); } - $saveFile = $docRoot.$file; + $saveFile = $iceRoot.$file; + if (strpos($saveFile,$docRoot)===false) {$saveFile=$docRoot.$iceRoot.$file;}; $saveFile = str_replace("//","/",$saveFile); if ((file_exists($saveFile) && is_writable($saveFile)) || $_POST['newFileName']!="") { if (filemtime($saveFile)==$_GET['fileMDT']||!(isset($_GET['fileMDT']))) { @@ -229,7 +230,7 @@ if (action=="load") { // Finally, store all data, show tabs etc top.ICEcoder.createNewTab(); top.ICEcoder.cMInstances.push(top.ICEcoder.nextcMInstance); - top.ICEcoder.content.contentWindow.createNewCMInstance(top.ICEcoder.nextcMInstance); + window.onload=top.ICEcoder.content.contentWindow.createNewCMInstance(top.ICEcoder.nextcMInstance); // Set the value & innerHTML of the code textarea to that of our loaded file plus make it visible (it's hidden on _coder's load) top.ICEcoder.switchMode(); @@ -250,7 +251,7 @@ if (action=="load") { if (fileType=="image") { top.document.getElementById('blackMask').style.visibility = "visible"; - top.document.getElementById('mediaContainer').innerHTML = "\" class=\"whiteGlow\" style=\"border: solid 10px #fff; max-width: 700px; max-height: 500px\" onClick=\"return false\">
"; + top.document.getElementById('mediaContainer').innerHTML = "\" class=\"whiteGlow\" style=\"border: solid 10px #fff; max-width: 700px; max-height: 500px\" onClick=\"return false\">
"; } top.ICEcoder.serverMessage();