Index: /trunk/doc/ChangeLog
===================================================================
--- /trunk/doc/ChangeLog	(revision 869)
+++ /trunk/doc/ChangeLog	(revision 870)
@@ -1,2 +1,15 @@
+2005-09-20 Pierrick LE GALL
+
+	* update: upgrade from 1.4.0 or 1.4.1. Upgrade from 1.3.x is not
+	available anymore.
+
+	* update: README files updated for very near branch 1.5 :-)
+
+	* new: file tools/config_local.inc.php as example for optional
+	include/config_local.inc.php
+
+	* bug fixed: configuration parameter show_picture_name_on_title
+	was useless
+
 2005-09-18 Pierrick LE GALL
 
Index: /trunk/doc/README_en.txt
===================================================================
--- /trunk/doc/README_en.txt	(revision 869)
+++ /trunk/doc/README_en.txt	(revision 870)
@@ -1,11 +1,11 @@
-                               PhpWebGallery
+=============
+PhpWebGallery
+=============
 
-official website   : http://phpwebgallery.net
-documentation      : http://doc.phpwebgallery.net
-forum              : http://forum.phpwebgallery.net
+http://phpwebgallery.net
 
-+-----------------------------------------------------------------------------+
-|                        Installation instructions                            |
-+-----------------------------------------------------------------------------+
+
+Installation
+============
 
 1. extract files from the downloaded file (using tar or unzip command, or
@@ -18,7 +18,6 @@
    instructions of installation
 
-+-----------------------------------------------------------------------------+
-|                           Upgrade instructions                              |
-+-----------------------------------------------------------------------------+
+Upgrade
+=======
 
 1. elements to save :
@@ -41,7 +40,6 @@
    instructions
 
-+-----------------------------------------------------------------------------+
-|                              How to start                                   |
-+-----------------------------------------------------------------------------+
+How to start
+============
 
 Once installed or upgraded, your gallery is ready to run. Start by
@@ -56,7 +54,11 @@
 explaining how to use your gallery.
 
-+-----------------------------------------------------------------------------+
-|                               Newsletter                                    |
-+-----------------------------------------------------------------------------+
+Communication
+=============
+
+Newsletter
+----------
+
+https://gna.org/mail/?group=phpwebgallery
 
 It is *highly* recommended to subscribe to PhpWebGallery newsletter. This is
@@ -65,27 +67,35 @@
 mailing lists at this URL :
 
-                 https://gna.org/mail/?group=phpwebgallery
+No spam, no commercial use.
 
-Be sure that the mail address you are going to give for newsletter is
-completely unreadable by someone else than PhpWebGallery team and not
-present on any web page (a web search engine won't find it).
+Freshmeat
+---------
 
-PhpWebGallery also assure you that your mail address will NEVER be used for
-something else than PhpWebGallery informations.
+http://freshmeat.net/projects/phpwebgallery
 
-+-----------------------------------------------------------------------------+
-|                             Discussion forum                                |
-+-----------------------------------------------------------------------------+
+Want to stay informed at each release, stable and development
+release. Development releases notification are not send in the newsletter.
 
-A forum is available and recommended for any question (installation, bug
-reports, new feature requests) :
+Bugtracker
+----------
 
-                     http://forum.phpwebgallery.net
+http://bugs.phpwebgallery.net
 
-Before asking any question on the forum, do not hesitate to search for
-related topics... other users may have found same bugs, had same requests.
+Bugs and change requests tracking. The best way to have your bug corrected:
+it won't be forgotten (as in the forum).
 
-PhpWebGallery forum is a place open to every one. Please be always
-respectful in this place. Consider also that clear messages (with simple and
-direct subjects) are always prefered. It is forbidden (and useless) to say
-that your question is "urgent", you won't be answered in priority.
+Wiki
+----
+
+http://phpwebgallery.net/doc
+
+Wiki documentation: everyone can participate to improve documentation
+content.
+
+Message board
+-------------
+
+http://forum.phpwebgallery.net
+
+All communications (installation help, technical discussions) that can't be
+done in other channels.
Index: /trunk/doc/README_fr.txt
===================================================================
--- /trunk/doc/README_fr.txt	(revision 869)
+++ /trunk/doc/README_fr.txt	(revision 870)
@@ -1,11 +1,10 @@
-                               PhpWebGallery
+=============
+PhpWebGallery
+=============
 
-site officel   : http://phpwebgallery.net
-documentation  : http://doc.phpwebgallery.net
-forum          : http://forum.phpwebgallery.net
+http://phpwebgallery.net
 
-+-----------------------------------------------------------------------------+
-|                              installation                                   |
-+-----------------------------------------------------------------------------+
+Installation
+============
 
 1. décompresser à l'aide de winzip par exemple (winrar, winace et beaucoup
@@ -18,7 +17,6 @@
    instructions
 
-+-----------------------------------------------------------------------------+
-|                               mise à jour                                   |
-+-----------------------------------------------------------------------------+
+Mise à jour
+===========
 
 1. éléments à sauvegarder :
@@ -41,7 +39,6 @@
    instructions
 
-+-----------------------------------------------------------------------------+
-|                             Comment commencer                               |
-+-----------------------------------------------------------------------------+
+Comment commencer
+=================
 
 Une fois installée ou mise à jour, votre galerie est prête à
@@ -58,7 +55,11 @@
 consulter les instructions, expliquant comment utiliser votre galerie.
 
-+-----------------------------------------------------------------------------+
-|                               newsletter                                    |
-+-----------------------------------------------------------------------------+
+Communication
+=============
+
+Newsletter
+----------
+
+https://gna.org/mail/?group=phpwebgallery
 
 Il est *fortement* recommandé de souscrire à la newsletter de
@@ -68,30 +69,44 @@
 discussions disponibles sur la page suivante :
 
-         https://gna.org/mail/?group=phpwebgallery
+Pas de spam, pas d'utilisation commerciale.
 
-Etant moi-même très dérangé par le spam (courrier non solicité), je peux
-vous assurer que le mail que vous allez donner à l'équipe de PhpWebGallery
-est absolument illisible autrement que par nous sur une page avec accès
-sécurisé dont l'URL n'est en lien nul part sur le web (donc introuvable par
-un moteur de recherche).
+Freshmeat
+---------
 
-L'équipe de PhpWebGallery vous assure également que JAMAIS l'adresse qui
-nous a été confiée ne sera utilisée dans un autre cadre que la newsletter de
-PhpWebGallery.
+http://freshmeat.net/projects/phpwebgallery
 
-+-----------------------------------------------------------------------------+
-|                            forum de discussion                              |
-+-----------------------------------------------------------------------------+
+Permet d'être au courant des sorties de toutes les releases, et en
+exclusivité les builds de la branche de développement (ce qui n'est pas
+prévu sur les mailing lists "announce").
 
-Un forum est disponible et recommandé pour toutes vos questions
-(installation, rapport de bugs, demandes de nouvelles fonctionnalités) :
+Outil de suivi de bogues
+------------------------
 
-                     http://forum.phpwebgallery.net
+http://bugs.phpwebgallery.net
 
-Avant le poser une question, assurez-vous qu'elle n'a pas déjà sa réponse en
-effectuant une recherche.
+Gestion des bugs, mais aussi demande de nouvelles fonctionnalités. Rien de
+plus efficace pour qu'un bug soit corrigé : tant qu'il ne l'est pas, la
+"fiche" reste là à attendre, on ne l'oublie pas comme un topic sur le
+forum.
 
-Le forum est ouvert à tous. Merci d'y faire preuve de respect. Rappelez-vous
-que les messages clairs (avec un sujet direct et un énoncé du problème
-précis) sont toujours préférés. Il est interdit (et surtout inutile) de dire
-que votre question est "urgente", on ne vous répondra pas en priorité.
+Les demandes d'évolutions sont également gérées dans cet outil. Ce n'est pas
+forcément idéal car il ne s'agit pas de la même chose, mais le suivi du dev
+d'une nouvelle fonctionnalité peut se modéliser de la même façon que le
+suivi de la correction d'un bug.
+
+Wiki
+----
+
+http://phpwebgallery.net/doc
+
+Documentation suivant le système du wiki. Chacun peut participer à
+l'amélioration de la doc.
+
+Forum de discussion
+-------------------
+
+http://forum.phpwebgallery.net
+
+Un forum est disponible et recommandé pour toutes les questions autres que
+les demandes d'évolution et rapport de bogue (installation, discussions
+techniques).
Index: /trunk/include/config_default.inc.php
===================================================================
--- /trunk/include/config_default.inc.php	(revision 869)
+++ /trunk/include/config_default.inc.php	(revision 870)
@@ -35,5 +35,5 @@
  * It is recommended to let config_default.inc.php as provided and to
  * overwrite configuration in your local configuration file
- * config_local.inc.php
+ * config_local.inc.php. See tools/config_local.inc.php as an example.
  *
  * Why having some parameters in config table and others in
Index: unk/install/dbscheme.txt
===================================================================
--- /trunk/install/dbscheme.txt	(revision 869)
+++ 	(revision )
@@ -1,160 +1,0 @@
-
-table:caddie
-table:categories
-table:comments
-table:config
-table:favorites
-table:group_access
-table:groups
-table:history
-table:image_category
-table:images
-table:rate
-table:sessions
-table:sites
-table:user_access
-table:user_forbidden
-table:user_group
-table:users
-table:waiting
-
-column:user_id                   table:caddie         type:smallint                 nullable:N length:5   signed:Y
-column:element_id                table:caddie         type:mediumint                nullable:N length:8   signed:Y
-column:id                        table:categories     type:smallint                 nullable:N length:5   signed:N
-column:date_last                 table:categories     type:datetime                 nullable:Y
-column:nb_images                 table:categories     type:mediumint                nullable:N length:8   signed:N
-column:name                      table:categories     type:varchar                  nullable:N length:255 binary:N
-column:id_uppercat               table:categories     type:smallint                 nullable:Y length:5   signed:N
-column:comment                   table:categories     type:text                     nullable:Y
-column:dir                       table:categories     type:varchar                  nullable:Y length:255 binary:N
-column:rank                      table:categories     type:tinyint                  nullable:Y length:3   signed:N
-column:status                    table:categories     type:enum('public','private') nullable:N
-column:site_id                   table:categories     type:tinyint                  nullable:Y length:4   signed:N
-column:visible                   table:categories     type:enum('true','false')     nullable:N
-column:uploadable                table:categories     type:enum('true','false')     nullable:N
-column:representative_picture_id table:categories     type:mediumint                nullable:Y length:8   signed:N
-column:uppercats                 table:categories     type:varchar                  nullable:N length:255 binary:N
-column:commentable               table:categories     type:enum('true','false')     nullable:N
-column:global_rank               table:categories     type:varchar                  nullable:Y length:255 binary:N
-column:id                        table:comments       type:int                      nullable:N length:11  signed:N
-column:image_id                  table:comments       type:mediumint                nullable:N length:8   signed:N
-column:date                      table:comments       type:datetime                 nullable:N
-column:author                    table:comments       type:varchar                  nullable:Y length:255 binary:N
-column:content                   table:comments       type:longtext                 nullable:Y
-column:validated                 table:comments       type:enum('true','false')     nullable:N
-column:validation_date           table:comments       type:datetime                 nullable:Y
-column:param                     table:config         type:varchar                  nullable:N length:40  binary:N
-column:value                     table:config         type:varchar                  nullable:Y length:255 binary:N
-column:comment                   table:config         type:varchar                  nullable:Y length:255 binary:N
-column:user_id                   table:favorites      type:smallint                 nullable:N length:5   signed:N
-column:image_id                  table:favorites      type:mediumint                nullable:N length:8   signed:N
-column:group_id                  table:group_access   type:smallint                 nullable:N length:5   signed:N
-column:cat_id                    table:group_access   type:smallint                 nullable:N length:5   signed:N
-column:id                        table:groups         type:smallint                 nullable:N length:5   signed:N
-column:name                      table:groups         type:varchar                  nullable:N length:255 binary:N
-column:date                      table:history        type:datetime                 nullable:N
-column:login                     table:history        type:varchar                  nullable:Y length:15  binary:N
-column:IP                        table:history        type:varchar                  nullable:N length:50  binary:N
-column:category                  table:history        type:varchar                  nullable:Y length:150 binary:N
-column:file                      table:history        type:varchar                  nullable:Y length:50  binary:N
-column:picture                   table:history        type:varchar                  nullable:Y length:150 binary:N
-column:image_id                  table:image_category type:mediumint                nullable:N length:8   signed:N
-column:category_id               table:image_category type:smallint                 nullable:N length:5   signed:N
-column:id                        table:images         type:mediumint                nullable:N length:8   signed:N
-column:file                      table:images         type:varchar                  nullable:N length:255 binary:N
-column:date_available            table:images         type:datetime                 nullable:N
-column:date_creation             table:images         type:date                     nullable:Y
-column:tn_ext                    table:images         type:varchar                  nullable:Y length:4   binary:N
-column:name                      table:images         type:varchar                  nullable:Y length:255 binary:N
-column:comment                   table:images         type:text                     nullable:Y
-column:author                    table:images         type:varchar                  nullable:Y length:255 binary:N
-column:hit                       table:images         type:int                      nullable:N length:10  signed:N
-column:filesize                  table:images         type:mediumint                nullable:Y length:9   signed:N
-column:width                     table:images         type:smallint                 nullable:Y length:9   signed:N
-column:height                    table:images         type:smallint                 nullable:Y length:9   signed:N
-column:keywords                  table:images         type:varchar                  nullable:Y length:255 binary:N
-column:storage_category_id       table:images         type:smallint                 nullable:Y length:5   signed:N
-column:representative_ext        table:images         type:varchar                  nullable:Y length:4   binary:N
-column:date_metadata_update      table:images         type:date                     nullable:Y
-column:average_rate              table:images         type:float                    nullable:Y length:5,2 signed:N
-column:path                      table:images         type:varchar                  nullable:N length:255 binary:N
-column:user_id                   table:rate           type:smallint                 nullable:N length:5   signed:N
-column:element_id                table:rate           type:mediumint                nullable:N length:8   signed:N
-column:rate                      table:rate           type:tinyint                  nullable:N length:2   signed:N
-column:id                        table:sessions       type:varchar                  nullable:N length:255 binary:Y
-column:user_id                   table:sessions       type:smallint                 nullable:N length:5   signed:N
-column:expiration                table:sessions       type:datetime                 nullable:N
-column:id                        table:sites          type:tinyint                  nullable:N length:4   signed:Y
-column:galleries_url             table:sites          type:varchar                  nullable:N length:255 binary:N
-column:user_id                   table:user_access    type:smallint                 nullable:N length:5   signed:N
-column:cat_id                    table:user_access    type:smallint                 nullable:N length:5   signed:N
-column:user_id                   table:user_forbidden type:smallint                 nullable:N length:5   signed:N
-column:need_update               table:user_forbidden type:enum('true','false')     nullable:N
-column:forbidden_categories      table:user_forbidden type:text                     nullable:Y
-column:user_id                   table:user_group     type:smallint                 nullable:N length:5   signed:N
-column:group_id                  table:user_group     type:smallint                 nullable:N length:5   signed:N
-column:id                        table:users          type:smallint                 nullable:N length:5   signed:N
-column:username                  table:users          type:varchar                  nullable:N length:20  binary:Y
-column:password                  table:users          type:varchar                  nullable:Y length:32  binary:N
-column:mail_address              table:users          type:varchar                  nullable:Y length:255 binary:N
-column:nb_image_line             table:users          type:tinyint                  nullable:N length:1   signed:N
-column:nb_line_page              table:users          type:tinyint                  nullable:N length:3   signed:N
-column:status                    table:users          type:enum('admin','guest')    nullable:N
-column:language                  table:users          type:varchar                  nullable:N length:50  binary:N
-column:maxwidth                  table:users          type:smallint                 nullable:Y length:6   signed:Y
-column:maxheight                 table:users          type:smallint                 nullable:Y length:6   signed:Y
-column:expand                    table:users          type:enum('true','false')     nullable:N
-column:show_nb_comments          table:users          type:enum('true','false')     nullable:N
-column:recent_period             table:users          type:tinyint                  nullable:N length:3   signed:N
-column:template                  table:users          type:varchar                  nullable:N length:255 binary:N
-column:last_feed_check           table:users          type:datetime                 nullable:Y
-column:feed_id                   table:users          type:varchar                  nullable:Y length:50  binary:Y
-column:registration_date         table:users          type:datetime                 nullable:N
-column:id                        table:waiting        type:int                      nullable:N length:10  signed:N
-column:storage_category_id       table:waiting        type:smallint                 nullable:N length:5   signed:N
-column:file                      table:waiting        type:varchar                  nullable:N length:255 binary:N
-column:username                  table:waiting        type:varchar                  nullable:N length:255 binary:N
-column:mail_address              table:waiting        type:varchar                  nullable:N length:255 binary:N
-column:date                      table:waiting        type:int                      nullable:N length:10  signed:N
-column:tn_ext                    table:waiting        type:char                     nullable:Y length:3   binary:N
-column:validated                 table:waiting        type:enum('true','false')     nullable:N
-column:infos                     table:waiting        type:text                     nullable:Y
-
-PK:caddie_pk         table:caddie         column:user_id
-PK:caddie_pk         table:caddie         column:element_id
-PK:categories_pk     table:categories     column:id
-PK:comments_pk       table:comments       column:id
-PK:config_pk         table:config         column:param
-PK:favorites_pk      table:favorites      column:user_id
-PK:favorites_pk      table:favorites      column:image_id
-PK:group_access_pk   table:group_access   column:group_id
-PK:group_access_pk   table:group_access   column:cat_id
-PK:groups_pk         table:groups         column:id
-PK:image_category_pk table:image_category column:image_id
-PK:image_category_pk table:image_category column:category_id
-PK:images_pk         table:images         column:id
-PK:rate_pk           table:rate           column:user_id
-PK:rate_pk           table:rate           column:element_id
-PK:sessions_pk       table:sessions       column:id
-PK:sites_pk          table:sites          column:id
-PK:user_access_pk    table:user_access    column:user_id
-PK:user_access_pk    table:user_access    column:cat_id
-PK:user_forbidden_pk table:user_forbidden column:user_id
-PK:user_group_pk     table:user_group     column:group_id
-PK:user_group_pk     table:user_group     column:user_id
-PK:users_pk          table:users          column:id
-PK:waiting_pk        table:waiting        column:id
-
-index:categories_i2     table:categories     column:id_uppercat
-index:comments_i2       table:comments       column:validation_date
-index:comments_i1       table:comments       column:image_id
-index:history_i1        table:history        column:date
-index:image_category_i1 table:image_category column:image_id
-index:image_category_i2 table:image_category column:category_id
-index:images_i2         table:images         column:date_available
-index:images_i1         table:images         column:storage_category_id
-index:images_i3         table:images         column:average_rate
-index:images_i4         table:images         column:hit
-index:images_i5         table:images         column:date_creation
-index:sites_ui1         table:sites          column:galleries_url
-index:users_ui1         table:users          column:username
Index: unk/install/upgrade_1.3.0.php
===================================================================
--- /trunk/install/upgrade_1.3.0.php	(revision 869)
+++ 	(revision )
@@ -1,401 +1,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('IN_UPGRADE') or !IN_UPGRADE)
-{
-  die('Hacking attempt!');
-}
-
-$last_time = get_moment();
-
-// 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',
-  ADD COLUMN commentable enum('true','false') NOT NULL default 'true',
-  ADD COLUMN uppercats varchar(255) NOT NULL default '',
-  ADD COLUMN global_rank varchar(255) default NULL,
-  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,
-  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 '',
-  ADD COLUMN path varchar(255) NOT NULL default '',
-  ADD COLUMN date_metadata_update date default NULL,
-  ADD COLUMN average_rate float(5,2) unsigned default NULL,
-  ADD COLUMN representative_ext varchar(4) default NULL,
-  DROP INDEX storage_category_id,
-  ADD INDEX images_i1 (storage_category_id),
-  ADD INDEX images_i2 (date_available),
-  ADD INDEX images_i3 (average_rate),
-  ADD INDEX images_i4 (hit),
-  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,
-  ADD UNIQUE sites_ui1 (galleries_url)
-;",
-  
-  "
-ALTER TABLE phpwebgallery_users
-  DROP COLUMN long_period,
-  DROP COLUMN short_period,
-  ADD COLUMN recent_period tinyint(3) unsigned NOT NULL default '7',
-  DROP INDEX username,
-  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);
-}
-
-$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;
-
-execute_sqlfile(PHPWG_ROOT_PATH.'install/config.sql',
-                'phpwebgallery_',
-                PREFIX_TABLE);
-
-$queries = array(
-  "
-UPDATE phpwebgallery_config
-  SET value = '".$save['prefix_thumbnail']."'
-  WHERE param = 'prefix_thumbnail'
-;",
-
-  "
-UPDATE phpwebgallery_config
-  SET value = '".$save['mail_webmaster']."'
-  WHERE param = 'mail_webmaster'
-;"
-  );
-
-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 ' Saved configuration information restored</pre>';
-flush();
-$last_time = $new_time;
-
-// filling the new column categories.uppercats
-$id_uppercats = array();
-
-$query = '
-SELECT id, id_uppercat
-  FROM '.CATEGORIES_TABLE.'
-;';
-$result = pwg_query($query);
-while ($row = mysql_fetch_array($result))
-{
-  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);
-}
-
-$fields = array('primary' => array('id'), 'update' => array('uppercats'));
-mass_updates(CATEGORIES_TABLE, $fields, $datas);
-
-$new_time = get_moment();
-echo '<pre>['.get_elapsed_time($last_time, $new_time).']';
-echo ' filling the new column categories.uppercats</pre>';
-flush();
-$last_time = $new_time;
-
-// refresh calculated datas
-ordering();
-update_global_rank();
-update_category();
-
-$new_time = get_moment();
-echo '<pre>['.get_elapsed_time($last_time, $new_time).']';
-echo ' Calculated data updated (categories.rank, categories.global_rank,
-categories.date_last, categories.representative_picture_id,
-categories.nb_images)</pre>';
-flush();
-$last_time = $new_time;
-
-// 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);
-}
-
-$new_time = get_moment();
-echo '<pre>['.get_elapsed_time($last_time, $new_time).']';
-echo ' new column images.path filled</pre>';
-flush();
-$last_time = $new_time;
-
-// 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);
-}
-
-$new_time = get_moment();
-echo '<pre>['.get_elapsed_time($last_time, $new_time).']';
-echo ' all sub-categories of private categories become private</pre>';
-flush();
-$last_time = $new_time;
-
-$infos = array(
-  '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>'
-  
-  );
-
-?>
Index: unk/install/upgrade_1.3.1.php
===================================================================
--- /trunk/install/upgrade_1.3.1.php	(revision 869)
+++ 	(revision )
@@ -1,363 +1,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('IN_UPGRADE') or !IN_UPGRADE)
-{
-  die('Hacking attempt!');
-}
-
-$last_time = get_moment();
-
-// 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',
-  ADD COLUMN commentable enum('true','false') NOT NULL default 'true',
-  ADD COLUMN global_rank varchar(255) default NULL,
-  DROP INDEX id,
-  DROP INDEX id_uppercat,
-  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,
-  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
-  DROP INDEX image_id,
-  DROP INDEX category_id,
-  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 '',
-  ADD COLUMN path varchar(255) NOT NULL default '',
-  ADD COLUMN date_metadata_update date default NULL,
-  ADD COLUMN average_rate float(5,2) unsigned default NULL,
-  ADD COLUMN representative_ext varchar(4) default NULL,
-  DROP INDEX storage_category_id,
-  ADD INDEX images_i1 (storage_category_id),
-  ADD INDEX images_i2 (date_available),
-  ADD INDEX images_i3 (average_rate),
-  ADD INDEX images_i4 (hit),
-  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,
-  ADD UNIQUE sites_ui1 (galleries_url)
-;",
-  
-  "
-DROP TABLE phpwebgallery_user_category
-;",
-
-  "
-ALTER TABLE phpwebgallery_users
-  DROP COLUMN long_period,
-  DROP COLUMN short_period,
-  DROP COLUMN forbidden_categories,
-  ADD COLUMN recent_period tinyint(3) unsigned NOT NULL default '7',
-  DROP INDEX username,
-  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);
-}
-
-$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;
-
-execute_sqlfile(PHPWG_ROOT_PATH.'install/config.sql',
-                'phpwebgallery_',
-                PREFIX_TABLE);
-
-$queries = array(
-  "
-UPDATE phpwebgallery_config
-  SET value = '".$save['prefix_thumbnail']."'
-  WHERE param = 'prefix_thumbnail'
-;",
-
-  "
-UPDATE phpwebgallery_config
-  SET value = '".$save['mail_webmaster']."'
-  WHERE param = 'mail_webmaster'
-;"
-  );
-
-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 ' Saved configuration information restored</pre>';
-flush();
-$last_time = $new_time;
-
-ordering();
-update_global_rank();
-update_category();
-
-$new_time = get_moment();
-echo '<pre>['.get_elapsed_time($last_time, $new_time).']';
-echo ' Calculated data updated (categories.rank, categories.global_rank,
-categories.date_last, categories.representative_picture_id,
-categories.nb_images)</pre>';
-flush();
-$last_time = $new_time;
-
-// 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);
-}
-
-$new_time = get_moment();
-echo '<pre>['.get_elapsed_time($last_time, $new_time).']';
-echo ' new column images.path filled</pre>';
-flush();
-$last_time = $new_time;
-
-// 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);
-}
-
-$new_time = get_moment();
-echo '<pre>['.get_elapsed_time($last_time, $new_time).']';
-echo ' all sub-categories of private categories become private</pre>';
-flush();
-$last_time = $new_time;
-
-$infos = array(
-  '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>'
-  
-  );
-
-?>
Index: unk/install/upgrade_1.3.2.php
===================================================================
--- /trunk/install/upgrade_1.3.2.php	(revision 869)
+++ 	(revision )
@@ -1,362 +1,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('IN_UPGRADE') or !IN_UPGRADE)
-{
-  die('Hacking attempt!');
-}
-
-$last_time = get_moment();
-
-// 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',
-  ADD COLUMN commentable enum('true','false') NOT NULL default 'true',
-  ADD COLUMN global_rank varchar(255) default NULL,
-  DROP INDEX id_uppercat,
-  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,
-  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
-  DROP INDEX image_id,
-  DROP INDEX category_id,
-  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 '',
-  ADD COLUMN path varchar(255) NOT NULL default '',
-  ADD COLUMN date_metadata_update date default NULL,
-  ADD COLUMN average_rate float(5,2) unsigned default NULL,
-  ADD COLUMN representative_ext varchar(4) default NULL,
-  DROP INDEX storage_category_id,
-  ADD INDEX images_i1 (storage_category_id),
-  ADD INDEX images_i2 (date_available),
-  ADD INDEX images_i3 (average_rate),
-  ADD INDEX images_i4 (hit),
-  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,
-  ADD UNIQUE sites_ui1 (galleries_url)
-;",
-  
-  "
-DROP TABLE phpwebgallery_user_category
-;",
-
-  "
-ALTER TABLE phpwebgallery_users
-  DROP COLUMN long_period,
-  DROP COLUMN short_period,
-  DROP COLUMN forbidden_categories,
-  ADD COLUMN recent_period tinyint(3) unsigned NOT NULL default '7',
-  DROP INDEX username,
-  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);
-}
-
-$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;
-
-execute_sqlfile(PHPWG_ROOT_PATH.'install/config.sql',
-                'phpwebgallery_',
-                PREFIX_TABLE);
-
-$queries = array(
-  "
-UPDATE phpwebgallery_config
-  SET value = '".$save['prefix_thumbnail']."'
-  WHERE param = 'prefix_thumbnail'
-;",
-
-  "
-UPDATE phpwebgallery_config
-  SET value = '".$save['mail_webmaster']."'
-  WHERE param = 'mail_webmaster'
-;"
-  );
-
-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 ' Saved configuration information restored</pre>';
-flush();
-$last_time = $new_time;
-
-ordering();
-update_global_rank();
-update_category();
-
-$new_time = get_moment();
-echo '<pre>['.get_elapsed_time($last_time, $new_time).']';
-echo ' Calculated data updated (categories.rank, categories.global_rank,
-categories.date_last, categories.representative_picture_id,
-categories.nb_images)</pre>';
-flush();
-$last_time = $new_time;
-
-// 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);
-}
-
-$new_time = get_moment();
-echo '<pre>['.get_elapsed_time($last_time, $new_time).']';
-echo ' new column images.path filled</pre>';
-flush();
-$last_time = $new_time;
-
-// 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);
-}
-
-$new_time = get_moment();
-echo '<pre>['.get_elapsed_time($last_time, $new_time).']';
-echo ' all sub-categories of private categories become private</pre>';
-flush();
-$last_time = $new_time;
-
-$infos = array(
-  '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>'
-  
-  );
-
-?>
Index: unk/install/upgrade_1.3.3.php
===================================================================
--- /trunk/install/upgrade_1.3.3.php	(revision 869)
+++ 	(revision )
@@ -1,362 +1,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('IN_UPGRADE') or !IN_UPGRADE)
-{
-  die('Hacking attempt!');
-}
-
-$last_time = get_moment();
-
-// 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',
-  ADD COLUMN commentable enum('true','false') NOT NULL default 'true',
-  ADD COLUMN global_rank varchar(255) default NULL,
-  DROP INDEX id_uppercat,
-  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,
-  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
-  DROP INDEX image_id,
-  DROP INDEX category_id,
-  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 '',
-  ADD COLUMN path varchar(255) NOT NULL default '',
-  ADD COLUMN date_metadata_update date default NULL,
-  ADD COLUMN average_rate float(5,2) unsigned default NULL,
-  ADD COLUMN representative_ext varchar(4) default NULL,
-  DROP INDEX storage_category_id,
-  ADD INDEX images_i1 (storage_category_id),
-  ADD INDEX images_i2 (date_available),
-  ADD INDEX images_i3 (average_rate),
-  ADD INDEX images_i4 (hit),
-  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,
-  ADD UNIQUE sites_ui1 (galleries_url)
-;",
-  
-  "
-DROP TABLE phpwebgallery_user_category
-;",
-
-  "
-ALTER TABLE phpwebgallery_users
-  DROP COLUMN long_period,
-  DROP COLUMN short_period,
-  DROP COLUMN forbidden_categories,
-  ADD COLUMN recent_period tinyint(3) unsigned NOT NULL default '7',
-  DROP INDEX username,
-  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);
-}
-
-$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;
-
-execute_sqlfile(PHPWG_ROOT_PATH.'install/config.sql',
-                'phpwebgallery_',
-                PREFIX_TABLE);
-
-$queries = array(
-  "
-UPDATE phpwebgallery_config
-  SET value = '".$save['prefix_thumbnail']."'
-  WHERE param = 'prefix_thumbnail'
-;",
-
-  "
-UPDATE phpwebgallery_config
-  SET value = '".$save['mail_webmaster']."'
-  WHERE param = 'mail_webmaster'
-;"
-  );
-
-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 ' Saved configuration information restored</pre>';
-flush();
-$last_time = $new_time;
-
-ordering();
-update_global_rank();
-update_category();
-
-$new_time = get_moment();
-echo '<pre>['.get_elapsed_time($last_time, $new_time).']';
-echo ' Calculated data updated (categories.rank, categories.global_rank,
-categories.date_last, categories.representative_picture_id,
-categories.nb_images)</pre>';
-flush();
-$last_time = $new_time;
-
-// 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);
-}
-
-$new_time = get_moment();
-echo '<pre>['.get_elapsed_time($last_time, $new_time).']';
-echo ' new column images.path filled</pre>';
-flush();
-$last_time = $new_time;
-
-// 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);
-}
-
-$new_time = get_moment();
-echo '<pre>['.get_elapsed_time($last_time, $new_time).']';
-echo ' all sub-categories of private categories become private</pre>';
-flush();
-$last_time = $new_time;
-
-$infos = array(
-  '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>'
-  
-  );
-
-?>
Index: unk/install/upgrade_1.3.4.php
===================================================================
--- /trunk/install/upgrade_1.3.4.php	(revision 869)
+++ 	(revision )
@@ -1,362 +1,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('IN_UPGRADE') or !IN_UPGRADE)
-{
-  die('Hacking attempt!');
-}
-
-$last_time = get_moment();
-
-// 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',
-  ADD COLUMN commentable enum('true','false') NOT NULL default 'true',
-  ADD COLUMN global_rank varchar(255) default NULL,
-  DROP INDEX id_uppercat,
-  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,
-  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
-  DROP INDEX image_id,
-  DROP INDEX category_id,
-  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 '',
-  ADD COLUMN path varchar(255) NOT NULL default '',
-  ADD COLUMN date_metadata_update date default NULL,
-  ADD COLUMN average_rate float(5,2) unsigned default NULL,
-  ADD COLUMN representative_ext varchar(4) default NULL,
-  DROP INDEX storage_category_id,
-  ADD INDEX images_i1 (storage_category_id),
-  ADD INDEX images_i2 (date_available),
-  ADD INDEX images_i3 (average_rate),
-  ADD INDEX images_i4 (hit),
-  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,
-  ADD UNIQUE sites_ui1 (galleries_url)
-;",
-  
-  "
-DROP TABLE phpwebgallery_user_category
-;",
-
-  "
-ALTER TABLE phpwebgallery_users
-  DROP COLUMN long_period,
-  DROP COLUMN short_period,
-  DROP COLUMN forbidden_categories,
-  ADD COLUMN recent_period tinyint(3) unsigned NOT NULL default '7',
-  DROP INDEX username,
-  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);
-}
-
-$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;
-
-execute_sqlfile(PHPWG_ROOT_PATH.'install/config.sql',
-                'phpwebgallery_',
-                PREFIX_TABLE);
-
-$queries = array(
-  "
-UPDATE phpwebgallery_config
-  SET value = '".$save['prefix_thumbnail']."'
-  WHERE param = 'prefix_thumbnail'
-;",
-
-  "
-UPDATE phpwebgallery_config
-  SET value = '".$save['mail_webmaster']."'
-  WHERE param = 'mail_webmaster'
-;"
-  );
-
-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 ' Saved configuration information restored</pre>';
-flush();
-$last_time = $new_time;
-
-ordering();
-update_global_rank();
-update_category();
-
-$new_time = get_moment();
-echo '<pre>['.get_elapsed_time($last_time, $new_time).']';
-echo ' Calculated data updated (categories.rank, categories.global_rank,
-categories.date_last, categories.representative_picture_id,
-categories.nb_images)</pre>';
-flush();
-$last_time = $new_time;
-
-// 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);
-}
-
-$new_time = get_moment();
-echo '<pre>['.get_elapsed_time($last_time, $new_time).']';
-echo ' new column images.path filled</pre>';
-flush();
-$last_time = $new_time;
-
-// 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);
-}
-
-$new_time = get_moment();
-echo '<pre>['.get_elapsed_time($last_time, $new_time).']';
-echo ' all sub-categories of private categories become private</pre>';
-flush();
-$last_time = $new_time;
-
-$infos = array(
-  '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>'
-  
-  );
-
-?>
Index: /trunk/install/upgrade_1.4.0.php
===================================================================
--- /trunk/install/upgrade_1.4.0.php	(revision 870)
+++ /trunk/install/upgrade_1.4.0.php	(revision 870)
@@ -0,0 +1,275 @@
+<?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\'
+   )
+;';
+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'
+;"
+
+  );
+
+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
+    );
+}
+
+?>
Index: /trunk/install/upgrade_1.4.1.php
===================================================================
--- /trunk/install/upgrade_1.4.1.php	(revision 870)
+++ /trunk/install/upgrade_1.4.1.php	(revision 870)
@@ -0,0 +1,275 @@
+<?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\'
+   )
+;';
+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'
+;"
+
+  );
+
+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
+    );
+}
+
+?>
Index: /trunk/template/yoga/picture.tpl
===================================================================
--- /trunk/template/yoga/picture.tpl	(revision 869)
+++ /trunk/template/yoga/picture.tpl	(revision 870)
@@ -6,5 +6,8 @@
   <div class="browsePath"><a href="{U_HOME}">{L_HOME}</a>{LEVEL_SEPARATOR}{CATEGORY}</div>
   <div class="imageNumber">{PHOTO}</div>
+  <!-- BEGIN title -->
   <h1>{TITLE}</h1>
+  <!-- END title -->
+  <hr class="separation">
 </div>
 
Index: /trunk/tools/config_local.inc.php
===================================================================
--- /trunk/tools/config_local.inc.php	(revision 870)
+++ /trunk/tools/config_local.inc.php	(revision 870)
@@ -0,0 +1,8 @@
+<?php
+// this file is provided as an example. It does not modify the configuration
+// as long as it remains in "tools" directory. Move it to "include"
+// directory if you want to modify default configuration.
+
+$conf['prefix_thumbnail'] = 'thumb_';
+$conf['show_gt'] = true;
+?>
Index: /trunk/upgrade.php
===================================================================
--- /trunk/upgrade.php	(revision 869)
+++ /trunk/upgrade.php	(revision 870)
@@ -26,5 +26,4 @@
 // +-----------------------------------------------------------------------+
 
-define('IN_UPGRADE', true);
 define('PHPWG_ROOT_PATH', './');
 
@@ -35,14 +34,17 @@
 include(PHPWG_ROOT_PATH.'include/mysql.inc.php');
 // Is PhpWebGallery already installed ?
-if (defined('PHPWG_INSTALLED'))
-{
-  $message = 'PhpWebGallery is already installed. In include/mysql.inc.php,
-remove line
+if (!defined('PHPWG_IN_UPGRADE') or !PHPWG_IN_UPGRADE)
+{
+  $message = 'PhpWebGallery is not in upgrade mode. In include/mysql.inc.php,
+insert line
 <pre style="background-color:lightgray">
-define(\'PHPWG_INSTALLED\', true);
+define(\'PHPWG_IN_UPGRADE\', true);
 </pre>
 if you want to upgrade';
   die($message);
 }
+
+// concerning upgrade, we use the default users table
+$conf['users_table'] = $prefixeTable.'users';
 
 include_once(PHPWG_ROOT_PATH.'include/constants.php');
@@ -114,7 +116,9 @@
 // |                        template initialization                        |
 // +-----------------------------------------------------------------------+
-$template = setup_style('default');
+
+$template = new Template(PHPWG_ROOT_PATH.'template/yoga');
 $template->set_filenames(array('upgrade'=>'upgrade.tpl'));
 $template->assign_vars(array('RELEASE'=>PHPWG_VERSION));
+
 // +-----------------------------------------------------------------------+
 // |                          versions upgradable                          |
@@ -179,5 +183,14 @@
       $infos,
       '[security] delete files "upgrade.php", "install.php" and "install"
-directory');
+directory'
+      );
+
+    array_push(
+      $infos,
+      'in include/mysql.inc.php, remove
+<pre style="background-color:lightgray">
+define(\'PHPWG_IN_UPGRADE\', true);
+</pre>'
+      );
     
     $template->assign_block_vars('upgrade.infos', array());
