bug fixed: during installation, upgrades from install/db with complex

identifier (X.x) were not correctly inserted.

bug fixed: available upgrades from install/db need to be inserted in
#upgrade table.

deletion: all upgrades from install/db coming from trunk are removed.

new: complete upgrade from any previous release from 1.3.0 to 1.5.2 with
automatic detection detection of the previous release.


git-svn-id: http://piwigo.org/svn/branches/branch-1_6@1209 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
plegall
2006-04-19 20:54:13 +00:00
parent dab8075c96
commit 8789f41f8c
30 changed files with 925 additions and 2003 deletions
+2 -2
View File
@@ -23,14 +23,14 @@ Upgrade
1. elements to save :
- file "include/mysql.inc.php"
- file "include/config_local.inc.php" if you have one
- directory "galleries"
- your database (create a dump, using PhpMyAdmin for instance)
2. delete all files and directories of your previous installation (but not
the previous listed elements)
3. extract files from the downloaded file (using tar or unzip command, or
softwares like 7-zip or winzip)
3. extract files from the downloaded file
4. upload all the new version files to your website but the previous listed
elements. The only elements coming from the previous installed version
+3 -4
View File
@@ -7,8 +7,7 @@ http://phpwebgallery.net
Installation
============
1. décompresser à l'aide de winzip par exemple (winrar, winace et beaucoup
d'autres le permettent également) le fichier téléchargé.
1. décompresser l'archive téléchargée
2. placer les fichiers décompressés sur votre serveur web dans le répertoire
de votre choix ("galerie" par exemple)
@@ -22,14 +21,14 @@ Mise
1. éléments à sauvegarder :
- fichier "include/mysql.inc.php"
- fichier "include/config_local.inc.php" s'il existe
- répertoire "galleries"
- votre base de données (en créant un dump, avec PhpMyAdmin par exemple)
2. supprimer tous les fichiers et répertoires de la précédente installation
(sauf les éléments listés ci-dessus)
3. décompresser à l'aide de winzip par exemple (winrar, winace et beaucoup
d'autres le permettent également) le fichier téléchargé.
3. décompresser l'archive contenant la dernière version
4. placer tous les fichiers de la nouvelle version sur votre site web sauf
pour les élements listés ci-dessus. Les seuls éléments venant de la
+16 -7
View File
@@ -332,16 +332,25 @@ INSERT INTO '.USER_INFOS_TABLE.'
// Available upgrades must be ignored after a fresh installation. To
// make PWG avoid upgrading, we must tell it upgrades have already been
// made.
list($dbnow) = mysql_fetch_row(pwg_query('SELECT NOW();'));
define('CURRENT_DATE', $dbnow);
$datas = array();
foreach (get_available_upgrade_ids() as $upgrade_id)
{
$query = '
INSERT INTO '.UPGRADE_TABLE.'
(id, applied, description)
VALUES
('.$upgrade_id.', NOW(), \'upgrade included in installation\')
';
mysql_query($query);
array_push(
$datas,
array(
'id' => $upgrade_id,
'applied' => CURRENT_DATE,
'description' => 'upgrade included in installation',
)
);
}
mass_inserts(
UPGRADE_TABLE,
array_keys($datas[0]),
$datas
);
}
}
-46
View File
@@ -1,46 +0,0 @@
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
// | last modifier : $Author: plg $
// | revision : $Revision: 870 $
// +-----------------------------------------------------------------------+
// | 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 |
// | |
// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
if (!defined('PHPWG_ROOT_PATH'))
{
die('Hacking attempt!');
}
$upgrade_description = 'Just a beginning test';
// +-----------------------------------------------------------------------+
// | Upgrade content |
// +-----------------------------------------------------------------------+
list($now) = mysql_fetch_row(pwg_query('SELECT NOW()'));
echo
$now
."\n"
.'This upgrade script is for test purpose only'
."\n"
;
?>
-56
View File
@@ -1,56 +0,0 @@
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
// | last modifier : $Author: plg $
// | revision : $Revision: 870 $
// +-----------------------------------------------------------------------+
// | 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 |
// | |
// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
if (!defined('PHPWG_ROOT_PATH'))
{
die('Hacking attempt!');
}
$upgrade_description = 'New table #categories_link';
// +-----------------------------------------------------------------------+
// | Upgrade content |
// +-----------------------------------------------------------------------+
$query = "
CREATE TABLE phpwebgallery_categories_link (
source smallint(5) unsigned NOT NULL default '0',
destination smallint(5) unsigned NOT NULL default '0',
PRIMARY KEY (source,destination)
) TYPE=MyISAM;";
pwg_query($query);
// +-----------------------------------------------------------------------+
// | End notification |
// +-----------------------------------------------------------------------+
echo
"\n"
.'Table '.PREFIX_TABLE.'categories_link created'
."\n"
;
?>
-69
View File
@@ -1,69 +0,0 @@
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
// | last modifier : $Author: plg $
// | revision : $Revision: 870 $
// +-----------------------------------------------------------------------+
// | 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 |
// | |
// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
if (!defined('PHPWG_ROOT_PATH'))
{
die('Hacking attempt!');
}
$upgrade_description =
'Table #categories_link created once again with correct prefix';
// +-----------------------------------------------------------------------+
// | Upgrade content |
// +-----------------------------------------------------------------------+
if (PREFIX_TABLE == 'phpwebgallery_')
{
echo
"\n"
.'Table '.PREFIX_TABLE.'categories_link was already correctly created'
."\n"
;
}
else
{
$query = '
DROP TABLE phpwebgallery_categories_link;
;';
pwg_query($query);
$query = "
CREATE TABLE ".PREFIX_TABLE."categories_link (
source smallint(5) unsigned NOT NULL default '0',
destination smallint(5) unsigned NOT NULL default '0',
PRIMARY KEY (source,destination)
) TYPE=MyISAM;";
pwg_query($query);
echo
"\n"
.'Table '.PREFIX_TABLE.'categories_link created'
."\n"
;
}
?>
-103
View File
@@ -1,103 +0,0 @@
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
// | last modifier : $Author: plg $
// | revision : $Revision: 870 $
// +-----------------------------------------------------------------------+
// | 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 |
// | |
// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
if (!defined('PHPWG_ROOT_PATH'))
{
die('Hacking attempt!');
}
$upgrade_description = 'Field "Status" Table #user_infos changed';
include_once(PHPWG_ROOT_PATH.'include/constants.php');
include(PHPWG_ROOT_PATH . 'include/config_default.inc.php');
@include(PHPWG_ROOT_PATH. 'include/config_local.inc.php');
// +-----------------------------------------------------------------------+
// | Upgrade content |
// +-----------------------------------------------------------------------+
echo "Alter table ".USER_INFOS_TABLE;
$query = "
alter table ".USER_INFOS_TABLE."
modify column `status` enum('webmaster', 'admin', 'normal', 'generic', 'guest') NOT NULL default 'guest'
;";
pwg_query($query);
echo "Define webmaster";
$query = '
update
'.USER_INFOS_TABLE.'
set status = \'webmaster\'
where
user_id = '.$conf['webmaster_id'].' and status = \'admin\'
;';
$result = pwg_query($query);
echo "Define normal";
$query = '
select
user_id
from
'.USER_INFOS_TABLE.'
where
user_id != '.$conf['guest_id'].' and status = \'guest\'
;';
$result = pwg_query($query);
$datas = array();
while ($row = mysql_fetch_array($result))
{
array_push(
$datas,
array(
'user_id' => $row['user_id'],
'status' => 'normal'
)
);
}
mass_updates(
USER_INFOS_TABLE,
array(
'primary' => array('user_id'),
'update' => array('status')
),
$datas
);
// +-----------------------------------------------------------------------+
// | End notification |
// +-----------------------------------------------------------------------+
echo
"\n"
.'Column '.USER_INFOS_TABLE.'.status changed'
."\n"
;
?>
-73
View File
@@ -1,73 +0,0 @@
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
// | last modifier : $Author: plg $
// | revision : $Revision: 870 $
// +-----------------------------------------------------------------------+
// | 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 |
// | |
// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
if (!defined('PHPWG_ROOT_PATH'))
{
die('Hacking attempt!');
}
$upgrade_description = '#config (gallery_description out page_banner in)';
$query = "
ALTER TABLE ".PREFIX_TABLE."config MODIFY COLUMN `value` TEXT;";
pwg_query($query);
$query = '
SELECT value
FROM '.PREFIX_TABLE.'config
WHERE param=\'gallery_title\'
;';
list($t) = array_from_query($query, 'value');
$query = '
SELECT value
FROM '.PREFIX_TABLE.'config
WHERE param=\'gallery_description\'
;';
list($d) = array_from_query($query, 'value');
$page_banner='<div id="theHeader"><h1>'.$t.'</h1><p>'.$d.'</p></div>';
$page_banner=addslashes($page_banner);
$query = '
INSERT INTO '.PREFIX_TABLE.'config (param,value,comment) VALUES (' .
"'page_banner','$page_banner','html displayed on the top each page of your gallery');";
pwg_query($query);
$query = '
DELETE FROM '.PREFIX_TABLE.'config
WHERE param=\'gallery_description\'
;';
pwg_query($query);
echo
"\n"
.'Table '.PREFIX_TABLE.'config updated'
."\n"
;
?>
-63
View File
@@ -1,63 +0,0 @@
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
// | last modifier : $Author: plg $
// | revision : $Revision: 870 $
// +-----------------------------------------------------------------------+
// | 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 |
// | |
// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
if (!defined('PHPWG_ROOT_PATH'))
{
die('Hacking attempt!');
}
$upgrade_description = 'Update database to new pwg_high structure';
include_once(PHPWG_ROOT_PATH.'include/constants.php');
include(PHPWG_ROOT_PATH . 'include/config_default.inc.php');
@include(PHPWG_ROOT_PATH. 'include/config_local.inc.php');
// +-----------------------------------------------------------------------+
// | Upgrade content |
// +-----------------------------------------------------------------------+
echo "Alter table ".USER_INFOS_TABLE. ' add field enabled_high';
$query = "
alter table ".USER_INFOS_TABLE."
add column `enabled_high` enum('true','false') NOT NULL default 'true'
;";
pwg_query($query);
echo "Update ".USER_INFOS_TABLE.".enabled_high with default value";
$query = "
update ".USER_INFOS_TABLE." set enabled_high = '".$conf['newuser_default_enabled_high']."'
where enabled_high <> '".$conf['newuser_default_enabled_high']."'
;";
pwg_query($query);
echo
"\n"
.'"'.$upgrade_description.'"'.' ended'
."\n"
;
?>
-50
View File
@@ -1,50 +0,0 @@
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
// | last modifier : $Author: plg $
// | revision : $Revision: 870 $
// +-----------------------------------------------------------------------+
// | 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 |
// | |
// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
if (!defined('PHPWG_ROOT_PATH'))
{
die('Hacking attempt!');
}
$upgrade_description = '#user_cache, add column nb_total_pictures (feature 262)';
$query = "
ALTER TABLE ".PREFIX_TABLE."user_cache ADD COLUMN `nb_total_images` MEDIUMINT(8) UNSIGNED;";
pwg_query($query);
$query = "
UPDATE ".PREFIX_TABLE."user_cache SET need_update='true'";
pwg_query($query);
echo
"\n"
.'"'.$upgrade_description.'"'.' ended'
."\n"
;
?>
-54
View File
@@ -1,54 +0,0 @@
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
// | last modifier : $Author: plg $
// | revision : $Revision: 870 $
// +-----------------------------------------------------------------------+
// | 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 |
// | |
// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
if (!defined('PHPWG_ROOT_PATH'))
{
die('Hacking attempt!');
}
$upgrade_description = 'Update database from adviser functionnality';
include_once(PHPWG_ROOT_PATH.'include/constants.php');
// +-----------------------------------------------------------------------+
// | Upgrade content |
// +-----------------------------------------------------------------------+
echo "Alter table ".USER_INFOS_TABLE. ' add field adviser';
$query = "
alter table ".USER_INFOS_TABLE."
add column `adviser` enum('true','false') NOT NULL default 'false' after `status`
;";
pwg_query($query);
echo
"\n"
.'"'.$upgrade_description.'"'.' ended'
."\n"
;
?>
-64
View File
@@ -1,64 +0,0 @@
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
// | last modifier : $Author: plg $
// | revision : $Revision: 870 $
// +-----------------------------------------------------------------------+
// | 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 |
// | |
// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
if (!defined('PHPWG_ROOT_PATH'))
{
die('Hacking attempt!');
}
$upgrade_description = 'Add notification by mail param';
include_once(PHPWG_ROOT_PATH.'include/constants.php');
// +-----------------------------------------------------------------------+
// | Upgrade content |
// +-----------------------------------------------------------------------+
echo "Add param on ".CONFIG_TABLE;
$query = "
INSERT INTO ".CONFIG_TABLE." (param,value,comment) VALUES ('nbm_send_mail_as','','Send mail as param value for notification by mail');
";
pwg_query($query);
$query = "
INSERT INTO ".CONFIG_TABLE." (param,value,comment) VALUES ('nbm_send_detailed_content','true','Send detailed content for notification by mail');
";
pwg_query($query);
$query = "
INSERT INTO ".CONFIG_TABLE." (param,value,comment) VALUES ('nbm_complementary_mail_content','','Complementary mail content for notification by mail');
";
pwg_query($query);
echo
"\n"
.'"'.$upgrade_description.'"'.' ended'
."\n"
;
?>
-92
View File
@@ -1,92 +0,0 @@
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
// | last modifier : $Author: plg $
// | revision : $Revision: 870 $
// +-----------------------------------------------------------------------+
// | 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 |
// | |
// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
if (!defined('PHPWG_ROOT_PATH'))
{
die('Hacking attempt!');
}
$upgrade_description = 'Reduce length of #_user_mail_notification.check_key';
include_once(PHPWG_ROOT_PATH.'include/constants.php');
include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
include_once(PHPWG_ROOT_PATH.'admin/include/functions_notification_by_mail.inc.php');
// +-----------------------------------------------------------------------+
// | Upgrade content |
// +-----------------------------------------------------------------------+
echo "Compute new check_key";
$query = '
select
user_id
from
'.USER_MAIL_NOTIFICATION_TABLE.'
;';
$result = pwg_query($query);
$datas = array();
while ($row = mysql_fetch_array($result))
{
array_push(
$datas,
array(
'user_id' => $row['user_id'],
'check_key' => find_available_check_key()
)
);
}
mass_updates(
USER_MAIL_NOTIFICATION_TABLE,
array(
'primary' => array('user_id'),
'update' => array('check_key')
),
$datas
);
echo "Alter table ".USER_MAIL_NOTIFICATION_TABLE;
$query = "
alter table ".USER_MAIL_NOTIFICATION_TABLE."
modify column `check_key` varchar(16) binary NOT NULL default ''
;";
pwg_query($query);
// +-----------------------------------------------------------------------+
// | End notification |
// +-----------------------------------------------------------------------+
echo
"\n"
.'Column '.USER_MAIL_NOTIFICATION_TABLE.'.check_key changed'
."\n"
;
?>
-153
View File
@@ -1,153 +0,0 @@
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
// | last modifier : $Author: plg $
// | revision : $Revision: 870 $
// +-----------------------------------------------------------------------+
// | 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 |
// | |
// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
if (!defined('PHPWG_ROOT_PATH'))
{
die('Hacking attempt!');
}
$upgrade_description = '#images.keywords moved to new table #tags';
// +-----------------------------------------------------------------------+
// | New tables |
// +-----------------------------------------------------------------------+
$query = '
CREATE TABLE '.PREFIX_TABLE.'tags (
id smallint(5) UNSIGNED NOT NULL auto_increment,
name varchar(255) BINARY NOT NULL,
url_name varchar(255) BINARY NOT NULL,
PRIMARY KEY (id)
) TYPE=MyISAM
;';
pwg_query($query);
$query = '
CREATE TABLE '.PREFIX_TABLE.'image_tag (
image_id mediumint(8) UNSIGNED NOT NULL,
tag_id smallint(5) UNSIGNED NOT NULL,
PRIMARY KEY (image_id,tag_id)
) TYPE=MyISAM
;';
pwg_query($query);
// +-----------------------------------------------------------------------+
// | Move keywords to tags |
// +-----------------------------------------------------------------------+
// each tag label is associated to a numeric identifier
$tag_id = array();
// to each tag id (key) a list of image ids (value) is associated
$tag_images = array();
$current_id = 1;
$query = '
SELECT id, keywords
FROM '.PREFIX_TABLE.'images
WHERE keywords IS NOT NULL
;';
$result = pwg_query($query);
while ($row = mysql_fetch_array($result))
{
foreach(preg_split('/[,]+/', $row['keywords']) as $keyword)
{
if (!isset($tag_id[$keyword]))
{
$tag_id[$keyword] = $current_id++;
}
if (!isset($tag_images[ $tag_id[$keyword] ]))
{
$tag_images[ $tag_id[$keyword] ] = array();
}
array_push($tag_images[ $tag_id[$keyword] ], $row['id']);
}
}
$datas = array();
foreach ($tag_id as $tag_name => $tag_id)
{
array_push(
$datas,
array(
'id' => $tag_id,
'name' => $tag_name,
'url_name' => str2url($tag_name),
)
);
}
if (!empty($datas))
mass_inserts(
PREFIX_TABLE.'tags',
array_keys($datas[0]),
$datas
);
$datas = array();
foreach ($tag_images as $tag_id => $images)
{
foreach (array_unique($images) as $image_id)
{
array_push(
$datas,
array(
'tag_id' => $tag_id,
'image_id' => $image_id,
)
);
}
}
if (!empty($datas))
mass_inserts(
PREFIX_TABLE.'image_tag',
array_keys($datas[0]),
$datas
);
// +-----------------------------------------------------------------------+
// | Delete images.keywords |
// +-----------------------------------------------------------------------+
$query = '
ALTER TABLE '.PREFIX_TABLE.'images DROP COLUMN keywords
;';
pwg_query($query);
// +-----------------------------------------------------------------------+
// | End notification |
// +-----------------------------------------------------------------------+
echo
"\n"
.'Table '.PREFIX_TABLE.'tags created and filled'."\n"
.'Table '.PREFIX_TABLE.'image_tag created and filled'."\n"
.'Column '.PREFIX_TABLE.'images.keywords dropped'."\n"
;
?>
-78
View File
@@ -1,78 +0,0 @@
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
// | last modifier : $Author: plg $
// | revision : $Revision: 870 $
// +-----------------------------------------------------------------------+
// | 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 |
// | |
// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
if (!defined('PHPWG_ROOT_PATH'))
{
die('Hacking attempt!');
}
$upgrade_description = 'Update template preference for every user';
// +-----------------------------------------------------------------------+
// | Upgrade content |
// +-----------------------------------------------------------------------+
// configuration update
$query = '
UPDATE '.PREFIX_TABLE.'config
SET value = \'yoga/clear\'
WHERE param = \'default_template\'
;';
pwg_query($query);
// set yoga/clear as default value for user_infos.template column
$query = '
ALTER TABLE '.PREFIX_TABLE.'user_infos
CHANGE COLUMN template template varchar(255) NOT NULL default \'yoga/clear\'
;';
pwg_query($query);
// users having yoga-dark for template now have yoga/dark
$query = '
UPDATE '.PREFIX_TABLE.'user_infos
SET template = \'yoga/dark\'
WHERE template = \'yoga-dark\'
;';
pwg_query($query);
// all other users have yoga/clear
$query = '
UPDATE '.PREFIX_TABLE.'user_infos
SET template = \'yoga/clear\'
WHERE template != \'yoga/dark\'
;';
pwg_query($query);
echo
"\n"
.'Default template modified to yoga/clear'
."\n"
.'Template preference modified for every users : yoga/dark'
.' (for yoga-dark users) and yoga/clear as default'
."\n"
;
?>
-52
View File
@@ -1,52 +0,0 @@
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
// | last modifier : $Author: plg $
// | revision : $Revision: 870 $
// +-----------------------------------------------------------------------+
// | 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 |
// | |
// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
if (!defined('PHPWG_ROOT_PATH'))
{
die('Hacking attempt!');
}
$upgrade_description = 'drop table #categories_link';
// +-----------------------------------------------------------------------+
// | New column |
// +-----------------------------------------------------------------------+
$query = '
DROP TABLE '.PREFIX_TABLE.'categories_link
;';
pwg_query($query);
// +-----------------------------------------------------------------------+
// | End notification |
// +-----------------------------------------------------------------------+
echo
"\n"
.'Table '.PREFIX_TABLE.'categories_link dropped'."\n"
;
?>
-58
View File
@@ -1,58 +0,0 @@
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
// | last modifier : $Author: plg $
// | revision : $Revision: 870 $
// +-----------------------------------------------------------------------+
// | 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 |
// | |
// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
if (!defined('PHPWG_ROOT_PATH'))
{
die('Hacking attempt!');
}
$upgrade_description = 'add index on #tags.url_name and #image_tag.tag_id ';
$query = '
ALTER TABLE '.PREFIX_TABLE.'tags ADD INDEX `tags_i1`(`url_name`);
;';
pwg_query($query);
$query = '
ALTER TABLE '.PREFIX_TABLE.'image_tag ADD INDEX `image_tag_i1`(`tag_id`);
;';
pwg_query($query);
// +-----------------------------------------------------------------------+
// | End notification |
// +-----------------------------------------------------------------------+
echo
"\n"
.'Tables '.PREFIX_TABLE.'tags and '.PREFIX_TABLE.'image_tag updated'."\n"
;
echo $upgrade_description;
?>
-57
View File
@@ -1,57 +0,0 @@
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
// | last modifier : $Author: plg $
// | revision : $Revision: 870 $
// +-----------------------------------------------------------------------+
// | 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 |
// | |
// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
if (!defined('PHPWG_ROOT_PATH'))
{
die('Hacking attempt!');
}
$upgrade_description = 'Update session table for new session system';
// +-----------------------------------------------------------------------+
// | Upgrade content |
// +-----------------------------------------------------------------------+
// delete content of old session table
$query = '
DELETE FROM '.PREFIX_TABLE.'sessions
;';
pwg_query($query);
// column user_id becomes data of type text
$query = '
ALTER TABLE '.PREFIX_TABLE.'sessions
CHANGE COLUMN user_id data text NOT NULL
;';
pwg_query($query);
echo
"\n"
.'Column modified in sessions table'
."\n"
;
?>
-54
View File
@@ -1,54 +0,0 @@
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
// | last modifier : $Author: plg $
// | revision : $Revision: 870 $
// +-----------------------------------------------------------------------+
// | 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 |
// | |
// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
if (!defined('PHPWG_ROOT_PATH'))
{
die('Hacking attempt!');
}
$upgrade_description = 'Table #search is required for search engine redesign';
// +-----------------------------------------------------------------------+
// | Upgrade content |
// +-----------------------------------------------------------------------+
// column user_id becomes data of type text
$query = '
CREATE TABLE '.PREFIX_TABLE.'search (
id int UNSIGNED NOT NULL AUTO_INCREMENT,
last_seen date DEFAULT NULL,
rules text,
PRIMARY KEY (id)
);';
pwg_query($query);
echo
"\n"
.'Table '.PREFIX_TABLE.'search created'
."\n"
;
?>
-50
View File
@@ -1,50 +0,0 @@
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
// | last modifier : $Author: plg $
// | revision : $Revision: 870 $
// +-----------------------------------------------------------------------+
// | 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 |
// | |
// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
if (!defined('PHPWG_ROOT_PATH'))
{
die('Hacking attempt!');
}
$upgrade_description = 'Update images table with has_high column';
// +-----------------------------------------------------------------------+
// | Upgrade content |
// +-----------------------------------------------------------------------+
// column user_id becomes data of type text
$query = "
ALTER TABLE ".PREFIX_TABLE."images ADD COLUMN has_high ENUM('true') DEFAULT NULL AFTER average_rate;
";
pwg_query($query);
echo
"\n"
.'Column has_high '.PREFIX_TABLE.'images added'
."\n"
;
?>
-58
View File
@@ -1,58 +0,0 @@
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2006 PhpWebGallery Team - http://phpwebgallery.net |
// | Copyright (C) 2006 Ruben ARNAUD - team@phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
// | last modifier : $Author: plg $
// | revision : $Revision: 870 $
// +-----------------------------------------------------------------------+
// | 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 |
// | |
// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
if (!defined('PHPWG_ROOT_PATH'))
{
die('Hacking attempt!');
}
$upgrade_description = 'Table #user_mail_notification is required for NBM';
// +-----------------------------------------------------------------------+
// | Upgrade content |
// +-----------------------------------------------------------------------+
// Creating table user_mail_notification
$query = '
CREATE TABLE '.PREFIX_TABLE.'user_mail_notification
(
user_id smallint(5) NOT NULL default \'0\',
check_key varchar(128) binary NOT NULL,
enabled enum(\'true\',\'false\') NOT NULL default \'false\',
last_send datetime default NULL,
PRIMARY KEY (`user_id`),
UNIQUE KEY `uidx_check_key` (`check_key`)
) TYPE=MyISAM;';
pwg_query($query);
echo
"\n"
.'Table '.PREFIX_TABLE.'user_mail_notification created'
."\n"
;
?>
-70
View File
@@ -1,70 +0,0 @@
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2006 PhpWebGallery Team - http://phpwebgallery.net |
// | Copyright (C) 2006 Ruben ARNAUD - team@phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
// | last modifier : $Author: plg $
// | revision : $Revision: 870 $
// +-----------------------------------------------------------------------+
// | 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 |
// | |
// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
if (!defined('PHPWG_ROOT_PATH'))
{
die('Hacking attempt!');
}
$upgrade_description = 'Anonymous rating';
// +-----------------------------------------------------------------------+
// | Upgrade content |
// +-----------------------------------------------------------------------+
$query = '
ALTER TABLE '.PREFIX_TABLE.'rate DROP PRIMARY KEY;'
;
pwg_query($query);
$query ='
ALTER TABLE '.PREFIX_TABLE.'rate ADD COLUMN anonymous_id VARCHAR(45) NOT NULL DEFAULT \'\' AFTER element_id;'
;
pwg_query($query);
$query ='
ALTER TABLE '.PREFIX_TABLE.'rate ADD COLUMN date DATE NOT NULL AFTER rate;'
;
pwg_query($query);
$query ='
UPDATE '.PREFIX_TABLE.'rate SET date=NOW() WHERE date<"1990-01-01";'
;
pwg_query($query);
$query = '
ALTER TABLE '.PREFIX_TABLE.'rate ADD PRIMARY KEY (element_id, user_id, anonymous_id);'
;
pwg_query($query);
echo
"\n"
.'Table '.PREFIX_TABLE.'rate upgraded'
."\n"
;
?>
-88
View File
@@ -1,88 +0,0 @@
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2006 PhpWebGallery Team - http://phpwebgallery.net |
// | Copyright (C) 2006 Ruben ARNAUD - team@phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
// | last modifier : $Author: plg $
// | revision : $Revision: 870 $
// +-----------------------------------------------------------------------+
// | 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 |
// | |
// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
if (!defined('PHPWG_ROOT_PATH'))
{
die('Hacking attempt!');
}
$upgrade_description = 'Move rate, rate_anonymous and gallery_url from config file to database';
$params = array(
'gallery_url' => array('http://demo.phpwebgallery.net','URL given in RSS feed'),
'rate' => array('true','Rating pictures feature is enabled') ,
'rate_anonymous' => array('true','Rating pictures feature is also enabled for visitors')
);
// +-Get real values from config file--------------------------------------+
$conf_save = $conf;
unset($conf);
@include(PHPWG_ROOT_PATH. 'include/config_local.inc.php');
if ( isset($conf['gallery_url']) )
{
$params['gallery_url'][0] = $conf['gallery_url'];
}
if ( isset($conf['rate']) and is_bool($conf['rate']) )
{
$params['rate'][0] = $conf['rate'] ? 'true' : 'false';
}
if ( isset($conf['rate_anonymous']) and is_bool($conf['rate_anonymous']) )
{
$params['rate_anonymous'][0] = $conf['rate_anonymous'] ? 'true' : 'false';
}
$conf = $conf_save;
// +-Do I already have them in DB ?----------------------------------------+
$query = 'SELECT param FROM '.PREFIX_TABLE.'config';
$result = pwg_query($query);
while ($row = mysql_fetch_array($result))
{
unset( $params[ $row['param'] ] );
}
// +-Perform the insert query----------------------------------------------+
foreach ($params as $param_key => $param_values)
{
$query = '
INSERT INTO '.PREFIX_TABLE.'config (param,value,comment) VALUES (' .
"'$param_key','$param_values[0]','$param_values[1]');";
pwg_query($query);
}
echo
"\n"
.'Table '.PREFIX_TABLE.'config upgraded'
."\n"
;
?>
-90
View File
@@ -1,90 +0,0 @@
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
// | last modifier : $Author: plg $
// | revision : $Revision: 870 $
// +-----------------------------------------------------------------------+
// | 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 |
// | |
// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
if (!defined('PHPWG_ROOT_PATH'))
{
die('Hacking attempt!');
}
$upgrade_description =
'Column #image_category.is_storage replaces #images.storage_category_id';
// +-----------------------------------------------------------------------+
// | Upgrade content |
// +-----------------------------------------------------------------------+
$query = "
ALTER TABLE ".PREFIX_TABLE."image_category
ADD COLUMN is_storage ENUM('true','false') DEFAULT 'false'
;";
pwg_query($query);
$query = '
SELECT id, storage_category_id
FROM '.PREFIX_TABLE.'images
;';
$result = pwg_query($query);
$datas = array();
while ($row = mysql_fetch_array($result))
{
array_push(
$datas,
array(
'image_id' => $row['id'],
'category_id' => $row['storage_category_id'],
'is_storage' => 'true',
)
);
}
mass_updates(
PREFIX_TABLE.'image_category',
array(
'primary' => array('image_id', 'category_id'),
'update' => array('is_storage')
),
$datas
);
$query = '
ALTER TABLE '.PREFIX_TABLE.'images
DROP COLUMN storage_category_id
;';
pwg_query($query);
// +-----------------------------------------------------------------------+
// | End notification |
// +-----------------------------------------------------------------------+
echo
"\n"
.'Column '.PREFIX_TABLE.'image_category.is_storage created and filled'
."\n"
;
?>
@@ -6,9 +6,9 @@
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
// | last update : $Date: 2005-01-08 00:10:51 +0100 (sam, 08 jan 2005) $
// | last modifier : $Author: plg $
// | revision : $Revision: 870 $
// | revision : $Revision: 675 $
// +-----------------------------------------------------------------------+
// | 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 |
@@ -25,67 +25,106 @@
// | USA. |
// +-----------------------------------------------------------------------+
/**
* Upgrade from 1.3.0 to 1.3.1
*/
if (!defined('PHPWG_ROOT_PATH'))
{
die('Hacking attempt!');
die ('This page cannot be loaded directly, load upgrade.php');
}
else
{
if (!defined('PHPWG_IN_UPGRADE') or !PHPWG_IN_UPGRADE)
{
die ('Hacking attempt!');
}
}
$upgrade_description =
'#image_category.is_storage replaced by #image.storage_category_id';
$queries = array(
"
ALTER TABLE phpwebgallery_categories
ADD COLUMN uppercats varchar(255) NOT NULL default ''
;",
// +-----------------------------------------------------------------------+
// | New column |
// +-----------------------------------------------------------------------+
"
CREATE TABLE phpwebgallery_user_category (
user_id smallint(5) unsigned NOT NULL default '0'
)
;",
"
ALTER TABLE phpwebgallery_categories
ADD INDEX id (id)
;",
"
ALTER TABLE phpwebgallery_categories
ADD INDEX id_uppercat (id_uppercat)
;",
"
ALTER TABLE phpwebgallery_image_category
ADD INDEX category_id (category_id)
;",
"
ALTER TABLE phpwebgallery_image_category
ADD INDEX image_id (image_id)
;",
);
foreach ($queries as $query)
{
$query = str_replace('phpwebgallery_', PREFIX_TABLE, $query);
pwg_query($query);
}
// filling the new column categories.uppercats
$id_uppercats = array();
$query = '
ALTER TABLE '.PREFIX_TABLE.'images
ADD storage_category_id smallint(5) unsigned default NULL
;';
pwg_query($query);
$query = '
SELECT category_id, image_id
FROM '.PREFIX_TABLE.'image_category
WHERE is_storage = \'true\'
SELECT id, id_uppercat
FROM '.CATEGORIES_TABLE.'
;';
$result = pwg_query($query);
$datas = array();
while ($row = mysql_fetch_array($result))
{
array_push(
$datas,
array(
'id' => $row['image_id'],
'storage_category_id' => $row['category_id'],
)
);
if (!isset($row['id_uppercat']) or $row['id_uppercat'] == '')
{
$row['id_uppercat'] = 'NULL';
}
$id_uppercats[$row['id']] = $row['id_uppercat'];
}
$datas = array();
foreach (array_keys($id_uppercats) as $id)
{
$data = array();
$data['id'] = $id;
$uppercats = array();
array_push($uppercats, $id);
while (isset($id_uppercats[$id]) and $id_uppercats[$id] != 'NULL')
{
array_push($uppercats, $id_uppercats[$id]);
$id = $id_uppercats[$id];
}
$data['uppercats'] = implode(',', array_reverse($uppercats));
array_push($datas, $data);
}
mass_updates(
PREFIX_TABLE.'images',
CATEGORIES_TABLE,
array(
'primary' => array('id'),
'update' => array('storage_category_id'),
'update' => array('uppercats')
),
$datas
);
// +-----------------------------------------------------------------------+
// | Delete obsolete column |
// +-----------------------------------------------------------------------+
$query = '
ALTER TABLE '.PREFIX_TABLE.'image_category DROP COLUMN is_storage
;';
pwg_query($query);
// +-----------------------------------------------------------------------+
// | End notification |
// +-----------------------------------------------------------------------+
echo
"\n"
.'Column '.PREFIX_TABLE.'image_category'
.' replaced by '.PREFIX_TABLE.'images.storage_category_id'."\n"
;
?>
// now we upgrade from 1.3.1 to 1.6.0
include_once(PHPWG_ROOT_PATH.'install/upgrade_1.3.1.php');
?>
+606
View File
@@ -0,0 +1,606 @@
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date: 2005-01-08 00:10:51 +0100 (sam, 08 jan 2005) $
// | last modifier : $Author: plg $
// | revision : $Revision: 675 $
// +-----------------------------------------------------------------------+
// | 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 |
// | |
// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
/**
* Upgrade from 1.3.x (x >= 1) to 1.4.0
*/
if (!defined('PHPWG_ROOT_PATH'))
{
die ('This page cannot be loaded directly, load upgrade.php');
}
else
{
if (!defined('PHPWG_IN_UPGRADE') or !PHPWG_IN_UPGRADE)
{
die ('Hacking attempt!');
}
}
// save data before deletion
$query = '
SELECT prefix_thumbnail, mail_webmaster
FROM '.PREFIX_TABLE.'config
;';
$save = mysql_fetch_array(mysql_query($query));
$queries = array(
"
DROP TABLE phpwebgallery_config
;",
"
CREATE TABLE phpwebgallery_config (
param varchar(40) NOT NULL default '',
value varchar(255) default NULL,
comment varchar(255) default NULL,
PRIMARY KEY (param)
) TYPE=MyISAM COMMENT='configuration table'
;",
"
ALTER TABLE phpwebgallery_categories
CHANGE COLUMN site_id site_id tinyint(4) unsigned default '1'
;",
"
ALTER TABLE phpwebgallery_categories
ADD COLUMN commentable enum('true','false') NOT NULL default 'true'
;",
"
ALTER TABLE phpwebgallery_categories
ADD COLUMN global_rank varchar(255) default NULL
;",
"
ALTER TABLE phpwebgallery_categories
ADD INDEX categories_i2 (id_uppercat)
;",
"
ALTER TABLE phpwebgallery_comments
ADD COLUMN date_temp int(11) unsigned
;",
"
UPDATE phpwebgallery_comments
SET date_temp = date
;",
"
ALTER TABLE phpwebgallery_comments
CHANGE COLUMN date date datetime NOT NULL default '0000-00-00 00:00:00'
;",
"
UPDATE phpwebgallery_comments
SET date = FROM_UNIXTIME(date_temp)
;",
"
ALTER TABLE phpwebgallery_comments
DROP COLUMN date_temp
;",
"
ALTER TABLE phpwebgallery_favorites
DROP INDEX user_id
;",
"
ALTER TABLE phpwebgallery_favorites
ADD PRIMARY KEY (user_id,image_id)
;",
"
ALTER TABLE phpwebgallery_history
ADD COLUMN date_temp int(11) unsigned
;",
"
UPDATE phpwebgallery_history
SET date_temp = date
;",
"
ALTER TABLE phpwebgallery_history
CHANGE COLUMN date date datetime NOT NULL default '0000-00-00 00:00:00'
;",
"
UPDATE phpwebgallery_history
SET date = FROM_UNIXTIME(date_temp)
;",
"
ALTER TABLE phpwebgallery_history
DROP COLUMN date_temp
;",
"
ALTER TABLE phpwebgallery_history
ADD INDEX history_i1 (date)
;",
"
ALTER TABLE phpwebgallery_image_category
ADD INDEX image_category_i1 (image_id),
ADD INDEX image_category_i2 (category_id)
;",
"
ALTER TABLE phpwebgallery_images
CHANGE COLUMN tn_ext tn_ext varchar(4) default ''
;",
"
ALTER TABLE phpwebgallery_images
ADD COLUMN path varchar(255) NOT NULL default ''
;",
"
ALTER TABLE phpwebgallery_images
ADD COLUMN date_metadata_update date default NULL
;",
"
ALTER TABLE phpwebgallery_images
ADD COLUMN average_rate float(5,2) unsigned default NULL
;",
"
ALTER TABLE phpwebgallery_images
ADD COLUMN representative_ext varchar(4) default NULL
;",
"
ALTER TABLE phpwebgallery_images
DROP INDEX storage_category_id
;",
"
ALTER TABLE phpwebgallery_images
ADD INDEX images_i1 (storage_category_id)
;",
"
ALTER TABLE phpwebgallery_images
ADD INDEX images_i2 (date_available)
;",
"
ALTER TABLE phpwebgallery_images
ADD INDEX images_i3 (average_rate)
;",
"
ALTER TABLE phpwebgallery_images
ADD INDEX images_i4 (hit)
;",
"
ALTER TABLE phpwebgallery_images
ADD INDEX images_i5 (date_creation)
;",
"
ALTER TABLE phpwebgallery_sessions
DROP COLUMN ip
;",
"
ALTER TABLE phpwebgallery_sessions
ADD COLUMN expiration_temp int(11) unsigned
;",
"
UPDATE phpwebgallery_sessions
SET expiration_temp = expiration
;",
"
ALTER TABLE phpwebgallery_sessions
CHANGE COLUMN expiration expiration datetime NOT NULL default '0000-00-00 00:00:00'
;",
"
UPDATE phpwebgallery_sessions
SET expiration = FROM_UNIXTIME(expiration_temp)
;",
"
ALTER TABLE phpwebgallery_sessions
DROP COLUMN expiration_temp
;",
"
ALTER TABLE phpwebgallery_sites
DROP INDEX galleries_url
;",
"
ALTER TABLE phpwebgallery_sites
ADD UNIQUE sites_ui1 (galleries_url)
;",
"
DROP TABLE phpwebgallery_user_category
;",
"
ALTER TABLE phpwebgallery_users
DROP COLUMN long_period
;",
"
ALTER TABLE phpwebgallery_users
DROP COLUMN short_period
;",
"
ALTER TABLE phpwebgallery_users
ADD COLUMN recent_period tinyint(3) unsigned NOT NULL default '7'
;",
"
ALTER TABLE phpwebgallery_users
DROP INDEX username
;",
"
ALTER TABLE phpwebgallery_users
ADD UNIQUE users_ui1 (username)
;",
"
CREATE TABLE phpwebgallery_rate (
user_id smallint(5) unsigned NOT NULL default '0',
element_id mediumint(8) unsigned NOT NULL default '0',
rate tinyint(2) unsigned NOT NULL default '0',
PRIMARY KEY (user_id,element_id)
) TYPE=MyISAM
;",
"
CREATE TABLE phpwebgallery_user_forbidden (
user_id smallint(5) unsigned NOT NULL default '0',
need_update enum('true','false') NOT NULL default 'true',
forbidden_categories text,
PRIMARY KEY (user_id)
) TYPE=MyISAM
;",
"
UPDATE phpwebgallery_users
SET language = 'en_UK.iso-8859-1'
, template = 'default'
;",
"
DELETE FROM phpwebgallery_user_access
;",
"
DELETE FROM phpwebgallery_group_access
;"
);
foreach ($queries as $query)
{
$query = str_replace('phpwebgallery_', PREFIX_TABLE, $query);
pwg_query($query);
}
//
// check indexes
//
$indexes_of = array(
'categories' => array(
'categories_i2' => array(
'columns' => array('id_uppercat'),
'unique' => false,
)
),
'image_category' => array(
'image_category_i1' => array(
'columns' => array('image_id'),
'unique' => false,
),
'image_category_i2' => array(
'columns' => array('category_id'),
'unique' => false,
),
),
);
foreach (array_keys($indexes_of) as $table)
{
$existing_indexes = array();
$query = '
SHOW INDEX
FROM '.PREFIX_TABLE.$table.'
;';
$result = pwg_query($query);
while ($row = mysql_fetch_array($result))
{
if ($row['Key_name'] != 'PRIMARY')
{
if (!in_array($row['Key_name'], array_keys($indexes_of[$table])))
{
$query = '
ALTER TABLE '.PREFIX_TABLE.$table.'
DROP INDEX '.$row['Key_name'].'
;';
pwg_query($query);
}
else
{
array_push($existing_indexes, $row['Key_name']);
}
}
}
foreach ($indexes_of[$table] as $index_name => $index)
{
if (!in_array($index_name, $existing_indexes))
{
$query = '
ALTER TABLE '.PREFIX_TABLE.$table.'
ADD '.($index['unique'] ? 'UNIQUE' : 'INDEX').' '
.$index_name.' ('.implode(',', $index['columns']).')
;';
pwg_query($query);
}
}
}
//
// insert params in new configuration table
//
$params = array(
array(
'param' => 'prefix_thumbnail',
'value' => $save['prefix_thumbnail'],
'comment' => 'thumbnails filename prefix'
),
array(
'param' => 'mail_webmaster',
'value' => $save['mail_webmaster'],
'comment' => 'webmaster mail'
),
array(
'param' => 'default_language',
'value' => 'en_UK.iso-8859-1',
'comment' => 'Default gallery language'
),
array(
'param' => 'default_template',
'value' => 'default',
'comment' => 'Default gallery style'
),
array(
'param' => 'default_maxwidth',
'value' => '',
'comment' => 'maximum width authorized for displaying images'
),
array(
'param' => 'default_maxheight',
'value' => '',
'comment' => 'maximum height authorized for the displaying images'
),
array(
'param' => 'nb_comment_page',
'value' => '10',
'comment' => 'number of comments to display on each page'
),
array(
'param' => 'upload_maxfilesize',
'value' => '150',
'comment' => 'maximum filesize for the uploaded pictures'
),
array(
'param' => 'upload_maxwidth',
'value' => '800',
'comment' => 'maximum width authorized for the uploaded images'
),
array(
'param' => 'upload_maxheight',
'value' => '600',
'comment' => 'maximum height authorized for the uploaded images'
),
array(
'param' => 'upload_maxwidth_thumbnail',
'value' => '150',
'comment' => 'maximum width authorized for the uploaded thumbnails'
),
array(
'param' => 'upload_maxheight_thumbnail',
'value' => '100',
'comment' => 'maximum height authorized for the uploaded thumbnails'
),
array(
'param' => 'log',
'value' => 'false',
'comment' => 'keep an history of visits on your website'
),
array(
'param' => 'comments_validation',
'value' => 'false',
'comment' => 'administrators validate users comments before becoming visible'
),
array(
'param' => 'comments_forall',
'value' => 'false',
'comment' => 'even guest not registered can post comments'
),
array(
'param' => 'mail_notification',
'value' => 'false',
'comment' => 'automated mail notification for adminsitrators'
),
array(
'param' => 'nb_image_line',
'value' => '5',
'comment' => 'Number of images displayed per row'
),
array(
'param' => 'nb_line_page',
'value' => '3',
'comment' => 'Number of rows displayed per page'
),
array(
'param' => 'recent_period',
'value' => '7',
'comment' => 'Period within which pictures are displayed as new (in days)'
),
array(
'param' => 'auto_expand',
'value' => 'false',
'comment' => 'Auto expand of the category tree'
),
array(
'param' => 'show_nb_comments',
'value' => 'false',
'comment' => 'Show the number of comments under the thumbnails'
),
array(
'param' => 'use_iptc',
'value' => 'false',
'comment' => 'Use IPTC data during database synchronization with files metadata'
),
array(
'param' => 'use_exif',
'value' => 'false',
'comment' => 'Use EXIF data during database synchronization with files metadata'
),
array(
'param' => 'show_iptc',
'value' => 'false',
'comment' => 'Show IPTC metadata on picture.php if asked by user'
),
array(
'param' => 'show_exif',
'value' => 'true',
'comment' => 'Show EXIF metadata on picture.php if asked by user'
),
array(
'param' => 'authorize_remembering',
'value' => 'true',
'comment' => 'Authorize users to be remembered, see $conf{remember_me_length}'
),
array(
'param' => 'gallery_locked',
'value' => 'false',
'comment' => 'Lock your gallery temporary for non admin users'
),
);
mass_inserts(
CONFIG_TABLE,
array_keys($params[0]),
$params
);
// refresh calculated datas
ordering();
update_global_rank();
update_category();
// update calculated field "images.path"
$cat_ids = array();
$query = '
SELECT DISTINCT(storage_category_id) AS unique_storage_category_id
FROM '.IMAGES_TABLE.'
;';
$result = pwg_query($query);
while ($row = mysql_fetch_array($result))
{
array_push($cat_ids, $row['unique_storage_category_id']);
}
$fulldirs = get_fulldirs($cat_ids);
foreach ($cat_ids as $cat_id)
{
$query = '
UPDATE '.IMAGES_TABLE.'
SET path = CONCAT(\''.$fulldirs[$cat_id].'\',\'/\',file)
WHERE storage_category_id = '.$cat_id.'
;';
pwg_query($query);
}
// all sub-categories of private categories become private
$cat_ids = array();
$query = '
SELECT id
FROM '.CATEGORIES_TABLE.'
WHERE status = \'private\'
;';
$result = pwg_query($query);
while ($row = mysql_fetch_array($result))
{
array_push($cat_ids, $row['id']);
}
if (count($cat_ids) > 0)
{
$privates = get_subcat_ids($cat_ids);
$query = '
UPDATE '.CATEGORIES_TABLE.'
SET status = \'private\'
WHERE id IN ('.implode(',', $privates).')
;';
pwg_query($query);
}
$page['infos'] = array_merge(
$page['infos'],
array(
'all sub-categories of private categories become private',
'user permissions and group permissions have been erased',
'only thumbnails prefix and webmaster mail address have been saved from
previous configuration',
'in include/mysql.inc.php, before
<pre style="background-color:lightgray">?&gt;</pre>
insert
<pre style="background-color:lightgray">define(\'PHPWG_INSTALLED\', true);<pre>'
)
);
// now we upgrade from 1.4.0
include_once(PHPWG_ROOT_PATH.'install/upgrade_1.4.0.php');
?>
+3 -9
View File
@@ -188,12 +188,6 @@ foreach ($queries as $query)
pwg_query($query);
}
$new_time = get_moment();
echo '<pre>['.get_elapsed_time($last_time, $new_time).']';
echo ' Basic database structure upgrade done</pre>';
flush();
$last_time = $new_time;
// user datas migration from phpwebgallery_users to phpwebgallery_user_infos
$query = '
SELECT *
@@ -287,16 +281,16 @@ foreach ($queries as $query)
pwg_query($query);
}
$infos = array();
if ($prefix_thumbnail != 'TN-')
{
array_push(
$infos,
$page['infos'],
'the thumbnail prefix configuration parameter was moved to configuration
file, copy config_local.inc.php from "tools" directory to "include" directory
and edit $conf[\'prefix_thumbnail\'] = '.$prefix_thumbnail
);
}
// now we upgrade from 1.5.0 to 1.6.0
include_once(PHPWG_ROOT_PATH.'install/upgrade_1.5.0.php');
?>
-302
View File
@@ -1,302 +0,0 @@
<?php
// +-----------------------------------------------------------------------+
// | PhpWebGallery - a PHP based picture gallery |
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
// +-----------------------------------------------------------------------+
// | branch : BSF (Best So Far)
// | file : $RCSfile$
// | last update : $Date$
// | last modifier : $Author$
// | revision : $Revision$
// +-----------------------------------------------------------------------+
// | 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 |
// | |
// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
if (!defined('PHPWG_ROOT_PATH'))
{
die ('This page cannot be loaded directly, load upgrade.php');
}
else
{
if (!defined('PHPWG_IN_UPGRADE') or !PHPWG_IN_UPGRADE)
{
die ('Hacking attempt!');
}
}
$last_time = get_moment();
// will the user have to edit include/config_local.inc.php for
// prefix_thumbnail configuration parameter
$query = '
SELECT value
FROM '.CONFIG_TABLE.'
WHERE param = \'prefix_thumbnail\'
;';
list($prefix_thumbnail) = mysql_fetch_array(pwg_query($query));
// delete obsolete configuration
$query = '
DELETE
FROM '.PREFIX_TABLE.'config
WHERE param IN (
\'prefix_thumbnail\',
\'mail_webmaster\',
\'upload_maxfilesize\',
\'upload_maxwidth\',
\'upload_maxheight\',
\'upload_maxwidth_thumbnail\',
\'upload_maxheight_thumbnail\',
\'mail_notification\',
\'use_iptc\',
\'use_exif\',
\'show_iptc\',
\'show_exif\',
\'authorize_remembering\'
)
;';
mysql_query($query);
$queries = array(
"
ALTER TABLE phpwebgallery_categories
CHANGE COLUMN date_last date_last datetime default NULL
;",
"
ALTER TABLE phpwebgallery_comments
ADD COLUMN validation_date datetime default NULL
;",
"
UPDATE phpwebgallery_comments
SET validation_date = date
",
"
ALTER TABLE phpwebgallery_comments
ADD INDEX comments_i1 (image_id)
;",
"
ALTER TABLE phpwebgallery_comments
ADD INDEX comments_i2 (validation_date)
;",
"
ALTER TABLE phpwebgallery_favorites
CHANGE COLUMN user_id user_id smallint(5) NOT NULL default '0'
;",
"
ALTER TABLE phpwebgallery_images
CHANGE COLUMN date_available
date_available datetime NOT NULL default '0000-00-00 00:00:00'
;",
"
ALTER TABLE phpwebgallery_rate
CHANGE COLUMN user_id user_id smallint(5) NOT NULL default '0'
;",
"
ALTER TABLE phpwebgallery_sessions
CHANGE COLUMN user_id user_id smallint(5) NOT NULL default '0'
;",
"
ALTER TABLE phpwebgallery_user_access
CHANGE COLUMN user_id user_id smallint(5) NOT NULL default '0'
;",
"
DROP TABLE phpwebgallery_user_forbidden
;",
"
ALTER TABLE phpwebgallery_user_group
CHANGE COLUMN user_id user_id smallint(5) NOT NULL default '0'
;",
"
ALTER TABLE phpwebgallery_users
CHANGE COLUMN id id smallint(5) NOT NULL auto_increment
;",
"
CREATE TABLE phpwebgallery_caddie (
user_id smallint(5) NOT NULL default '0',
element_id mediumint(8) NOT NULL default '0',
PRIMARY KEY (user_id,element_id)
) TYPE=MyISAM
;",
"
CREATE TABLE phpwebgallery_user_cache (
user_id smallint(5) NOT NULL default '0',
need_update enum('true','false') NOT NULL default 'true',
forbidden_categories text,
PRIMARY KEY (user_id)
) TYPE=MyISAM
;",
"
CREATE TABLE phpwebgallery_user_feed (
id varchar(50) binary NOT NULL default '',
user_id smallint(5) NOT NULL default '0',
last_check datetime default NULL,
PRIMARY KEY (id)
) TYPE=MyISAM
;",
"
CREATE TABLE phpwebgallery_user_infos (
user_id smallint(5) NOT NULL default '0',
nb_image_line tinyint(1) unsigned NOT NULL default '5',
nb_line_page tinyint(3) unsigned NOT NULL default '3',
status enum('admin','guest') NOT NULL default 'guest',
language varchar(50) NOT NULL default 'english',
maxwidth smallint(6) default NULL,
maxheight smallint(6) default NULL,
expand enum('true','false') NOT NULL default 'false',
show_nb_comments enum('true','false') NOT NULL default 'false',
recent_period tinyint(3) unsigned NOT NULL default '7',
template varchar(255) NOT NULL default 'yoga',
registration_date datetime NOT NULL default '0000-00-00 00:00:00',
UNIQUE KEY user_infos_ui1 (user_id)
) TYPE=MyISAM
;"
);
foreach ($queries as $query)
{
$query = str_replace('phpwebgallery_', PREFIX_TABLE, $query);
pwg_query($query);
}
$new_time = get_moment();
echo '<pre>['.get_elapsed_time($last_time, $new_time).']';
echo ' Basic database structure upgrade done</pre>';
flush();
$last_time = $new_time;
// user datas migration from phpwebgallery_users to phpwebgallery_user_infos
$query = '
SELECT *
FROM '.USERS_TABLE.'
;';
$datas = array();
list($dbnow) = mysql_fetch_row(pwg_query('SELECT NOW();'));
$result = pwg_query($query);
while ($row = mysql_fetch_array($result))
{
$row['user_id'] = $row['id'];
$row['registration_date'] = $dbnow;
array_push($datas, $row);
}
include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
mass_inserts(
USER_INFOS_TABLE,
array(
'user_id',
'nb_image_line',
'nb_line_page',
'status',
'language',
'maxwidth',
'maxheight',
'expand',
'show_nb_comments',
'recent_period',
'template',
'registration_date'
),
$datas
);
$queries = array(
"
UPDATE ".USER_INFOS_TABLE."
SET template = 'yoga'
;",
"
UPDATE ".USER_INFOS_TABLE."
SET language = 'en_UK.iso-8859-1'
WHERE language NOT IN ('en_UK.iso-8859-1', 'fr_FR.iso-8859-1')
;",
"
UPDATE ".CONFIG_TABLE."
SET value = 'en_UK.iso-8859-1'
WHERE param = 'default_language'
AND value NOT IN ('en_UK.iso-8859-1', 'fr_FR.iso-8859-1')
;",
"
UPDATE ".CONFIG_TABLE."
SET value = 'yoga'
WHERE param = 'default_template'
;",
"
INSERT INTO ".CONFIG_TABLE."
(param,value,comment)
VALUES
(
'gallery_title',
'PhpWebGallery demonstration site',
'Title at top of each page and for RSS feed'
)
;",
"
INSERT INTO ".CONFIG_TABLE."
(param,value,comment)
VALUES
(
'gallery_description',
'My photos web site',
'Short description displayed with gallery title'
)
;"
);
foreach ($queries as $query)
{
$query = str_replace('phpwebgallery_', PREFIX_TABLE, $query);
pwg_query($query);
}
$infos = array();
if ($prefix_thumbnail != 'TN-')
{
array_push(
$infos,
'the thumbnail prefix configuration parameter was moved to configuration
file, copy config_local.inc.php from "tools" directory to "include" directory
and edit $conf[\'prefix_thumbnail\'] = '.$prefix_thumbnail
);
}
?>
+169
View File
@@ -37,6 +37,146 @@ else
}
}
/**
* replace old style #images.keywords by #tags. Requires a big data
* migration.
*
* @return void
*/
function tag_replace_keywords()
{
// code taken from upgrades 19 and 22
$query = '
CREATE TABLE '.PREFIX_TABLE.'tags (
id smallint(5) UNSIGNED NOT NULL auto_increment,
name varchar(255) BINARY NOT NULL,
url_name varchar(255) BINARY NOT NULL,
PRIMARY KEY (id)
)
;';
pwg_query($query);
$query = '
CREATE TABLE '.PREFIX_TABLE.'image_tag (
image_id mediumint(8) UNSIGNED NOT NULL,
tag_id smallint(5) UNSIGNED NOT NULL,
PRIMARY KEY (image_id,tag_id)
)
;';
pwg_query($query);
//
// Move keywords to tags
//
// each tag label is associated to a numeric identifier
$tag_id = array();
// to each tag id (key) a list of image ids (value) is associated
$tag_images = array();
$current_id = 1;
$query = '
SELECT id, keywords
FROM '.PREFIX_TABLE.'images
WHERE keywords IS NOT NULL
;';
$result = pwg_query($query);
while ($row = mysql_fetch_array($result))
{
foreach(preg_split('/[,]+/', $row['keywords']) as $keyword)
{
if (!isset($tag_id[$keyword]))
{
$tag_id[$keyword] = $current_id++;
}
if (!isset($tag_images[ $tag_id[$keyword] ]))
{
$tag_images[ $tag_id[$keyword] ] = array();
}
array_push(
$tag_images[ $tag_id[$keyword] ],
$row['id']
);
}
}
$datas = array();
foreach ($tag_id as $tag_name => $tag_id)
{
array_push(
$datas,
array(
'id' => $tag_id,
'name' => $tag_name,
'url_name' => str2url($tag_name),
)
);
}
if (!empty($datas))
{
mass_inserts(
PREFIX_TABLE.'tags',
array_keys($datas[0]),
$datas
);
}
$datas = array();
foreach ($tag_images as $tag_id => $images)
{
foreach (array_unique($images) as $image_id)
{
array_push(
$datas,
array(
'tag_id' => $tag_id,
'image_id' => $image_id,
)
);
}
}
if (!empty($datas))
{
mass_inserts(
PREFIX_TABLE.'image_tag',
array_keys($datas[0]),
$datas
);
}
//
// Delete images.keywords
//
$query = '
ALTER TABLE '.PREFIX_TABLE.'images DROP COLUMN keywords
;';
pwg_query($query);
//
// Add useful indexes
//
$query = '
ALTER TABLE '.PREFIX_TABLE.'tags
ADD INDEX tags_i1(url_name)
;';
pwg_query($query);
$query = '
ALTER TABLE '.PREFIX_TABLE.'image_tag
ADD INDEX image_tag_i1(tag_id)
;';
pwg_query($query);
// print_time('tags have replaced keywords');
}
tag_replace_keywords();
$queries = array(
@@ -297,4 +437,33 @@ INSERT INTO ".CONFIG_TABLE."
";
pwg_query($query);
// depending on the way the 1.5.0 was installed (from scratch or by upgrade)
// the database structure has small differences that should be corrected.
$query = '
ALTER TABLE '.PREFIX_TABLE.'users
CHANGE COLUMN password password varchar(32) default NULL
;';
pwg_query($query);
$to_keep = array('id', 'username', 'password', 'mail_address');
$query = '
DESC '.PREFIX_TABLE.'users
;';
$result = pwg_query($query);
while ($row = mysql_fetch_array($result))
{
if (!in_array($row['Field'], $to_keep))
{
$query = '
ALTER TABLE '.PREFIX_TABLE.'users
DROP COLUMN '.$row['Field'].'
;';
pwg_query($query);
}
}
?>
+40 -154
View File
@@ -131,146 +131,6 @@ function print_time($message)
$last_time = $new_time;
}
/**
* replace old style #images.keywords by #tags. Requires a big data
* migration.
*
* @return void
*/
function tag_replace_keywords()
{
// code taken from upgrades 19 and 22
$query = '
CREATE TABLE '.PREFIX_TABLE.'tags (
id smallint(5) UNSIGNED NOT NULL auto_increment,
name varchar(255) BINARY NOT NULL,
url_name varchar(255) BINARY NOT NULL,
PRIMARY KEY (id)
)
;';
pwg_query($query);
$query = '
CREATE TABLE '.PREFIX_TABLE.'image_tag (
image_id mediumint(8) UNSIGNED NOT NULL,
tag_id smallint(5) UNSIGNED NOT NULL,
PRIMARY KEY (image_id,tag_id)
)
;';
pwg_query($query);
//
// Move keywords to tags
//
// each tag label is associated to a numeric identifier
$tag_id = array();
// to each tag id (key) a list of image ids (value) is associated
$tag_images = array();
$current_id = 1;
$query = '
SELECT id, keywords
FROM '.PREFIX_TABLE.'images
WHERE keywords IS NOT NULL
;';
$result = pwg_query($query);
while ($row = mysql_fetch_array($result))
{
foreach(preg_split('/[,]+/', $row['keywords']) as $keyword)
{
if (!isset($tag_id[$keyword]))
{
$tag_id[$keyword] = $current_id++;
}
if (!isset($tag_images[ $tag_id[$keyword] ]))
{
$tag_images[ $tag_id[$keyword] ] = array();
}
array_push(
$tag_images[ $tag_id[$keyword] ],
$row['id']
);
}
}
$datas = array();
foreach ($tag_id as $tag_name => $tag_id)
{
array_push(
$datas,
array(
'id' => $tag_id,
'name' => $tag_name,
'url_name' => str2url($tag_name),
)
);
}
if (!empty($datas))
{
mass_inserts(
PREFIX_TABLE.'tags',
array_keys($datas[0]),
$datas
);
}
$datas = array();
foreach ($tag_images as $tag_id => $images)
{
foreach (array_unique($images) as $image_id)
{
array_push(
$datas,
array(
'tag_id' => $tag_id,
'image_id' => $image_id,
)
);
}
}
if (!empty($datas))
{
mass_inserts(
PREFIX_TABLE.'image_tag',
array_keys($datas[0]),
$datas
);
}
//
// Delete images.keywords
//
$query = '
ALTER TABLE '.PREFIX_TABLE.'images DROP COLUMN keywords
;';
pwg_query($query);
//
// Add useful indexes
//
$query = '
ALTER TABLE '.PREFIX_TABLE.'tags
ADD INDEX tags_i1(url_name)
;';
pwg_query($query);
$query = '
ALTER TABLE '.PREFIX_TABLE.'image_tag
ADD INDEX image_tag_i1(tag_id)
;';
pwg_query($query);
print_time('tags have replaced keywords');
}
// +-----------------------------------------------------------------------+
// | playing zone |
// +-----------------------------------------------------------------------+
@@ -278,6 +138,11 @@ ALTER TABLE '.PREFIX_TABLE.'image_tag
// echo implode('<br>', get_tables());
// echo '<pre>'; print_r(get_columns_of(get_tables())); echo '</pre>';
// foreach (get_available_upgrade_ids() as $upgrade_id)
// {
// echo $upgrade_id, '<br>';
// }
// +-----------------------------------------------------------------------+
// | template initialization |
// +-----------------------------------------------------------------------+
@@ -340,9 +205,34 @@ else
$upgrade_file = PHPWG_ROOT_PATH.'install/upgrade_'.$_GET['version'].'.php';
if (is_file($upgrade_file))
{
$page['infos'] = array();
$page['upgrade_start'] = get_moment();
$conf['die_on_sql_error'] = false;
include($upgrade_file);
// Available upgrades must be ignored after a fresh installation. To
// make PWG avoid upgrading, we must tell it upgrades have already been
// made.
list($dbnow) = mysql_fetch_row(pwg_query('SELECT NOW();'));
define('CURRENT_DATE', $dbnow);
$datas = array();
foreach (get_available_upgrade_ids() as $upgrade_id)
{
array_push(
$datas,
array(
'id' => $upgrade_id,
'applied' => CURRENT_DATE,
'description' => 'upgrade included in upgrade',
)
);
}
mass_inserts(
UPGRADE_TABLE,
array_keys($datas[0]),
$datas
);
$page['upgrade_end'] = get_moment();
$template->assign_block_vars(
@@ -363,18 +253,14 @@ else
)
);
if (!isset($infos))
{
$infos = array();
}
array_push(
$infos,
$page['infos'],
'[security] delete files "upgrade.php", "install.php" and "install"
directory'
);
array_push(
$infos,
$page['infos'],
'in include/mysql.inc.php, remove
<pre style="background-color:lightgray">
define(\'PHPWG_IN_UPGRADE\', true);
@@ -382,14 +268,14 @@ define(\'PHPWG_IN_UPGRADE\', true);
);
array_push(
$infos,
$page['infos'],
'Perform a maintenance check in [Administration>General>Maintenance]
if you encounter any problem.'
);
$template->assign_block_vars('upgrade.infos', array());
foreach ($infos as $info)
foreach ($page['infos'] as $info)
{
$template->assign_block_vars(
'upgrade.infos.info',
@@ -398,6 +284,12 @@ if you encounter any problem.'
)
);
}
$query = '
UPDATE '.USER_CACHE_TABLE.'
SET need_update = \'true\'
;';
pwg_query($query);
}
else
{
@@ -405,12 +297,6 @@ if you encounter any problem.'
}
}
$query = '
UPDATE '.USER_CACHE_TABLE.'
SET need_update = \'true\'
;';
pwg_query($query);
// +-----------------------------------------------------------------------+
// | sending html code |
// +-----------------------------------------------------------------------+