Logo Search packages:      
Sourcecode: letodms version File versions  Download package

update.php

<?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>";

?>

Generated by  Doxygen 1.6.0   Back to index