2022-09-08 15:50:01 +00:00
< ? php
// MyDMS. Document Management System
// Copyright (C) 2002-2005 Markus Westphal
// Copyright (C) 2006-2008 Malcolm Cowe
2011-12-06 12:42:58 +00:00
// Copyright (C) 2010 Matteo Lucarelli
2022-09-08 15:50:01 +00:00
//
// 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 " );
2011-12-06 12:42:58 +00:00
include ( " ../inc/inc.Authentication.php " );
print " <html></body> " ;
if ( ! $user -> isAdmin ()) {
print " <b>ERROR: You must be administrator to execute the update</b> " ;
2022-09-08 15:50:01 +00:00
die ;
2011-12-06 12:42:58 +00:00
}
2022-09-08 15:50:01 +00:00
function update_content ()
2011-12-06 12:42:58 +00:00
{
GLOBAL $db , $settings ;
// create temp folder
if ( ! makedir ( $settings -> _contentDir . " /temp " )) return false ;
// for all contents
2022-09-08 15:50:01 +00:00
$queryStr = " SELECT * FROM tblDocumentContent " ;
2011-12-06 12:42:58 +00:00
$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
2022-09-08 15:50:01 +00:00
$queryStr = " SELECT * FROM tblDocumentContent " ;
2011-12-06 12:42:58 +00:00
$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 ;
2022-09-08 15:50:01 +00:00
}
2011-12-06 12:42:58 +00:00
print " <b>Updating ...please wait</b><br> " ;
2022-09-08 15:50:01 +00:00
if ( ! update_content ()) {
2011-12-06 12:42:58 +00:00
print " <b>ERROR: An error occurred during the directory reordering</b> " ;
2022-09-08 15:50:01 +00:00
die ;
2011-12-06 12:42:58 +00:00
}
2022-09-08 15:50:01 +00:00
if ( ! update_db ()) {
2011-12-06 12:42:58 +00:00
print " <b>ERROR: An error occurred during the DB update</b> " ;
print " <br><b>Please try to execute the update.sql manually</b> " ;
2022-09-08 15:50:01 +00:00
die ;
2011-12-06 12:42:58 +00:00
}
print " <b>Update done</b><br> " ;
2022-09-08 15:50:01 +00:00
print " </body></html> " ;