diff --git a/plugins/ktcore/admin/manageCleanup.php b/plugins/ktcore/admin/manageCleanup.php index 95ef455..1491e83 100755 --- a/plugins/ktcore/admin/manageCleanup.php +++ b/plugins/ktcore/admin/manageCleanup.php @@ -6,31 +6,31 @@ * Document Management Made Simple * Copyright (C) 2008, 2009 KnowledgeTree Inc. * Portions copyright The Jam Warehouse Software (Pty) Limited - * + * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License version 3 as published by the * Free Software Foundation. - * + * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. - * + * * You should have received a copy of the GNU General Public License * along with this program. If not, see . - * - * You can contact KnowledgeTree Inc., PO Box 7775 #87847, San Francisco, + * + * You can contact KnowledgeTree Inc., PO Box 7775 #87847, San Francisco, * California 94120-7775, or email info@knowledgetree.com. - * + * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU General Public License version 3. - * + * * In accordance with Section 7(b) of the GNU General Public License version 3, * these Appropriate Legal Notices must retain the display of the "Powered by - * KnowledgeTree" logo and retain the original copyright notice. If the display of the + * KnowledgeTree" logo and retain the original copyright notice. If the display of the * logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices - * must display the words "Powered by KnowledgeTree" and retain the original + * must display the words "Powered by KnowledgeTree" and retain the original * copyright notice. * Contributor( s): ______________________________________ * @@ -53,10 +53,12 @@ class ManageCleanupDispatcher extends KTAdminDispatcher { $this->aIgnore = array( '.', '..', 'CVS', + '.DS_Store', '.empty', '.htaccess', '.cvsignore', '.svn', + '.git' ); $oConfig =& KTConfig::getSingleton(); @@ -67,19 +69,19 @@ class ManageCleanupDispatcher extends KTAdminDispatcher { function do_main() { - + $oForm = new KTForm; $oForm->setOptions(array( 'label' => _kt('Document Storage Verification'), 'description' => _kt('This process performs a check to see if the documents in your repositories all are stored on the back-end storage (usually on disk). This process can take many minutes or hours depending on the size of your repository.'), 'submit_label' => _kt('verify document storage'), - 'action' => 'verify', + 'action' => 'verify', )); - - return $oForm->render(); + + return $oForm->render(); } - - + + function do_verify() { global $aFoldersToRemove; global $aFilesToRemove; @@ -115,7 +117,7 @@ class ManageCleanupDispatcher extends KTAdminDispatcher { print "Could not open directory: $fullpath\n"; } while (($filename = readdir($dh)) !== false) { - if (in_array($filename, $this->aIgnore)) { continue; } + if (in_array($filename, $this->aIgnore)) { continue; } $subrelpath = sprintf("%s/%s", $path, $filename); if (substr($subrelpath, 0, 1) == "/") { $subrelpath = substr($subrelpath, 1); @@ -125,7 +127,12 @@ class ManageCleanupDispatcher extends KTAdminDispatcher { $this->checkDirectory($subrelpath); } if (is_file($subfullpath)) { - $this->checkFile($subrelpath); + // Check for backup file + if(substr($subrelpath, -4) == '.bak'){ + $this->checkBackUpFile($subrelpath, $filename); + }else{ + $this->checkFile($subrelpath); + } } } } @@ -140,6 +147,18 @@ class ManageCleanupDispatcher extends KTAdminDispatcher { } } + function checkBackUpFile($path, $filename) { + $pos = strpos($filename, '.bak'); + $doc = substr($filename, 0, $pos); + + $oDocument = Document::get($doc); + + if($oDocument instanceof Document || $oDocument instanceof DocumentProxy){ + return; + } + $this->aFilesToRemove[] = $path; + } + function checkRepoDocument($oDocument) { global $aRepoDocumentProblems; $aDCVs = KTDocumentContentVersion::getByDocument($oDocument);