<?php // MyDMS. Document Management System // Copyright (C) 2002-2005 Markus Westphal // Copyright (C) 2006-2008 Malcolm Cowe // Copyright (C) 2010 Matteo Lucarelli // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // 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, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. include("../inc/inc.Settings.php"); include("../inc/inc.AccessUtils.php"); include("../inc/inc.ClassAccess.php"); include("../inc/inc.ClassDocument.php"); include("../inc/inc.ClassFolder.php"); include("../inc/inc.ClassGroup.php"); include("../inc/inc.ClassUser.php"); include("../inc/inc.DBAccess.php"); include("../inc/inc.FileUtils.php"); include("../inc/inc.Authentication.php"); print "<html></body>"; if (!$user->isAdmin()) { print "<b>ERROR: You must be administrator to execute the update</b>"; die; } function update_content() { GLOBAL $db,$settings; // create temp folder if (!makedir($settings->_contentDir."/temp")) return false; // for all contents $queryStr = "SELECT * FROM tblDocumentContent"; $contents = $db->getResultArray($queryStr); if (is_bool($contents)&&!$contents) return false; for ($i=0;$i<count($contents);$i++){ // create temp/documentID folder if (!makedir($settings->_contentDir."/temp/".$contents[$i]["document"])) return false; // move every content in temp/documentID/version.fileType $source = $settings->_contentDir."/".$contents[$i]["dir"]."/data".$contents[$i]["fileType"]; $target = $settings->_contentDir."/temp/".$contents[$i]["document"]."/".$contents[$i]["version"].$contents[$i]["fileType"]; if (!copyFile($source, $target)) return false; } // change directory if (!renameDir($settings->_contentDir."/".$settings->_contentOffsetDir,$settings->_contentDir."/old")) return false; if (!renameDir($settings->_contentDir."/temp",$settings->_contentDir."/".$settings->_contentOffsetDir)) return false; return true; } function update_db() { GLOBAL $db,$settings; // for all contents $queryStr = "SELECT * FROM tblDocumentContent"; $contents = $db->getResultArray($queryStr); if (is_bool($contents)&&!$contents) return false; for ($i=0;$i<count($contents);$i++){ $queryStr = "UPDATE tblDocumentContent set dir = '". $settings->_contentOffsetDir."/".$contents[$i]["document"]."/' WHERE document = ".$contents[$i]["document"]; if (!$db->getResult($queryStr)) return false; } // run the update-2.0.sql $fd = fopen ("update.sql", "r"); if (is_bool($fd)&&!$fd) return false; $queryStr = fread($fd, filesize("update.sql")); if (is_bool($queryStr)&&!$queryStr) return false; fclose ($fd); if (!$db->getResult($queryStr)) return false; return true; } print "<b>Updating ...please wait</b><br>"; if (!update_content()) { print "<b>ERROR: An error occurred during the directory reordering</b>"; die; } if (!update_db()) { print "<b>ERROR: An error occurred during the DB update</b>"; print "<br><b>Please try to execute the update.sql manually</b>"; die; } print "<b>Update done</b><br>"; print "</body></html>"; ?>