From 0ca29f920145e675c07495b5c2cade04a0031977 Mon Sep 17 00:00:00 2001 From: Matt Pass Date: Tue, 8 May 2012 07:51:31 +0100 Subject: [PATCH] Additional if check on file datetime for collab edits Wrapped an additional if around the save operations This is to check if we have latest file, allowing collab edits (if we attempt save and don't have latest modified date time, alert user Other minor updates to work with new MDT vars, params, arrays clearstatcache necessary to get latest modified datetime --- lib/file-control.php | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/lib/file-control.php b/lib/file-control.php index 3548372..bfd6b3c 100644 --- a/lib/file-control.php +++ b/lib/file-control.php @@ -138,21 +138,28 @@ if ($_GET['action']=="save") { $saveFile = str_replace("\\","/",$_SERVER['DOCUMENT_ROOT']).$file; $saveFile = str_replace("//","/",$saveFile); if ((file_exists($saveFile) && is_writable($saveFile)) || $_POST['newFileName']!="") { - $fh = fopen($saveFile, 'w') or die("can't open file"); - fwrite($fh, $_POST['contents']); - fclose($fh); + if (filemtime($saveFile)==$_GET['fileMDT']) { + $fh = fopen($saveFile, 'w') or die("can't open file"); + fwrite($fh, $_POST['contents']); + fclose($fh); + clearstatcache(); + echo ''; - if (isset($_POST['newFileName'])&&$_POST['newFileName']!="") { - // Reload file manager & stop CTRL+s being sticky - $fileName = substr($file,strrpos($file,"/")+1); - $fileLoc = substr($file,0,strrpos($file,"/")); - if ($fileLoc=="") {$fileLoc = "/";}; - echo ''; + if (isset($_POST['newFileName'])&&$_POST['newFileName']!="") { + // Reload file manager & stop CTRL+s being sticky + $fileName = substr($file,strrpos($file,"/")+1); + $fileLoc = substr($file,0,strrpos($file,"/")); + if ($fileLoc=="") {$fileLoc = "/";}; + echo ''; + } + if (isset($_POST['newFileName'])&&$_POST['newFileName']!="") { + echo ''; + } + echo ''; + } else { + echo ""; + echo ''; } - if (isset($_POST['newFileName'])&&$_POST['newFileName']!="") { - echo ''; - } - echo ''; } else { echo ""; echo ''; @@ -193,6 +200,7 @@ if (action=="load") { top.ICEcoder.content.contentWindow['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].setLineClass(top.ICEcoder['cMActiveLine'+top.ICEcoder.selectedTab], null); top.ICEcoder['cMActiveLine'+top.ICEcoder.selectedTab] = top.ICEcoder.content.contentWindow['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].setLineClass(0, "cm-s-activeLine"); top.ICEcoder.nextcMInstance++; + top.ICEcoder.openFileMDTs.push(''); top.ICEcoder.loadingFile = false; } @@ -206,7 +214,7 @@ if (action=="load") { } -
+