source: pmb5.0/trunk/fuentes/pmb/admin/misc/alter_vLlxXenial.inc.php @ 6976

Last change on this file since 6976 was 6976, checked in by jrpelegrina, 3 years ago

WIP in migration 14. Import db from Trusty and Xenial and Tejuelo with percentaje option

File size: 234.3 KB
Line 
1<?php
2// +-------------------------------------------------+
3//  2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: alter_vLlxXenial.inc.php, migración BD a v5.28 (Lliurex 16+ Xenial desde v.5.19 (Lliurex 16 Xenial)
6
7
8if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
9
10settype ($action,"string");
11
12mysql_query("set names latin1 ", $dbh);
13switch ($version_pmb_bdd) {
14        case "vLlxXenial":
15        //      case "v5.19":
16                // 10 actualizaciones desde xenial (v5.19) a xenial+ (v5.28)
17                $increment=100/10;
18                $action=$increment;
19                echo "<table ><tr><th>".$msg['admin_misc_action']."</th><th>".$msg['admin_misc_resultat']."</th></tr>";
20        //DG - Code Javascript d'analyse d'audience
21                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='script_analytics' "))==0){
22                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
23                                VALUES (0, 'opac', 'script_analytics', '', 'Code Javascript d\'analyse d\'audience (Par exemple pour Google Analytics, XiTi,..).','a_general',0)";
24                        echo traite_rqt($rqt,"insert opac_script_analytics into parametres");
25                }
26
27                //DG - Accessibilité OPAC : Paramètre d'activation
28                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='accessibility' "))==0){
29                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
30                                VALUES (0, 'opac', 'accessibility', '1', 'Accessibilité activée.\n 0 : Non.\n 1 : Oui.','a_general',0)";
31                        echo traite_rqt($rqt,"insert opac_accessibility = 1 into parametres");
32                }
33
34                //JP - Renseigner les champs d'exemplaires transfert_location_origine et transfert_statut_origine pour les statistiques et si ils ne le sont pas déjà (ajout sur la requête en v5.17)
35                $rqt = "UPDATE exemplaires SET transfert_location_origine=expl_location, update_date=update_date  WHERE transfert_location_origine=0 AND expl_id NOT IN (SELECT num_expl FROM transferts_demande JOIN transferts ON (num_transfert=id_transfert AND etat_transfert=0))";
36                echo traite_rqt($rqt,"update exemplaires transfert_location_origine");
37
38                $rqt = "UPDATE exemplaires SET transfert_statut_origine=expl_statut, update_date=update_date  WHERE transfert_statut_origine=0 AND expl_id NOT IN (SELECT num_expl FROM transferts_demande JOIN transferts ON (num_transfert=id_transfert AND etat_transfert=0))";
39                echo traite_rqt($rqt,"update exemplaires transfert_statut_origine");
40
41                // NG - Ajout paramètre indiquant la durée en jours de conservation des notices en tant que nouveauté
42                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='newrecord_timeshift' "))==0){
43                        $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
44                        VALUES ( 'pmb', 'newrecord_timeshift', '0', 'Nombre de jours de conservation des notices en tant que nouveauté.','', 0)";
45                        echo traite_rqt($rqt,"insert pmb_newrecord_timeshift");
46                }
47
48                // Création shorturls
49                $rqt="create table if not exists shorturls (
50                        id_shorturl int unsigned not null auto_increment primary key,
51                        shorturl_hash varchar(255) not null default '',
52                        shorturl_last_access datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
53                        shorturl_context text not null,
54                        shorturl_type varchar(255) not null default '',
55                        shorturl_action varchar(255) not null default ''
56                )";
57                echo traite_rqt($rqt,"create table shorturls");
58
59                // NG - Nouveautés
60                $rqt = "ALTER TABLE notices ADD notice_is_new int unsigned not null default 0" ;
61                echo traite_rqt($rqt,"ALTER TABLE notices ADD notice_is_new ");
62
63                $rqt = "ALTER TABLE notices ADD notice_date_is_new  datetime NOT NULL DEFAULT '0000-00-00 00:00:00'" ;
64                echo traite_rqt($rqt,"ALTER TABLE notices ADD notice_date_is_new ");
65
66                // VT - Modif du paramètre map_max_holds en gestion (ajout d'un parametre en plus, update du commentaire) le tout en gardant la valeur precedente
67                if (pmb_mysql_num_rows(pmb_mysql_query("select valeur_param from parametres where type_param= 'pmb' and sstype_param='map_max_holds' and valeur_param not like '%,%'"))!=0){
68                        $rqt="update parametres set valeur_param=concat(valeur_param,',0'), comment_param='Dans l\'ordre donné séparé par une virgule: Nombre limite d\'emprises affichées, mode de clustering \nValeurs possibles pour le mode :\n\n0 => Clustering standard avec augmentation dynamique des seuils jusqu\'a atteindre le nombre maximum d\'emprises affichées\n\n1 => Clusterisation de toutes les emprises' where type_param like 'pmb' and sstype_param like 'map_max_holds'";
69                        echo traite_rqt($rqt, "update parametres map_max_holds gestion");
70                }
71
72                // VT - Modif du paramètre map_max_holds en opac (ajout d'un parametre en plus, update du commentaire) le tout en gardant la valeur precedente
73                if (pmb_mysql_num_rows(pmb_mysql_query("select valeur_param from parametres where type_param= 'opac' and sstype_param='map_max_holds' and valeur_param not like '%,%'"))!=0){
74                        $rqt="update parametres set valeur_param=concat(valeur_param,',0'), comment_param='Dans l\'ordre donné séparé par une virgule: Nombre limite d\'emprises affichées, mode de clustering \nValeurs possibles pour le mode :\n\n0 => Clustering standard avec augmentation dynamique des seuils jusqu\'a atteindre le nombre maximum d\'emprises affichées\n\n1 => Clusterisation de toutes les emprises' where type_param like 'opac' and sstype_param like 'map_max_holds'";
75                        echo traite_rqt($rqt, "update parametres map_max_holds opac");
76                }
77
78                // DB - Modification de la table resa_planning (ajout de previsions sur bulletins)
79                $rqt = "alter table resa_planning add resa_idbulletin int(8) unsigned default '0' not null after resa_idnotice";
80                echo traite_rqt($rqt,"alter resa_planning add resa_idbulletin ");
81
82                //JP - Section origine pour les transferts
83                $rqt = "ALTER TABLE exemplaires ADD transfert_section_origine SMALLINT(5) NOT NULL default '0'" ;
84                echo traite_rqt($rqt,"ALTER TABLE exemplaires ADD transfert_section_origine ");
85
86                $rqt = "UPDATE exemplaires SET transfert_section_origine=expl_section, update_date=update_date WHERE transfert_section_origine=0 AND expl_id NOT IN (SELECT num_expl FROM transferts_demande JOIN transferts ON (num_transfert=id_transfert AND etat_transfert=0))";
87                echo traite_rqt($rqt,"update exemplaires transfert_section_origine");
88
89                //AP Modification du commentaire d'opac_notices_format : Ajout des templates django
90                $rqt = "update parametres set comment_param='Format d\'affichage des notices en résultat de recherche\n 0 : Utiliser le paramètre notices_format_onglets\n 1 : ISBD seul\n 2 : Public seul \n4 : ISBD et Public\n 5 : ISBD et Public avec ISBD en premier \n8 : Réduit (titre+auteurs) seul\n 9 : Templates django (Spécifier le nom du répertoire dans le paramètre notices_format_django_directory)' where type_param= 'opac' and sstype_param='notices_format' ";
91                echo traite_rqt($rqt,"update opac_notices_format into parametres");
92
93                // AP - Ajout paramètre indiquant le nom du répertoire des templates django à utiliser en affichage de notice
94                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='notices_format_django_directory' "))==0){
95                        $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
96                                VALUES ( 'opac', 'notices_format_django_directory', '', 'Nom du répertoire de templates django à utiliser en affichage de notice.\nLaisser vide pour utiliser le common.','e_aff_notice', 0)";
97                        echo traite_rqt($rqt,"insert notices_format_django_directory into parametres");
98                }
99
100                //MB: Ajouter une PK aux tables de vue
101                $res=pmb_mysql_query("SHOW TABLES LIKE 'opac_view_notices_%'");
102                if($res && pmb_mysql_num_rows($res)){
103                        while ($r=pmb_mysql_fetch_array($res)){
104                                $rqt = "ALTER TABLE ".$r[0]." DROP INDEX opac_view_num_notice" ;
105                                echo traite_rqt($rqt,"ALTER TABLE ".$r[0]." DROP INDEX opac_view_num_notice ");
106
107                                $rqt = "ALTER TABLE ".$r[0]." DROP PRIMARY KEY";
108                                echo traite_rqt($rqt, "ALTER TABLE ".$r[0]." DROP PRIMARY KEY");
109
110                                $rqt = "ALTER TABLE ".$r[0]." ADD PRIMARY KEY (opac_view_num_notice)";
111                                echo traite_rqt($rqt, "ALTER TABLE ".$r[0]." ADD PRIMARY KEY");
112                        }
113                }
114
115                //DG - Paramètre OPAC : Autoriser le téléchargement des documents numériques
116                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='allow_download_docnums' "))==0){
117                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
118                                VALUES (0, 'opac', 'allow_download_docnums', '1', 'Autoriser le téléchargement des documents numériques.\n 0 : Non.\n 1 : Individuellement (un par un).\n 2 : Archive ZIP.','a_general',0)";
119                        echo traite_rqt($rqt,"insert opac_allow_download_docnums = 1 into parametres");
120                }
121
122                //AB - Le nom du fichier de paramétrage du selecteur d'affichage de notice
123                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='notices_display_modes' "))==0){
124                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
125                                VALUES (0, 'opac', 'notices_display_modes', '', 'Nom du fichier xml de paramétrage du choix du mode d\'affichage des notices à l\'OPAC.\nPar défaut : display_modes_exemple.xml dans /opac_css/includes/records/','d_aff_recherche',0)";
126                        echo traite_rqt($rqt,"insert opac_notices_display_modes='' into parametres");
127                }
128
129                //DG - Lien pour en savoir plus sur l'utilisation des cookies et des traceurs
130                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='url_more_about_cookies' "))==0){
131                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
132                                VALUES (0, 'opac', 'url_more_about_cookies', '', 'Lien pour en savoir plus sur l\'utilisation des cookies et des traceurs','a_general',0)";
133                        echo traite_rqt($rqt,"insert opac_url_more_about_cookies into parametres");
134                }
135
136                //DG - MAJ du template de bannettes par défaut (identifiant 1)
137                $rqt = "UPDATE bannette_tpl SET bannettetpl_tpl='{{info.header}}\r\n<br /><br />\r\n<div class=\"summary\">\r\n{% for sommaire in sommaires %}\r\n<a href=\"#[{{sommaire.level}}]\">\r\n{{sommaire.level}} - {{sommaire.title}}\r\n</a>\r\n<br />\r\n{% endfor %}\r\n</div>\r\n<hr>\r\n{% for sommaire in sommaires %}\r\n<a name=\"[{{sommaire.level}}]\" />\r\n<h1>{{sommaire.level}} - {{sommaire.title}}</h1>\r\n{% for record in sommaire.records %}\r\n{{record.render}}\r\n<hr>\r\n{% endfor %}\r\n<br />\r\n{% endfor %}\r\n{{info.footer}}'
138                                WHERE bannettetpl_id=1";
139                echo traite_rqt($rqt,"ALTER minimum into bannette_tpl");
140
141                // DB - Modification de la table resa_planning (prévisions localisées)
142                $rqt = "alter table resa_planning add resa_loc_retrait int(5) unsigned not null default 0 ";
143                echo traite_rqt($rqt,"alter resa_planning add resa_loc_retrait ");
144
145                // JP - Ajout champ demande abonnement sur périodique
146                $rqt = "ALTER TABLE notices ADD opac_serialcirc_demande TINYINT UNSIGNED NOT NULL DEFAULT 1";
147                echo traite_rqt($rqt,"ALTER TABLE notices ADD opac_serialcirc_demande") ;
148
149                // JP - Ajout champ de classement sur infopages
150                $rqt = "ALTER TABLE infopages ADD infopage_classement varchar(255) NOT NULL default ''" ;
151                echo traite_rqt($rqt,"ALTER TABLE infopages ADD infopage_classement ");
152
153                // JP - Ajout autorisations sur recherches prédéfinies gestion
154                $rqt = "ALTER TABLE search_perso ADD autorisations MEDIUMTEXT NULL DEFAULT NULL ";
155                echo traite_rqt($rqt,"ALTER TABLE search_perso ADD autorisations") ;
156
157                $rqt = "UPDATE search_perso SET autorisations=num_user ";
158                echo traite_rqt($rqt,"UPDATE autorisations INTO search_perso");
159
160                //VT - Paramètre OPAC : Definition du chemin des templates d'autorités en OPAC
161                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='authorities_templates_folder' "))==0){
162                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
163                                VALUES (0, 'opac', 'authorities_templates_folder', './includes/templates/authorities/common', 'Repertoire des templates utilisés pour l\'affichage des autorités en OPAC','',1)";
164                        echo traite_rqt($rqt,"insert opac_authorities_templates_folder = ./includes/templates/authorities/common into parametres");
165                }
166
167                // JP - template par défaut pour les bannettes privées
168                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'dsi' and sstype_param='private_bannette_notices_template' "))==0){
169                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
170                VALUES (0, 'dsi', 'private_bannette_notices_template', '0', 'Id du template de notice utilisé par défaut en diffusion de bannettes privées. Si vide ou à 0, le template classique est utilisé.', '', 0)";
171                        echo traite_rqt($rqt, "insert private_bannette_notices_template into parameters");
172                }
173
174                // JP - ajout index manquants sur tables de champs persos
175                $rqt = "ALTER TABLE author_custom_values DROP INDEX i_acv_st " ;
176                echo traite_rqt($rqt,"DROP INDEX i_acv_st");
177                $rqt = "ALTER TABLE author_custom_values ADD INDEX i_acv_st(author_custom_small_text)" ;
178                echo traite_rqt($rqt,"ALTER TABLE author_custom_values ADD INDEX i_acv_st");
179
180                $rqt = "ALTER TABLE author_custom_values DROP INDEX i_acv_t " ;
181                echo traite_rqt($rqt,"DROP INDEX i_acv_t");
182                $rqt = "ALTER TABLE author_custom_values ADD INDEX i_acv_t(author_custom_text(255))" ;
183                echo traite_rqt($rqt,"ALTER TABLE author_custom_values ADD INDEX i_acv_t");
184
185                $rqt = "ALTER TABLE author_custom_values DROP INDEX i_acv_i " ;
186                echo traite_rqt($rqt,"DROP INDEX i_acv_i");
187                $rqt = "ALTER TABLE author_custom_values ADD INDEX i_acv_i(author_custom_integer)" ;
188                echo traite_rqt($rqt,"ALTER TABLE author_custom_values ADD INDEX i_acv_i");
189
190                $rqt = "ALTER TABLE author_custom_values DROP INDEX i_acv_d " ;
191                echo traite_rqt($rqt,"DROP INDEX i_acv_d");
192                $rqt = "ALTER TABLE author_custom_values ADD INDEX i_acv_d(author_custom_date)" ;
193                echo traite_rqt($rqt,"ALTER TABLE author_custom_values ADD INDEX i_acv_d");
194
195                $rqt = "ALTER TABLE author_custom_values DROP INDEX i_acv_f " ;
196                echo traite_rqt($rqt,"DROP INDEX i_acv_f");
197                $rqt = "ALTER TABLE author_custom_values ADD INDEX i_acv_f(author_custom_float)" ;
198                echo traite_rqt($rqt,"ALTER TABLE author_custom_values ADD INDEX i_acv_f");
199
200                $rqt = "ALTER TABLE authperso_custom_values DROP INDEX i_acv_st " ;
201                echo traite_rqt($rqt,"DROP INDEX i_acv_st");
202                $rqt = "ALTER TABLE authperso_custom_values ADD INDEX i_acv_st(authperso_custom_small_text)" ;
203                echo traite_rqt($rqt,"ALTER TABLE authperso_custom_values ADD INDEX i_acv_st");
204
205                $rqt = "ALTER TABLE authperso_custom_values DROP INDEX i_acv_t " ;
206                echo traite_rqt($rqt,"DROP INDEX i_acv_t");
207                $rqt = "ALTER TABLE authperso_custom_values ADD INDEX i_acv_t(authperso_custom_text(255))" ;
208                echo traite_rqt($rqt,"ALTER TABLE authperso_custom_values ADD INDEX i_acv_t");
209
210                $rqt = "ALTER TABLE authperso_custom_values DROP INDEX i_acv_i " ;
211                echo traite_rqt($rqt,"DROP INDEX i_acv_i");
212                $rqt = "ALTER TABLE authperso_custom_values ADD INDEX i_acv_i(authperso_custom_integer)" ;
213                echo traite_rqt($rqt,"ALTER TABLE authperso_custom_values ADD INDEX i_acv_i");
214
215                $rqt = "ALTER TABLE authperso_custom_values DROP INDEX i_acv_d " ;
216                echo traite_rqt($rqt,"DROP INDEX i_acv_d");
217                $rqt = "ALTER TABLE authperso_custom_values ADD INDEX i_acv_d(authperso_custom_date)" ;
218                echo traite_rqt($rqt,"ALTER TABLE authperso_custom_values ADD INDEX i_acv_d");
219
220                $rqt = "ALTER TABLE authperso_custom_values DROP INDEX i_acv_f " ;
221                echo traite_rqt($rqt,"DROP INDEX i_acv_f");
222                $rqt = "ALTER TABLE authperso_custom_values ADD INDEX i_acv_f(authperso_custom_float)" ;
223                echo traite_rqt($rqt,"ALTER TABLE authperso_custom_values ADD INDEX i_acv_f");
224
225                $rqt = "ALTER TABLE categ_custom_values DROP INDEX i_ccv_st " ;
226                echo traite_rqt($rqt,"DROP INDEX i_ccv_st");
227                $rqt = "ALTER TABLE categ_custom_values ADD INDEX i_ccv_st(categ_custom_small_text)" ;
228                echo traite_rqt($rqt,"ALTER TABLE categ_custom_values ADD INDEX i_ccv_st");
229
230                $rqt = "ALTER TABLE categ_custom_values DROP INDEX i_ccv_t " ;
231                echo traite_rqt($rqt,"DROP INDEX i_ccv_t");
232                $rqt = "ALTER TABLE categ_custom_values ADD INDEX i_ccv_t(categ_custom_text(255))" ;
233                echo traite_rqt($rqt,"ALTER TABLE categ_custom_values ADD INDEX i_ccv_t");
234
235                $rqt = "ALTER TABLE categ_custom_values DROP INDEX i_ccv_i " ;
236                echo traite_rqt($rqt,"DROP INDEX i_ccv_i");
237                $rqt = "ALTER TABLE categ_custom_values ADD INDEX i_ccv_i(categ_custom_integer)" ;
238                echo traite_rqt($rqt,"ALTER TABLE categ_custom_values ADD INDEX i_ccv_i");
239
240                $rqt = "ALTER TABLE categ_custom_values DROP INDEX i_ccv_d " ;
241                echo traite_rqt($rqt,"DROP INDEX i_ccv_d");
242                $rqt = "ALTER TABLE categ_custom_values ADD INDEX i_ccv_d(categ_custom_date)" ;
243                echo traite_rqt($rqt,"ALTER TABLE categ_custom_values ADD INDEX i_ccv_d");
244
245                $rqt = "ALTER TABLE categ_custom_values DROP INDEX i_ccv_f " ;
246                echo traite_rqt($rqt,"DROP INDEX i_ccv_f");
247                $rqt = "ALTER TABLE categ_custom_values ADD INDEX i_ccv_f(categ_custom_float)" ;
248                echo traite_rqt($rqt,"ALTER TABLE categ_custom_values ADD INDEX i_ccv_f");
249
250                $rqt = "ALTER TABLE cms_editorial_custom_values DROP INDEX i_ccv_st " ;
251                echo traite_rqt($rqt,"DROP INDEX i_ccv_st");
252                $rqt = "ALTER TABLE cms_editorial_custom_values ADD INDEX i_ccv_st(cms_editorial_custom_small_text)" ;
253                echo traite_rqt($rqt,"ALTER TABLE cms_editorial_custom_values ADD INDEX i_ccv_st");
254
255                $rqt = "ALTER TABLE cms_editorial_custom_values DROP INDEX i_ccv_t " ;
256                echo traite_rqt($rqt,"DROP INDEX i_ccv_t");
257                $rqt = "ALTER TABLE cms_editorial_custom_values ADD INDEX i_ccv_t(cms_editorial_custom_text(255))" ;
258                echo traite_rqt($rqt,"ALTER TABLE cms_editorial_custom_values ADD INDEX i_ccv_t");
259
260                $rqt = "ALTER TABLE cms_editorial_custom_values DROP INDEX i_ccv_i " ;
261                echo traite_rqt($rqt,"DROP INDEX i_ccv_i");
262                $rqt = "ALTER TABLE cms_editorial_custom_values ADD INDEX i_ccv_i(cms_editorial_custom_integer)" ;
263                echo traite_rqt($rqt,"ALTER TABLE cms_editorial_custom_values ADD INDEX i_ccv_i");
264
265                $rqt = "ALTER TABLE cms_editorial_custom_values DROP INDEX i_ccv_d " ;
266                echo traite_rqt($rqt,"DROP INDEX i_ccv_d");
267                $rqt = "ALTER TABLE cms_editorial_custom_values ADD INDEX i_ccv_d(cms_editorial_custom_date)" ;
268                echo traite_rqt($rqt,"ALTER TABLE cms_editorial_custom_values ADD INDEX i_ccv_d");
269
270                $rqt = "ALTER TABLE cms_editorial_custom_values DROP INDEX i_ccv_f " ;
271                echo traite_rqt($rqt,"DROP INDEX i_ccv_f");
272                $rqt = "ALTER TABLE cms_editorial_custom_values ADD INDEX i_ccv_f(cms_editorial_custom_float)" ;
273                echo traite_rqt($rqt,"ALTER TABLE cms_editorial_custom_values ADD INDEX i_ccv_f");
274
275                $rqt = "ALTER TABLE collection_custom_values DROP INDEX i_ccv_st " ;
276                echo traite_rqt($rqt,"DROP INDEX i_ccv_st");
277                $rqt = "ALTER TABLE collection_custom_values ADD INDEX i_ccv_st(collection_custom_small_text)" ;
278                echo traite_rqt($rqt,"ALTER TABLE collection_custom_values ADD INDEX i_ccv_st");
279
280                $rqt = "ALTER TABLE collection_custom_values DROP INDEX i_ccv_t " ;
281                echo traite_rqt($rqt,"DROP INDEX i_ccv_t");
282                $rqt = "ALTER TABLE collection_custom_values ADD INDEX i_ccv_t(collection_custom_text(255))" ;
283                echo traite_rqt($rqt,"ALTER TABLE collection_custom_values ADD INDEX i_ccv_t");
284
285                $rqt = "ALTER TABLE collection_custom_values DROP INDEX i_ccv_i " ;
286                echo traite_rqt($rqt,"DROP INDEX i_ccv_i");
287                $rqt = "ALTER TABLE collection_custom_values ADD INDEX i_ccv_i(collection_custom_integer)" ;
288                echo traite_rqt($rqt,"ALTER TABLE collection_custom_values ADD INDEX i_ccv_i");
289
290                $rqt = "ALTER TABLE collection_custom_values DROP INDEX i_ccv_d " ;
291                echo traite_rqt($rqt,"DROP INDEX i_ccv_d");
292                $rqt = "ALTER TABLE collection_custom_values ADD INDEX i_ccv_d(collection_custom_date)" ;
293                echo traite_rqt($rqt,"ALTER TABLE collection_custom_values ADD INDEX i_ccv_d");
294
295                $rqt = "ALTER TABLE collection_custom_values DROP INDEX i_ccv_f " ;
296                echo traite_rqt($rqt,"DROP INDEX i_ccv_f");
297                $rqt = "ALTER TABLE collection_custom_values ADD INDEX i_ccv_f(collection_custom_float)" ;
298                echo traite_rqt($rqt,"ALTER TABLE collection_custom_values ADD INDEX i_ccv_f");
299
300                $rqt = "ALTER TABLE gestfic0_custom_values DROP INDEX i_gcv_st " ;
301                echo traite_rqt($rqt,"DROP INDEX i_gcv_st");
302                $rqt = "ALTER TABLE gestfic0_custom_values ADD INDEX i_gcv_st(gestfic0_custom_small_text)" ;
303                echo traite_rqt($rqt,"ALTER TABLE gestfic0_custom_values ADD INDEX i_gcv_st");
304
305                $rqt = "ALTER TABLE gestfic0_custom_values DROP INDEX i_gcv_t " ;
306                echo traite_rqt($rqt,"DROP INDEX i_gcv_t");
307                $rqt = "ALTER TABLE gestfic0_custom_values ADD INDEX i_gcv_t(gestfic0_custom_text(255))" ;
308                echo traite_rqt($rqt,"ALTER TABLE gestfic0_custom_values ADD INDEX i_gcv_t");
309
310                $rqt = "ALTER TABLE gestfic0_custom_values DROP INDEX i_gcv_i " ;
311                echo traite_rqt($rqt,"DROP INDEX i_gcv_i");
312                $rqt = "ALTER TABLE gestfic0_custom_values ADD INDEX i_gcv_i(gestfic0_custom_integer)" ;
313                echo traite_rqt($rqt,"ALTER TABLE gestfic0_custom_values ADD INDEX i_gcv_i");
314
315                $rqt = "ALTER TABLE gestfic0_custom_values DROP INDEX i_gcv_d " ;
316                echo traite_rqt($rqt,"DROP INDEX i_gcv_d");
317                $rqt = "ALTER TABLE gestfic0_custom_values ADD INDEX i_gcv_d(gestfic0_custom_date)" ;
318                echo traite_rqt($rqt,"ALTER TABLE gestfic0_custom_values ADD INDEX i_gcv_d");
319
320                $rqt = "ALTER TABLE gestfic0_custom_values DROP INDEX i_gcv_f " ;
321                echo traite_rqt($rqt,"DROP INDEX i_gcv_f");
322                $rqt = "ALTER TABLE gestfic0_custom_values ADD INDEX i_gcv_f(gestfic0_custom_float)" ;
323                echo traite_rqt($rqt,"ALTER TABLE gestfic0_custom_values ADD INDEX i_gcv_f");
324
325                $rqt = "ALTER TABLE indexint_custom_values DROP INDEX i_icv_st " ;
326                echo traite_rqt($rqt,"DROP INDEX i_icv_st");
327                $rqt = "ALTER TABLE indexint_custom_values ADD INDEX i_icv_st(indexint_custom_small_text)" ;
328                echo traite_rqt($rqt,"ALTER TABLE indexint_custom_values ADD INDEX i_icv_st");
329
330                $rqt = "ALTER TABLE indexint_custom_values DROP INDEX i_icv_t " ;
331                echo traite_rqt($rqt,"DROP INDEX i_icv_t");
332                $rqt = "ALTER TABLE indexint_custom_values ADD INDEX i_icv_t(indexint_custom_text(255))" ;
333                echo traite_rqt($rqt,"ALTER TABLE indexint_custom_values ADD INDEX i_icv_t");
334
335                $rqt = "ALTER TABLE indexint_custom_values DROP INDEX i_icv_i " ;
336                echo traite_rqt($rqt,"DROP INDEX i_icv_i");
337                $rqt = "ALTER TABLE indexint_custom_values ADD INDEX i_icv_i(indexint_custom_integer)" ;
338                echo traite_rqt($rqt,"ALTER TABLE indexint_custom_values ADD INDEX i_icv_i");
339
340                $rqt = "ALTER TABLE indexint_custom_values DROP INDEX i_icv_d " ;
341                echo traite_rqt($rqt,"DROP INDEX i_icv_d");
342                $rqt = "ALTER TABLE indexint_custom_values ADD INDEX i_icv_d(indexint_custom_date)" ;
343                echo traite_rqt($rqt,"ALTER TABLE indexint_custom_values ADD INDEX i_icv_d");
344
345                $rqt = "ALTER TABLE indexint_custom_values DROP INDEX i_icv_f " ;
346                echo traite_rqt($rqt,"DROP INDEX i_icv_f");
347                $rqt = "ALTER TABLE indexint_custom_values ADD INDEX i_icv_f(indexint_custom_float)" ;
348                echo traite_rqt($rqt,"ALTER TABLE indexint_custom_values ADD INDEX i_icv_f");
349
350                $rqt = "ALTER TABLE publisher_custom_values DROP INDEX i_pcv_st " ;
351                echo traite_rqt($rqt,"DROP INDEX i_pcv_st");
352                $rqt = "ALTER TABLE publisher_custom_values ADD INDEX i_pcv_st(publisher_custom_small_text)" ;
353                echo traite_rqt($rqt,"ALTER TABLE publisher_custom_values ADD INDEX i_pcv_st");
354
355                $rqt = "ALTER TABLE publisher_custom_values DROP INDEX i_pcv_t " ;
356                echo traite_rqt($rqt,"DROP INDEX i_pcv_t");
357                $rqt = "ALTER TABLE publisher_custom_values ADD INDEX i_pcv_t(publisher_custom_text(255))" ;
358                echo traite_rqt($rqt,"ALTER TABLE publisher_custom_values ADD INDEX i_pcv_t");
359
360                $rqt = "ALTER TABLE publisher_custom_values DROP INDEX i_pcv_i " ;
361                echo traite_rqt($rqt,"DROP INDEX i_pcv_i");
362                $rqt = "ALTER TABLE publisher_custom_values ADD INDEX i_pcv_i(publisher_custom_integer)" ;
363                echo traite_rqt($rqt,"ALTER TABLE publisher_custom_values ADD INDEX i_pcv_i");
364
365                $rqt = "ALTER TABLE publisher_custom_values DROP INDEX i_pcv_d " ;
366                echo traite_rqt($rqt,"DROP INDEX i_pcv_d");
367                $rqt = "ALTER TABLE publisher_custom_values ADD INDEX i_pcv_d(publisher_custom_date)" ;
368                echo traite_rqt($rqt,"ALTER TABLE publisher_custom_values ADD INDEX i_pcv_d");
369
370                $rqt = "ALTER TABLE publisher_custom_values DROP INDEX i_pcv_f " ;
371                echo traite_rqt($rqt,"DROP INDEX i_pcv_f");
372                $rqt = "ALTER TABLE publisher_custom_values ADD INDEX i_pcv_f(publisher_custom_float)" ;
373                echo traite_rqt($rqt,"ALTER TABLE publisher_custom_values ADD INDEX i_pcv_f");
374
375                $rqt = "ALTER TABLE serie_custom_values DROP INDEX i_scv_st " ;
376                echo traite_rqt($rqt,"DROP INDEX i_scv_st");
377                $rqt = "ALTER TABLE serie_custom_values ADD INDEX i_scv_st(serie_custom_small_text)" ;
378                echo traite_rqt($rqt,"ALTER TABLE serie_custom_values ADD INDEX i_scv_st");
379
380                $rqt = "ALTER TABLE serie_custom_values DROP INDEX i_scv_t " ;
381                echo traite_rqt($rqt,"DROP INDEX i_scv_t");
382                $rqt = "ALTER TABLE serie_custom_values ADD INDEX i_scv_t(serie_custom_text(255))" ;
383                echo traite_rqt($rqt,"ALTER TABLE serie_custom_values ADD INDEX i_scv_t");
384
385                $rqt = "ALTER TABLE serie_custom_values DROP INDEX i_scv_i " ;
386                echo traite_rqt($rqt,"DROP INDEX i_scv_i");
387                $rqt = "ALTER TABLE serie_custom_values ADD INDEX i_scv_i(serie_custom_integer)" ;
388                echo traite_rqt($rqt,"ALTER TABLE serie_custom_values ADD INDEX i_scv_i");
389
390                $rqt = "ALTER TABLE serie_custom_values DROP INDEX i_scv_d " ;
391                echo traite_rqt($rqt,"DROP INDEX i_scv_d");
392                $rqt = "ALTER TABLE serie_custom_values ADD INDEX i_scv_d(serie_custom_date)" ;
393                echo traite_rqt($rqt,"ALTER TABLE serie_custom_values ADD INDEX i_scv_d");
394
395                $rqt = "ALTER TABLE serie_custom_values DROP INDEX i_scv_f " ;
396                echo traite_rqt($rqt,"DROP INDEX i_scv_f");
397                $rqt = "ALTER TABLE serie_custom_values ADD INDEX i_scv_f(serie_custom_float)" ;
398                echo traite_rqt($rqt,"ALTER TABLE serie_custom_values ADD INDEX i_scv_f");
399
400                $rqt = "ALTER TABLE subcollection_custom_values DROP INDEX i_scv_st " ;
401                echo traite_rqt($rqt,"DROP INDEX i_scv_st");
402                $rqt = "ALTER TABLE subcollection_custom_values ADD INDEX i_scv_st(subcollection_custom_small_text)" ;
403                echo traite_rqt($rqt,"ALTER TABLE subcollection_custom_values ADD INDEX i_scv_st");
404
405                $rqt = "ALTER TABLE subcollection_custom_values DROP INDEX i_scv_t " ;
406                echo traite_rqt($rqt,"DROP INDEX i_scv_t");
407                $rqt = "ALTER TABLE subcollection_custom_values ADD INDEX i_scv_t(subcollection_custom_text(255))" ;
408                echo traite_rqt($rqt,"ALTER TABLE subcollection_custom_values ADD INDEX i_scv_t");
409
410                $rqt = "ALTER TABLE subcollection_custom_values DROP INDEX i_scv_i " ;
411                echo traite_rqt($rqt,"DROP INDEX i_scv_i");
412                $rqt = "ALTER TABLE subcollection_custom_values ADD INDEX i_scv_i(subcollection_custom_integer)" ;
413                echo traite_rqt($rqt,"ALTER TABLE subcollection_custom_values ADD INDEX i_scv_i");
414
415                $rqt = "ALTER TABLE subcollection_custom_values DROP INDEX i_scv_d " ;
416                echo traite_rqt($rqt,"DROP INDEX i_scv_d");
417                $rqt = "ALTER TABLE subcollection_custom_values ADD INDEX i_scv_d(subcollection_custom_date)" ;
418                echo traite_rqt($rqt,"ALTER TABLE subcollection_custom_values ADD INDEX i_scv_d");
419
420                $rqt = "ALTER TABLE subcollection_custom_values DROP INDEX i_scv_f " ;
421                echo traite_rqt($rqt,"DROP INDEX i_scv_f");
422                $rqt = "ALTER TABLE subcollection_custom_values ADD INDEX i_scv_f(subcollection_custom_float)" ;
423                echo traite_rqt($rqt,"ALTER TABLE subcollection_custom_values ADD INDEX i_scv_f");
424
425                $rqt = "ALTER TABLE tu_custom_values DROP INDEX i_tcv_st " ;
426                echo traite_rqt($rqt,"DROP INDEX i_tcv_st");
427                $rqt = "ALTER TABLE tu_custom_values ADD INDEX i_tcv_st(tu_custom_small_text)" ;
428                echo traite_rqt($rqt,"ALTER TABLE tu_custom_values ADD INDEX i_tcv_st");
429
430                $rqt = "ALTER TABLE tu_custom_values DROP INDEX i_tcv_t " ;
431                echo traite_rqt($rqt,"DROP INDEX i_tcv_t");
432                $rqt = "ALTER TABLE tu_custom_values ADD INDEX i_tcv_t(tu_custom_text(255))" ;
433                echo traite_rqt($rqt,"ALTER TABLE tu_custom_values ADD INDEX i_tcv_t");
434
435                $rqt = "ALTER TABLE tu_custom_values DROP INDEX i_tcv_i " ;
436                echo traite_rqt($rqt,"DROP INDEX i_tcv_i");
437                $rqt = "ALTER TABLE tu_custom_values ADD INDEX i_tcv_i(tu_custom_integer)" ;
438                echo traite_rqt($rqt,"ALTER TABLE tu_custom_values ADD INDEX i_tcv_i");
439
440                $rqt = "ALTER TABLE tu_custom_values DROP INDEX i_tcv_d " ;
441                echo traite_rqt($rqt,"DROP INDEX i_tcv_d");
442                $rqt = "ALTER TABLE tu_custom_values ADD INDEX i_tcv_d(tu_custom_date)" ;
443                echo traite_rqt($rqt,"ALTER TABLE tu_custom_values ADD INDEX i_tcv_d");
444
445                $rqt = "ALTER TABLE tu_custom_values DROP INDEX i_tcv_f " ;
446                echo traite_rqt($rqt,"DROP INDEX i_tcv_f");
447                $rqt = "ALTER TABLE tu_custom_values ADD INDEX i_tcv_f(tu_custom_float)" ;
448                echo traite_rqt($rqt,"ALTER TABLE tu_custom_values ADD INDEX i_tcv_f");
449
450
451                //AR - Paramètre Portail : Activer la mise en cache des images
452                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'cms' and sstype_param='active_image_cache' "))==0){
453                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
454                                VALUES (0, 'cms', 'active_image_cache', '0', 'Activer la mise en cache des vignettes du contenu éditorial.\n 0: non \n 1:Oui \nAttention, si l\'OPAC ne se trouve pas sur le même serveur que la gestion, la purge du cache ne peut pas se faire automatiquement','',0)";
455                        echo traite_rqt($rqt,"insert cms_active_image_cache into parametres");
456                }
457
458                // MHo - Correction des messages des parametres sur l'ordre d'affichage et le mode d'affichage des concepts d'une notice (remplacement de "categorie" par "concept")
459                $rqt="UPDATE parametres SET comment_param='Paramétrage de l\'ordre d\'affichage des concepts d\'une notice.\nPar ordre alphabétique: 0(par défaut)\nPar ordre de saisie: 1'
460                        WHERE type_param='thesaurus' AND sstype_param='concepts_affichage_ordre' AND section_param='concepts'";
461                echo traite_rqt($rqt,"update comment_param de concepts_affichage_ordre into parametres ");
462
463                $rqt="UPDATE parametres SET comment_param='Affichage des concepts en ligne.\n 0 : Non.\n 1 : Oui.'
464                        WHERE type_param='thesaurus' AND sstype_param='concepts_concept_in_line' AND section_param='concepts'";
465                echo traite_rqt($rqt,"update comment_param de concepts_concept_in_line into parametres ");
466
467                //DG - Flag pour savoir si le mot de passe est déjà encrypté
468                $rqt= "alter table empr add empr_password_is_encrypted int(1) not null default 0 after empr_password";
469                echo traite_rqt($rqt,"alter table empr add empr_password_is_encrypted");
470
471                //DG - Phrase pour le hashage des mots de passe emprunteurs (paramètre invisible)
472                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='empr_password_salt' "))==0){
473                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
474                                VALUES (0, 'opac', 'empr_password_salt', '', 'Phrase pour le hashage des mots de passe emprunteurs','a_general',1)";
475                        echo traite_rqt($rqt,"insert opac_empr_password_salt into parametres");
476                }
477
478                //DG - Info d'encodage des mots de passe lecteurs pour la connexion à l'Opac
479                $res=pmb_mysql_query("SELECT count(*) FROM empr");
480                if($res && pmb_mysql_result($res,0,0)){
481                        $rqt = " select 1 " ;
482                        echo traite_rqt($rqt,"<b><a href='".$base_path."/admin.php?categ=netbase' target=_blank>VOUS DEVEZ ENCODER LES MOTS DE PASSE LECTEURS (APRES ETAPES DE MISE A JOUR) / YOU MUST ENCODE PASSWORD READERS (STEPS AFTER UPDATE) : Admin > Outils > Nettoyage de base</a></b> ") ;
483                }
484
485                // JP - Parametre affichage des dates de creation et modification notices
486                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='notices_show_dates' "))==0){
487                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion) VALUES (0, 'pmb', 'notices_show_dates', '0', 'Afficher les dates des notices ? \n 0 : Aucune date.\n 1 : Date de création et modification.', '',0) ";
488                        echo traite_rqt($rqt, "insert expl_show_dates=0 into parameters");
489                }
490
491                // AR - Paramètre pour activer la compression des CSS
492                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='compress_css' "))==0){
493                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
494                                VALUES (0, 'opac', 'compress_css', '0', 'Activer la compilation et la compression des feuilles de styles.\n0: Non\n1: Oui','a_general',0)";
495                        echo traite_rqt($rqt,"insert opac_compress_css into parametres");
496                }
497
498                //VT - Ajout d'un champ tonalité marclist dans la table titres_uniformes
499                $rqt = "ALTER TABLE titres_uniformes ADD tu_tonalite_marclist VARCHAR(5) NOT NULL DEFAULT '' ";
500                echo traite_rqt($rqt,"alter titres_uniformes add tu_tonalite_marclist");
501
502                //VT - Ajout d'un champ forme marclist dans la table titres_uniformes
503                $rqt = "ALTER TABLE titres_uniformes ADD tu_forme_marclist VARCHAR(5) NOT NULL DEFAULT '' ";
504                echo traite_rqt($rqt,"alter titres_uniformes add tu_forme_marclist");
505
506                // DB - Modification de la table resa_planning (quantité prévisions)
507                $rqt = "alter table resa_planning add resa_qty int(5) unsigned not null default 1";
508                echo traite_rqt($rqt,"alter resa_planning add resa_qty");
509                $rqt = "alter table resa_planning add resa_remaining_qty int(5) unsigned not null default 1";
510                echo traite_rqt($rqt,"alter resa_planning add resa_remaining_qty");
511                // DB - Modification de la table resa (lien vers prévisions)
512                $rqt = "alter table resa add resa_planning_id_resa int(8) unsigned not null default 0";
513                echo traite_rqt($rqt,"alter resa add resa_planning_id_resa");
514
515                // DB - Delai d'alerte pour le transfert des previsions en reservations
516                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='resa_planning_toresa' "))==0){
517                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
518                                VALUES (0, 'pmb', 'resa_planning_toresa', '10', 'Délai d\'alerte pour le transfert des prévisions en réservations (en jours). ' ,'',0)";
519                        echo traite_rqt($rqt,"insert resa_planning_toresa into parametres");
520                }
521               
522                //JP - Nettoyage vues en erreur suite ajout index unique
523                $res=mysql_query("SHOW TABLES LIKE 'opac_view_notices_%'");
524                if($res && mysql_num_rows($res)){
525                        while ($r=mysql_fetch_array($res)){
526                                $rqt = "TRUNCATE TABLE ".$r[0] ;
527                                echo traite_rqt($rqt,"TRUNCATE TABLE ".$r[0]);
528               
529                                $rqt = "ALTER TABLE ".$r[0]." DROP INDEX opac_view_num_notice" ;
530                                echo traite_rqt($rqt,"ALTER TABLE ".$r[0]." DROP INDEX opac_view_num_notice ");
531               
532                                $rqt = "ALTER TABLE ".$r[0]." DROP PRIMARY KEY";
533                                echo traite_rqt($rqt, "ALTER TABLE ".$r[0]." DROP PRIMARY KEY");
534               
535                                $rqt = "ALTER TABLE ".$r[0]." ADD PRIMARY KEY (opac_view_num_notice)";
536                                echo traite_rqt($rqt, "ALTER TABLE ".$r[0]." ADD PRIMARY KEY");
537                        }
538               
539                        $rqt = " select 1 " ;
540                        echo traite_rqt($rqt,"<b><a href='".$base_path."/admin.php?categ=opac&sub=opac_view&section=list' target=_blank>VOUS DEVEZ RECALCULER LES VUES OPAC (APRES ETAPES DE MISE A JOUR) / YOU MUST RECALCULATE OPAC VIEWS (STEPS AFTER UPDATE) : Admin > Vues Opac > Générer les recherches</a></b> ") ;
541                }
542               
543                //JP - nettoyage table authorities_sources
544                $rqt = "DELETE FROM authorities_sources WHERE num_authority=0";
545                echo traite_rqt($rqt,"DELETE FROM authorities_sources num_authority vide");
546               
547                //JP - accès rapide pour les paniers de notices
548                $rqt = "ALTER TABLE caddie ADD acces_rapide INT NOT NULL default 0";
549                echo traite_rqt($rqt,"ALTER TABLE caddie ADD acces_rapide");
550               
551                //JP - modification index notices_mots_global_index
552                $rqt = "truncate table notices_mots_global_index";
553                echo traite_rqt($rqt,"truncate table notices_mots_global_index");
554                       
555                $rqt ="alter table notices_mots_global_index drop primary key";
556                echo traite_rqt($rqt,"alter table notices_mots_global_index drop primary key");
557                $rqt ="alter table notices_mots_global_index add primary key (id_notice,code_champ,code_ss_champ,num_word,position,field_position)";
558                echo traite_rqt($rqt,"alter table notices_mots_global_index add primary key");
559                // Info de réindexation
560                $rqt = " select 1 " ;
561                echo traite_rqt($rqt,"<b><a href='".$base_path."/admin.php?categ=netbase' target=_blank>VOUS DEVEZ REINDEXER (APRES ETAPES DE MISE A JOUR) / YOU MUST REINDEX (STEPS AFTER UPDATE) : Admin > Outils > Nettoyage de base</a></b> ") ;
562                       
563                //DG - Proposer la conservation de catégories en remplacement de notice
564                $rqt= "alter table users add deflt_notice_replace_keep_categories int(1) not null default 0";
565                echo traite_rqt($rqt,"alter table users add deflt_notice_replace_keep_categories");
566               
567                //DG - Champs perso pret
568                $rqt = "create table if not exists pret_custom (
569                        idchamp int(10) unsigned NOT NULL auto_increment,
570                        name varchar(255) NOT NULL default '',
571                        titre varchar(255) default NULL,
572                        type varchar(10) NOT NULL default 'text',
573                        datatype varchar(10) NOT NULL default '',
574                        options text,
575                        multiple int(11) NOT NULL default 0,
576                        obligatoire int(11) NOT NULL default 0,
577                        ordre int(11) default NULL,
578                        search INT(1) unsigned NOT NULL DEFAULT 0,
579                        export INT(1) unsigned NOT NULL DEFAULT 0,
580                        filters INT(1) unsigned NOT NULL DEFAULT 0,
581                        exclusion_obligatoire INT(1) unsigned NOT NULL DEFAULT 0,
582                        pond int not null default 100,
583                        opac_sort INT NOT NULL DEFAULT 0,
584                        PRIMARY KEY  (idchamp)) ";
585                echo traite_rqt($rqt,"create table pret_custom ");
586               
587                $rqt = "create table if not exists pret_custom_lists (
588                        pret_custom_champ int(10) unsigned NOT NULL default 0,
589                        pret_custom_list_value varchar(255) default NULL,
590                        pret_custom_list_lib varchar(255) default NULL,
591                        ordre int(11) default NULL,
592                        KEY i_pret_custom_champ (pret_custom_champ),
593                        KEY i_pret_champ_list_value (pret_custom_champ,pret_custom_list_value)) " ;
594                echo traite_rqt($rqt,"create table if not exists pret_custom_lists ");
595               
596                $rqt = "create table if not exists pret_custom_values (
597                        pret_custom_champ int(10) unsigned NOT NULL default 0,
598                        pret_custom_origine int(10) unsigned NOT NULL default 0,
599                        pret_custom_small_text varchar(255) default NULL,
600                        pret_custom_text text,
601                        pret_custom_integer int(11) default NULL,
602                        pret_custom_date date default NULL,
603                        pret_custom_float float default NULL,
604                        KEY i_pret_custom_champ (pret_custom_champ),
605                        KEY i_pret_custom_origine (pret_custom_origine)) " ;
606                echo traite_rqt($rqt,"create table if not exists pret_custom_values ");
607                       
608                //DG - maj valeurs possibles pour empr_sort_rows
609                if (mysql_num_rows(mysql_query("select 1 from parametres where type_param= 'empr' and sstype_param='sort_rows'  and (valeur_param like '%#e%' or valeur_param like '%#p%') "))==0){
610                        $rqt = "update parametres set valeur_param=replace(valeur_param,'#','#e'), comment_param='Colonnes qui seront disponibles pour le tri des emprunteurs. Les colonnes possibles sont : \n n: nom+prénom \n b: code-barres \n c: catégories \n g: groupes \n l: localisation \n s: statut \n cp: code postal \n v: ville \n y: année de naissance \n ab: type d\'abonnement \n #e[n] : [n] = id des champs personnalisés lecteurs \n #p[n] : [n] = id des champs personnalisés prêts' where type_param= 'empr' and sstype_param='sort_rows' ";
611                        echo traite_rqt($rqt,"update empr_sort_rows into parametres");
612                }
613                       
614                //DG - maj valeurs possibles pour empr_filter_rows
615                if (mysql_num_rows(mysql_query("select 1 from parametres where type_param= 'empr' and sstype_param='filter_rows' and (valeur_param like '%#e%' or valeur_param like '%#p%') "))==0){
616                        $rqt = "update parametres set valeur_param=replace(valeur_param,'#','#e'), comment_param='Colonnes disponibles pour filtrer la liste des emprunteurs : \n v: ville\n l: localisation\n c: catégorie\n s: statut\n g: groupe\n y: année de naissance\n cp: code postal\n cs : code statistique\n ab : type d\'abonnement \n #e[n] : [n] = id des champs personnalisés lecteurs \n #p[n] : [n] = id des champs personnalisés prêts' where type_param= 'empr' and sstype_param='filter_rows' ";
617                        echo traite_rqt($rqt,"update empr_filter_rows into parametres");
618                }
619                       
620                //DG - maj valeurs possibles pour empr_show_rows
621                if (mysql_num_rows(mysql_query("select 1 from parametres where type_param= 'empr' and sstype_param='show_rows'  and (valeur_param like '%#e%' or valeur_param like '%#p%') "))==0){
622                        $rqt = "update parametres set valeur_param=replace(valeur_param,'#','#e'), comment_param='Colonnes affichées en liste de lecteurs, saisir les colonnes séparées par des virgules. Les colonnes disponibles pour l\'affichage de la liste des emprunteurs sont : \n n: nom+prénom \n a: adresse \n b: code-barre \n c: catégories \n g: groupes \n l: localisation \n s: statut \n cp: code postal \n v: ville \n y: année de naissance \n ab: type d\'abonnement \n #e[n] : [n] = id des champs personnalisés lecteurs \n 1: icône panier' where type_param= 'empr' and sstype_param='show_rows' ";
623                        echo traite_rqt($rqt,"update empr_show_rows into parametres");
624                }
625                       
626                // AP - Création d'une table pour la gestion de la suppression des enregistrements OAI
627                $rqt = "CREATE TABLE if not exists connectors_out_oai_deleted_records (
628                                num_set int(11) unsigned NOT NULL DEFAULT 0,
629                                num_notice int(11) unsigned NOT NULL DEFAULT 0,
630                                deletion_date datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
631                                PRIMARY KEY (num_set, num_notice))";
632                echo traite_rqt($rqt,"CREATE TABLE connectors_out_oai_deleted_records") ;
633               
634                // AP - Ajout du stockage de la grammaire d'une vedette
635                $rqt = "ALTER TABLE vedette ADD grammar varchar(255) NOT NULL default 'rameau'" ;
636                echo traite_rqt($rqt,"ALTER TABLE vedette ADD grammar");
637               
638                //JP - recalcul des isbn à cause du nouveau fomatage
639                require_once($include_path."/isbn.inc.php");
640                $res=pmb_mysql_query("SELECT notice_id, code FROM notices WHERE code<>'' AND niveau_biblio='m' AND code LIKE '97%'");
641                if($res && pmb_mysql_num_rows($res)){
642                        while ($row=pmb_mysql_fetch_object($res)) {
643                                $code = $row->code;
644                                $new_code = formatISBN($code);
645                                if ($code!= $new_code){
646                                        pmb_mysql_query("UPDATE notices SET code='".addslashes($new_code)."', update_date=update_date WHERE notice_id=".$row->notice_id);
647                                }
648                        }
649                }
650                $rqt = " select 1 " ;
651                echo traite_rqt($rqt,"update notices code / ISBN check and clean") ;
652                       
653               
654                //JP - mise à jour des dates de validation des commandes
655                $rqt="UPDATE actes SET date_valid=date_acte WHERE statut>1 AND date_valid='0000-00-00'";
656                echo traite_rqt($rqt,"update actes date_validation ");
657               
658
659//-----------------LLIUREX 07/03/2018---------------   
660                echo "</table>";
661                $rqt = "update parametres set valeur_param='".$action."' where type_param='pmb' and sstype_param='bdd_version' " ;
662                $res = pmb_mysql_query($rqt, $dbh) ;
663                echo "<strong><font color='#FF0000'>".$msg[1807]." ".number_format($action, 2, ',', '.')."%</font></strong><br />";
664                $action=$action+$increment;
665                //echo form_relance ("v5.20");
666
667        //case "v5.20":
668
669                        echo "<table ><tr><th>".$msg['admin_misc_action']."</th><th>".$msg['admin_misc_resultat']."</th></tr>";
670                        // +-------------------------------------------------+
671
672                        //DG - maj Colonnes exemplaires affichées en gestion - ajout en commentaire du groupe d'exemplaires
673                        $rqt = "update parametres set comment_param='Colonne des exemplaires, dans l\'ordre donné, séparé par des virgules : expl_cb,expl_cote,location_libelle,section_libelle,statut_libelle,tdoc_libelle,groupexpl_name #n : id des champs personnalisés \r\n expl_cb est obligatoire et sera ajouté si absent' where type_param= 'pmb' and sstype_param='expl_data' ";
674                        echo traite_rqt($rqt,"update pmb_expl_data into parametres");
675
676                        // AP - Ajout d'une colonne pour lier une notice à une demande
677                        $rqt = "ALTER TABLE demandes ADD num_linked_notice mediumint(8) UNSIGNED NOT NULL default 0" ;
678                        echo traite_rqt($rqt,"ALTER TABLE demandes ADD num_linked_notice");
679
680                        // AP - Ajout d'un parametre permettant d'autoriser le lecteur à faire une demande à partir d'une notice
681                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='demandes_allow_from_record' "))==0){
682                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
683                                                VALUES (0, 'opac', 'demandes_allow_from_record', '0',   'Autoriser les lecteurs à créer une demande à partir d\'une notice.\n 0 : Non\n 1 : Oui', 'a_general', 0) ";
684                                echo traite_rqt($rqt, "insert opac_demandes_allow_from_record into parameters");
685                        }
686
687
688                        //VT - Parametre d'activation de la génération des exemplaires fantomes dans la popup de transfert en gestion
689                        if (pmb_mysql_num_rows(pmb_mysql_query("SELECT 1 FROM parametres WHERE type_param= 'transferts' and sstype_param='ghost_expl_enable' "))==0){
690                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, gestion, comment_param)
691                                        VALUES (0, 'transferts', 'ghost_expl_enable', '0', '1', 'Script de generation utilise pour les codes barres d\'exemplaires fantomes') ";
692                                echo traite_rqt($rqt,"INSERT transferts_ghost_expl_enable INTO parametres") ;
693                        }
694
695                        //VT - Parametre de statut par défaut pour les exemplaires fantomes en transfert
696                        if (pmb_mysql_num_rows(pmb_mysql_query("SELECT 1 FROM parametres WHERE type_param= 'transferts' and sstype_param='ghost_statut_expl_transferts' "))==0){
697                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, gestion, comment_param)
698                                        VALUES (0, 'transferts', 'ghost_statut_expl_transferts', '0', '1', 'id du statut dans lequel seront placés les exemplaires fantomes en cours de transit') ";
699                                echo traite_rqt($rqt,"INSERT transferts_ghost_statut_expl_transferts INTO parametres") ;
700                        }
701
702                        //VT - Parametre de choix du script par défaut pour la génération des codes barres des exemplaires fantomes
703                        if (pmb_mysql_num_rows(pmb_mysql_query("SELECT 1 FROM parametres WHERE type_param= 'transferts' and sstype_param='ghost_expl_gen_script' "))==0){
704                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, gestion, comment_param)
705                                        VALUES (0, 'transferts', 'ghost_expl_gen_script', 'gen_code\/gen_code_exemplaire.php', '1', 'Script de generation utilise pour les codes barres d\'exemplaires fantomes') ";
706                                echo traite_rqt($rqt,"INSERT transferts_ghost_expl_gen_script INTO parametres") ;
707                        }
708
709                        //VT - Ajout d'un champs expl_ref_num correspondant à l'id d'exemplaire dont le fantome est issu
710                        $rqt = "ALTER TABLE exemplaires ADD expl_ref_num INT(10) NOT NULL default '0'" ;
711                        echo traite_rqt($rqt,"ALTER TABLE exemplaires ADD expl_ref_num ");
712
713                        //DG - Champs perso demandes
714                        $rqt = "create table if not exists demandes_custom (
715                                idchamp int(10) unsigned NOT NULL auto_increment,
716                                name varchar(255) NOT NULL default '',
717                                titre varchar(255) default NULL,
718                                type varchar(10) NOT NULL default 'text',
719                                datatype varchar(10) NOT NULL default '',
720                                options text,
721                                multiple int(11) NOT NULL default 0,
722                                obligatoire int(11) NOT NULL default 0,
723                                ordre int(11) default NULL,
724                                search INT(1) unsigned NOT NULL DEFAULT 0,
725                                export INT(1) unsigned NOT NULL DEFAULT 0,
726                                exclusion_obligatoire INT(1) unsigned NOT NULL DEFAULT 0,
727                                pond int not null default 100,
728                                opac_sort INT NOT NULL DEFAULT 0,
729                                PRIMARY KEY  (idchamp)) ";
730                        echo traite_rqt($rqt,"create table if not exists demandes_custom ");
731
732                        $rqt = "create table if not exists demandes_custom_lists (
733                                demandes_custom_champ int(10) unsigned NOT NULL default 0,
734                                demandes_custom_list_value varchar(255) default NULL,
735                                demandes_custom_list_lib varchar(255) default NULL,
736                                ordre int(11) default NULL,
737                                KEY i_demandes_custom_champ (demandes_custom_champ),
738                                KEY i_demandes_champ_list_value (demandes_custom_champ,demandes_custom_list_value)) " ;
739                        echo traite_rqt($rqt,"create table if not exists demandes_custom_lists ");
740
741                        $rqt = "create table if not exists demandes_custom_values (
742                                demandes_custom_champ int(10) unsigned NOT NULL default 0,
743                                demandes_custom_origine int(10) unsigned NOT NULL default 0,
744                                demandes_custom_small_text varchar(255) default NULL,
745                                demandes_custom_text text,
746                                demandes_custom_integer int(11) default NULL,
747                                demandes_custom_date date default NULL,
748                                demandes_custom_float float default NULL,
749                                KEY i_demandes_custom_champ (demandes_custom_champ),
750                                KEY i_demandes_custom_origine (demandes_custom_origine)) " ;
751                        echo traite_rqt($rqt,"create table if not exists demandes_custom_values ");
752
753                        //AR - Gestion d'ontologies...
754                        $rqt = "create table if not exists ontologies (
755                                id_ontology int unsigned not null auto_increment,
756                                ontology_name varchar(255) not null default '',
757                                ontology_description text not null,
758                                ontology_creation_date datetime not null default '0000-00-00 00:00:00',
759                                primary key(id_ontology)
760                        )";
761                        echo traite_rqt($rqt,"create table if not exists ontologies");
762
763                        // NG - Circulation simplifiée de périodique
764                        $rqt = "ALTER TABLE serialcirc ADD serialcirc_simple int unsigned not null default 0" ;
765                        echo traite_rqt($rqt,"ALTER TABLE serialcirc ADD serialcirc_simple ");
766
767                        // NG - Script de construction d'étiquette de circulation simplifiée de périodique
768                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='serialcirc_simple_print_script' "))==0){
769                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
770                                        VALUES (0, 'pmb', 'serialcirc_simple_print_script', '', 'Script de construction d\'étiquette de circulation simplifiée de périodique' ,'',0)";
771                                echo traite_rqt($rqt,"insert pmb_serialcirc_simple_print_script into parametres");
772                        }
773
774                        // DB - Modification de la table resarc (id resa_planning pour resa issue d'une prévision)
775                        $rqt = "alter table resa_archive add resarc_resa_planning_id_resa int(8) unsigned not null default 0";
776                        echo traite_rqt($rqt,"alter resa_archive add resarc_resa_planning_id_resa");
777
778                        // NG - Ajout de tu_oeuvre_nature et tu_oeuvre_type
779                        $rqt = "ALTER TABLE titres_uniformes ADD tu_oeuvre_nature VARCHAR(3) NOT NULL default 'a'" ;
780                        echo traite_rqt($rqt,"ALTER TABLE titres_uniformes ADD tu_oeuvre_nature ");
781                        $rqt = "ALTER TABLE titres_uniformes ADD tu_oeuvre_type VARCHAR(3) NOT NULL default 'a'" ;
782                        echo traite_rqt($rqt,"ALTER TABLE titres_uniformes ADD tu_oeuvre_type ");
783
784                        // NG - Ajout de la table tu_oeuvres_links
785                        $rqt = "create table if not exists tu_oeuvres_links (
786                                oeuvre_link_from int not null default 0,
787                                oeuvre_link_to int not null default 0,
788                                oeuvre_link_type VARCHAR(3) not null default '',
789                                oeuvre_link_expression int not null default 0,
790                                oeuvre_link_other_link int not null default 1,
791                                oeuvre_link_order int not null default 0
792                        )";
793                        echo traite_rqt($rqt,"create table if not exists tu_oeuvres_links");
794
795                        // AP - Nombre maximum de notices à afficher dans une liste sans pagination
796                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='max_results_on_a_page' "))==0){
797                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
798                                        VALUES (0, 'opac', 'max_results_on_a_page', '500', 'Nombre maximum de notices à afficher sur une page, utile notamment quand la navigation est désactivée' ,'d_aff_recherche',0)";
799                                echo traite_rqt($rqt,"insert max_results_on_a_page into parametres");
800                        }
801
802                        //JP - taille de certains champs blob trop juste
803                        $rqt = "ALTER TABLE opac_sessions CHANGE session session MEDIUMBLOB NULL DEFAULT NULL";
804                        echo traite_rqt($rqt,"ALTER TABLE opac_sessions CHANGE session MEDIUMBLOB");
805                        $rqt = " select 1 " ;
806                        echo traite_rqt($rqt,"<b><a href='".$base_path."/admin.php?categ=netbase' target=_blank>VOUS DEVEZ FAIRE UN NETTOYAGE DE BASE (APRES ETAPES DE MISE A JOUR) / YOU MUST DO A DATABASE CLEANUP (STEPS AFTER UPDATE) : Admin > Outils > Nettoyage de base</a></b> ") ;
807
808                        // NG - Ajout tu_oeuvre_nature_nature dans titres_uniformes
809                        $rqt = "ALTER TABLE titres_uniformes ADD tu_oeuvre_nature_nature VARCHAR(255) NOT NULL default 'original'" ;
810                        echo traite_rqt($rqt,"ALTER TABLE titres_uniformes ADD tu_oeuvre_nature_nature ");
811
812                        // NG - Ajout authperso_oeuvre_event dans authperso
813                        $rqt = "ALTER TABLE authperso ADD authperso_oeuvre_event int unsigned NOT NULL default '0'" ;
814                        echo traite_rqt($rqt,"ALTER TABLE authperso ADD authperso_oeuvre_event ");
815
816                        // NG - Ajout de la table tu_oeuvres_events
817                        $rqt = "create table if not exists tu_oeuvres_events (
818                                oeuvre_event_tu_num int not null default 0,
819                                oeuvre_event_authperso_authority_num int not null default 0,
820                                oeuvre_event_order int not null default 0
821                        )";
822                        echo traite_rqt($rqt,"create table if not exists tu_oeuvres_events");
823
824                        // NG - Ajout comment dans les champs personalisés
825                        $rqt = "ALTER TABLE notices_custom ADD comment BLOB NOT NULL default ''" ;
826                        echo traite_rqt($rqt,"ALTER TABLE notices_custom ADD comment ");
827
828                        $rqt = "ALTER TABLE author_custom ADD comment BLOB NOT NULL default ''" ;
829                        echo traite_rqt($rqt,"ALTER TABLE author_custom ADD comment ");
830
831                        $rqt = "ALTER TABLE authperso_custom ADD comment BLOB NOT NULL default ''" ;
832                        echo traite_rqt($rqt,"ALTER TABLE authperso_custom ADD comment ");
833
834                        $rqt = "ALTER TABLE categ_custom ADD comment BLOB NOT NULL default ''" ;
835                        echo traite_rqt($rqt,"ALTER TABLE categ_custom ADD comment ");
836
837                        $rqt = "ALTER TABLE cms_editorial_custom ADD comment BLOB NOT NULL default ''" ;
838                        echo traite_rqt($rqt,"ALTER TABLE cms_editorial_custom ADD comment ");
839
840                        $rqt = "ALTER TABLE collection_custom ADD comment BLOB NOT NULL default ''" ;
841                        echo traite_rqt($rqt,"ALTER TABLE collection_custom ADD comment ");
842
843                        $rqt = "ALTER TABLE collstate_custom ADD comment BLOB NOT NULL default ''" ;
844                        echo traite_rqt($rqt,"ALTER TABLE collstate_custom ADD comment ");
845
846                        $rqt = "ALTER TABLE demandes_custom ADD comment BLOB NOT NULL default ''" ;
847                        echo traite_rqt($rqt,"ALTER TABLE demandes_custom ADD comment ");
848
849                        $rqt = "ALTER TABLE empr_custom ADD comment BLOB NOT NULL default ''" ;
850                        echo traite_rqt($rqt,"ALTER TABLE empr_custom ADD comment ");
851
852                        $rqt = "ALTER TABLE expl_custom ADD comment BLOB NOT NULL default ''" ;
853                        echo traite_rqt($rqt,"ALTER TABLE expl_custom ADD comment ");
854
855                        $rqt = "ALTER TABLE gestfic0_custom ADD comment BLOB NOT NULL default ''" ;
856                        echo traite_rqt($rqt,"ALTER TABLE gestfic0_custom ADD comment ");
857
858                        $rqt = "ALTER TABLE indexint_custom ADD comment BLOB NOT NULL default ''" ;
859                        echo traite_rqt($rqt,"ALTER TABLE indexint_custom ADD comment ");
860
861                        $rqt = "ALTER TABLE pret_custom ADD comment BLOB NOT NULL default ''" ;
862                        echo traite_rqt($rqt,"ALTER TABLE pret_custom ADD comment ");
863
864                        $rqt = "ALTER TABLE publisher_custom ADD comment BLOB NOT NULL default ''" ;
865                        echo traite_rqt($rqt,"ALTER TABLE publisher_custom ADD comment ");
866
867                        $rqt = "ALTER TABLE serie_custom ADD comment BLOB NOT NULL default ''" ;
868                        echo traite_rqt($rqt,"ALTER TABLE serie_custom ADD comment ");
869
870                        $rqt = "ALTER TABLE subcollection_custom ADD comment BLOB NOT NULL default ''" ;
871                        echo traite_rqt($rqt,"ALTER TABLE subcollection_custom ADD comment ");
872
873                        $rqt = "ALTER TABLE tu_custom ADD comment BLOB NOT NULL default ''" ;
874                        echo traite_rqt($rqt,"ALTER TABLE tu_custom ADD comment ");
875
876                        // AP - Activation de l'interface DOJO pour la multicritère en gestion
877                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='extended_search_dnd_interface' "))==0){
878                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
879                                        VALUES (0, 'pmb', 'extended_search_dnd_interface', '1', 'Activer l\'interface drag\'n\'drop pour la recherche multicritère.\n0 : Non\n1 : Oui' ,'', 0)";
880                                echo traite_rqt($rqt,"insert extended_search_dnd_interface into parametres");
881                        }
882
883                        // AP - Activation de l'interface DOJO pour la multicritère en OPAC
884                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='extended_search_dnd_interface' "))==0){
885                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
886                                        VALUES (0, 'opac', 'extended_search_dnd_interface', '0', 'Activer l\'interface drag\'n\'drop pour la recherche multicritère.\n0 : Non\n1 : Oui' ,'c_recherche', 0)";
887                                echo traite_rqt($rqt,"insert extended_search_dnd_interface into parametres");
888                        }
889
890                        //JP - bouton vider le cache portail
891                        $rqt = "ALTER TABLE cms_articles ADD article_update_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP NOT NULL";
892                        echo traite_rqt($rqt,"ALTER TABLE cms_articles ADD article_update_timestamp");
893                        $rqt = "UPDATE cms_articles SET article_update_timestamp=article_creation_date";
894                        echo traite_rqt($rqt,"UPDATE cms_articles SET article_update_timestamp");
895                        $rqt = "ALTER TABLE cms_sections ADD section_update_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP NOT NULL";
896                        echo traite_rqt($rqt,"ALTER TABLE cms_sections ADD section_update_timestamp");
897                        $rqt = "UPDATE cms_sections SET section_update_timestamp=section_creation_date";
898                        echo traite_rqt($rqt,"UPDATE cms_sections SET section_update_timestamp");
899
900                        //JP - choix notice nouveauté oui/non par utilisateur en création de notice
901                        $rqt = "ALTER TABLE users ADD deflt_notice_is_new INT( 1 ) UNSIGNED NOT NULL DEFAULT '0'";
902                        echo traite_rqt($rqt,"ALTER TABLE users ADD deflt_notice_is_new");
903
904                        // JP - paramètre mail_adresse_from pour l'envoi de mails
905                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='mail_adresse_from' "))==0){
906                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
907                                                VALUES (0, 'pmb', 'mail_adresse_from', '', 'Adresse d\'expédition des emails. Ce paramètre permet de forcer le From des mails envoyés par PMB. Le reply-to reste inchangé (mail de l\'utilisateur en DSI ou relance, mail de la localisation ou paramètre opac_biblio_mail à défaut).\nFormat : adresse_email;libellé\nExemple : pmb@sigb.net;PMB Services' ,'',0)";
908                                echo traite_rqt($rqt,"insert pmb_mail_adresse_from into parametres");
909                        }
910                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='mail_adresse_from' "))==0){
911                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
912                                                VALUES (0, 'opac', 'mail_adresse_from', '', 'Adresse d\'expédition des emails. Ce paramètre permet de forcer le From des mails envoyés par PMB. Le reply-to reste inchangé (mail de l\'utilisateur en DSI ou relance, mail de la localisation ou paramètre opac_biblio_mail à défaut).\nFormat : adresse_email;libellé\nExemple : pmb@sigb.net;PMB Services' ,'a_general',0)";
913                                echo traite_rqt($rqt,"insert opac_mail_adresse_from into parametres");
914                        }
915
916                        // JP - blocage des prolongations autorisées si relance sur le prêt
917                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='pret_prolongation_blocage' "))==0){
918                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
919                                                VALUES (0, 'opac', 'pret_prolongation_blocage', '0', 'Bloquer la prolongation s\'il y a un niveau de relance validé sur le prêt ?\n0 : Non 1 : Oui' ,'a_general',0)";
920                                echo traite_rqt($rqt,"insert opac_pret_prolongation_blocage into parametres");
921                        }
922
923                        // VT & DG - Ajout de la table memorisant les grilles de saisie de formulaire
924                        // grid_generic_type : Type d'objet
925                        // grid_generic_filter : Signature (en cas de grilles multiples)
926                        // grid_generic_data : Format JSON de la grille
927                        $rqt = "create table if not exists grids_generic (
928                                grid_generic_type VARCHAR(32) not null default '',
929                                grid_generic_filter VARCHAR(255) not null default '',
930                                grid_generic_data mediumblob NOT NULL,
931                                PRIMARY KEY (grid_generic_type,grid_generic_filter)
932                                )";
933                        echo traite_rqt($rqt,"create table if not exists grids_generic");
934
935                        //DG - Grilles d'autorités éditables
936                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='form_authorities_editables' "))==0){
937                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
938                                        VALUES (0, 'pmb', 'form_authorities_editables', '1', 'Grilles d\'autorités éditables \n 0 non \n 1 oui','',0)";
939                                echo traite_rqt($rqt,"insert pmb_form_authorities_editables into parametres");
940                        }
941
942                        //JP - Export tableur des prêts dans le compte emprunteur
943                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='empr_export_loans' "))==0){
944                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
945                                        VALUES (0, 'opac', 'empr_export_loans', '0', 'Afficher sur le compte emprunteur un bouton permettant d\'exporter les prêts dans un tableur ?\n0 : Non 1 : Oui' ,'a_general',0)";
946                                echo traite_rqt($rqt,"insert opac_empr_export_loans into parametres");
947                        }
948
949                        //Alexandre - Ajout des modes d'affichage avec sélection par étoiles
950                        $rqt = "UPDATE parametres SET comment_param=CONCAT(comment_param,'\n 4 : Affichage de la note sous la forme d\'étoiles, choix de la note sous la forme d\'étoiles.\n 5 : Affichage de la note sous la forme textuelle et d\'étoiles, choix de la note sous la forme d\'étoiles.') WHERE type_param= 'pmb' AND sstype_param='avis_note_display_mode'";
951                        echo traite_rqt($rqt,"UPDATE pmb_avis_note_display_mode into parametres");
952                        $rqt = "UPDATE parametres SET comment_param=CONCAT(comment_param,'\n 4 : Affichage de la note sous la forme d\'étoiles, choix de la note sous la forme d\'étoiles.\n 5 : Affichage de la note sous la forme textuelle et d\'étoiles, choix de la note sous la forme d\'étoiles.') WHERE type_param= 'opac' AND sstype_param='avis_note_display_mode'";
953                        echo traite_rqt($rqt,"UPDATE opac_avis_note_display_mode into parametres");
954
955                        //JP - paramètre utilisateur : localisation par défaut en bulletinage
956                        // deflt_bulletinage_location : Identifiant de la localisation par défaut en bulletinage
957                        $rqt = "ALTER TABLE users ADD deflt_bulletinage_location INT( 6 ) UNSIGNED NOT NULL DEFAULT 0 AFTER deflt_collstate_location";
958                        echo traite_rqt($rqt,"ALTER TABLE users ADD deflt_bulletinage_location");
959                        $rqt = "UPDATE users SET deflt_bulletinage_location=deflt_docs_location";
960                        echo traite_rqt($rqt,"UPDATE users SET deflt_bulletinage_location=deflt_docs_location");
961
962                        //JP - audit sur le contenu éditorial
963                        $res=pmb_mysql_query("SELECT id_section, section_creation_date, section_update_timestamp FROM cms_sections");
964                        if($res && pmb_mysql_num_rows($res)){
965                                while ($r=pmb_mysql_fetch_object($res)){
966                                        $rqt = "INSERT INTO audit SET type_obj='".AUDIT_EDITORIAL_SECTION."', object_id='".$r->id_section."', user_id='0', user_name='', type_modif=1, quand='".$r->section_creation_date." 00:00:00', info='' ";
967                                        pmb_mysql_query($rqt);
968                                        if ($r->section_update_timestamp != $r->section_creation_date.' 00:00:00') {
969                                                $rqt = "INSERT INTO audit SET type_obj='".AUDIT_EDITORIAL_SECTION."', object_id='".$r->id_section."', user_id='0', user_name='', type_modif=2, quand='".$r->section_update_timestamp."', info='' ";
970                                                pmb_mysql_query($rqt);
971                                        }
972                                }
973                                $rqt = " select 1 " ;
974                                echo traite_rqt($rqt,"INSERT editorial_sections INTO audit ");
975                        }
976                        $res=pmb_mysql_query("SELECT id_article, article_creation_date, article_update_timestamp FROM cms_articles");
977                        if($res && pmb_mysql_num_rows($res)){
978                                while ($r=pmb_mysql_fetch_object($res)){
979                                        $rqt = "INSERT INTO audit SET type_obj='".AUDIT_EDITORIAL_ARTICLE."', object_id='".$r->id_article."', user_id='0', user_name='', type_modif=1, quand='".$r->article_creation_date." 00:00:00', info='' ";
980                                        pmb_mysql_query($rqt);
981                                        if ($r->article_update_timestamp != $r->article_creation_date.' 00:00:00') {
982                                                $rqt = "INSERT INTO audit SET type_obj='".AUDIT_EDITORIAL_ARTICLE."', object_id='".$r->id_article."', user_id='0', user_name='', type_modif=2, quand='".$r->article_update_timestamp."', info='' ";
983                                                pmb_mysql_query($rqt);
984                                        }
985                                }
986                                $rqt = " select 1 " ;
987                                echo traite_rqt($rqt,"INSERT editorial_articles INTO audit ");
988                        }
989
990                        //MB - last_sync_date : Date de la dernière synchronisation du connecteur
991                        $rqt = "ALTER TABLE connectors_sources ADD last_sync_date DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL";
992                        echo traite_rqt($rqt,"ALTER TABLE connectors_sources ADD last_sync_date");
993
994                        // DG & AP - Création d'une table d'autorités pour des identifiants uniques quel que soit le type d'autorité
995                        // id_authority : Identifiant unique de l'autorité
996                        // num_object : Identifiant de l'autorité dans sa table
997                        // type_object : Type de l'autorité
998                        $rqt="create table if not exists authorities (
999                                id_authority int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
1000                                num_object mediumint(8) UNSIGNED NOT NULL default 0,
1001                                type_object int unsigned not null default 0,
1002                                index i_object(num_object, type_object)
1003                                )";
1004                        echo traite_rqt($rqt, "create table authorities");
1005
1006                        // DG & AP - Création de la table d'indexation d'autorités - Table des champs
1007                        // id_authority : Identifiant de l'autorité faisant référence à l'identifiant de la table authorities
1008                        // type : Type d'autorité
1009                        // code_champ : Code champ
1010                        // code_ss_champ : Code sous champ
1011                        // ordre : Ordre
1012                        // value : Valeur
1013                        // pond : Pondération
1014                        // lang : Langue
1015                        // authority_num : Identifiant de l'autorité liée
1016                        $rqt="create table if not exists authorities_fields_global_index (
1017                                id_authority int unsigned not null default 0,
1018                                type int(5) unsigned not null default 0,
1019                                code_champ int(10) not null default 0,
1020                                code_ss_champ int(3) not null default 0,
1021                                ordre int(4) not null default 0,
1022                                value text not null,
1023                                pond int(4) not null default 100,
1024                                lang varchar(10) not null default '',
1025                                authority_num varchar(50) not null default '',
1026                                primary key(id_authority,code_champ,code_ss_champ,ordre),
1027                                index i_value(value(300)),
1028                                index i_id_value(id_authority,value(300))
1029                                )";
1030                        echo traite_rqt($rqt, "create table authorities_fields_global_index");
1031
1032                        // DG & AP - Création de la table d'indexation d'autorités - Table de mots
1033                        // id_authority : Identifiant de l'autorité faisant référence à l'identifiant de la table authorities
1034                        // type : Type d'autorité
1035                        // code_champ : Code champ
1036                        // code_ss_champ : Code sous champ
1037                        // num_word : Identifiant du mot dans la table words
1038                        // pond : Pondération
1039                        // position : Position du champ
1040                        // field_position : Position du mot dans le champ
1041                        $rqt = "create table if not exists authorities_words_global_index(
1042                                id_authority int unsigned not null default 0,
1043                                type int(5) unsigned not null default 0,
1044                                code_champ int unsigned not null default 0,
1045                                code_ss_champ int unsigned not null default 0,
1046                                num_word int unsigned not null default 0,
1047                                pond int unsigned not null default 100,
1048                                position int unsigned not null default 1,
1049                                field_position int unsigned not null default 1,
1050                                primary key (id_authority,code_champ,num_word,position,code_ss_champ),
1051                                index code_champ(code_champ),
1052                                index i_id_mot(num_word,id_authority),
1053                                index i_code_champ_code_ss_champ_num_word(code_champ,code_ss_champ,num_word))";
1054                        echo traite_rqt($rqt,"create table authorities_words_global_index");
1055
1056                        // DG & AP - Ajout d'index sur la table aut_link
1057                        $rqt = "ALTER TABLE aut_link drop index i_from";
1058                        echo traite_rqt($rqt,"alter table aut_link drop index i_from");
1059                        $rqt = "ALTER TABLE aut_link add index i_from (aut_link_from,aut_link_from_num) ";
1060                        echo traite_rqt($rqt, "add index i_from to aut_link");
1061
1062                        // DG & AP - Ajout d'index sur la table aut_link
1063                        $rqt = "ALTER TABLE aut_link drop index i_to";
1064                        echo traite_rqt($rqt,"alter table aut_link drop index i_to");
1065                        $rqt = "ALTER TABLE aut_link add index i_to (aut_link_to,aut_link_to_num) ";
1066                        echo traite_rqt($rqt, "add index i_to to aut_link");
1067
1068                        // AR - Création d'un statut pour les autorités
1069                        // id_authorities_statut : Identifiant du statut d'autorités
1070                        // authorities_statut_label : Libellé du statut
1071                        // authorities_statut_class_html : Distinction de couleur pour le statut
1072                        // authorities_statut_available_for : Quelles sont les autorités autorisées à utiliser ce statut ?
1073                        $rqt = "create table if not exists authorities_statuts (
1074                                id_authorities_statut int unsigned not null auto_increment primary key,
1075                                authorities_statut_label varchar(255) not null default '',
1076                                authorities_statut_class_html varchar(25) not null default '',
1077                                authorities_statut_available_for text
1078                                )";
1079                        echo traite_rqt($rqt,"create table authorities_statuts");
1080
1081                        // NG - VT - Statut par défaut pour les autorités
1082                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from authorities_statuts where id_authorities_statut='1' "))==0) {
1083                                $rqt = 'INSERT INTO authorities_statuts (id_authorities_statut,authorities_statut_label,authorities_statut_class_html,authorities_statut_available_for) VALUES (1 ,"Statut par défaut", "statutnot1", "'.addslashes('a:9:{i:0;s:1:"1";i:1;s:1:"2";i:2;s:1:"3";i:3;s:1:"4";i:4;s:1:"5";i:5;s:1:"6";i:6;s:1:"8";i:7;s:1:"7";i:8;s:2:"10";}').'") ';
1084                                echo traite_rqt($rqt,"insert default lignes_actes_statuts");
1085                        }
1086
1087                        // DG - création du champ statut pour les autorités
1088                        $rqt = "alter table authorities add num_statut int(2) unsigned not null default 1";
1089                        echo traite_rqt($rqt,"alter table authorities add num_statut");
1090
1091                        //DG - Paramètre pour afficher ou non le bandeau d'acceptation des cookies
1092                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='cookies_consent' "))==0){
1093                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1094                                        VALUES (0, 'opac', 'cookies_consent', '1', 'Afficher le bandeau d\'acceptation des cookies et des traceurs ? \n0 : Non 1 : Oui','a_general',0)";
1095                                echo traite_rqt($rqt,"insert opac_cookies_consent into parametres");
1096                        }
1097
1098                        //DG - Grille d'auteur pour les personnes physiques
1099                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from grids_generic where grid_generic_type= 'auteurs' and grid_generic_filter='70' "))==0){
1100                                $rqt = "INSERT INTO grids_generic (grid_generic_type, grid_generic_filter, grid_generic_data)
1101                                                                VALUES ('auteurs', '70', '[{\"nodeId\":\"el0\",\"label\":\"Zone par d\\u00e9faut\",\"isExpandable\":false,\"showLabel\":false,\"visible\":true,\"elements\":[{\"nodeId\":\"el0Child_0\",\"visible\":true,\"className\":\"row\"},{\"nodeId\":\"el0Child_1_a\",\"visible\":true,\"className\":\"colonne2\"},{\"nodeId\":\"el0Child_1_b\",\"visible\":true,\"className\":\"colonne_suite\"},{\"nodeId\":\"el0Child_2\",\"visible\":true,\"className\":\"row\"},{\"nodeId\":\"el0Child_3\",\"visible\":false,\"className\":\"row\"},{\"nodeId\":\"el0Child_4_a\",\"visible\":false,\"className\":\"colonne2\"},{\"nodeId\":\"el0Child_4_b\",\"visible\":false,\"className\":\"colonne_suite\"},{\"nodeId\":\"el0Child_5_a\",\"visible\":false,\"className\":\"colonne2\"},{\"nodeId\":\"el0Child_5_b\",\"visible\":false,\"className\":\"colonne_suite\"},{\"nodeId\":\"el0Child_6\",\"visible\":true,\"className\":\"row\"},{\"nodeId\":\"el0Child_7\",\"visible\":true,\"className\":\"row\"},{\"nodeId\":\"el0Child_8\",\"visible\":true,\"className\":\"row\"},{\"nodeId\":\"el6Child_3\",\"visible\":true,\"className\":\"row\"},{\"nodeId\":\"el0Child_9\",\"visible\":true,\"className\":\"row\"},{\"nodeId\":\"el7Child_0\",\"visible\":true,\"className\":\"row\"}]}]')";
1102                                echo traite_rqt($rqt,"insert minimum into grids_generic");
1103                        }
1104
1105                        //DG - Info de réindexation
1106                        $rqt = " select 1 " ;
1107                        echo traite_rqt($rqt,"<b><a href='".$base_path."/admin.php?categ=netbase' target=_blank>VOUS DEVEZ REINDEXER LES AUTORITES (APRES ETAPES DE MISE A JOUR) / YOU MUST REINDEX THE AUTHORITIES (STEPS AFTER UPDATE) : Admin > Outils > Nettoyage de base</a></b> ") ;
1108
1109                        // +-------------------------------------------------+
1110                        echo "</table>";
1111                        $rqt = "update parametres set valeur_param='".$action."' where type_param='pmb' and sstype_param='bdd_version' " ;
1112                        $res = pmb_mysql_query($rqt, $dbh) ;
1113
1114                        echo "<strong><font color='#FF0000'>".$msg[1807]." ".number_format($action, 2, ',', '.')."%</font></strong><br />";
1115                        $action=$action+$increment;
1116                        //echo form_relance ("v5.21");
1117
1118       
1119        //      case "v5.21":
1120                        echo "<table ><tr><th>".$msg['admin_misc_action']."</th><th>".$msg['admin_misc_resultat']."</th></tr>";
1121                        // +-------------------------------------------------+
1122
1123                        //NG -  DSI: Ajout de bannette_aff_notice_number pour afficher ou pas le nombre de notices envoyées dans le mail
1124                        $rqt = "ALTER TABLE bannettes ADD bannette_aff_notice_number int unsigned NOT NULL default 1 " ;
1125                        echo traite_rqt($rqt,"ALTER TABLE bannettes ADD bannette_aff_notice_number ");
1126
1127                        //JP - Personnalisation des colonnes pour l'affichage des états des collections en gestion
1128                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='collstate_data' "))==0){
1129                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1130                                                VALUES (0, 'pmb', 'collstate_data', '', 'Colonne des états des collections, dans l\'ordre donné, séparé par des virgules : location_libelle,emplacement_libelle,cote,type_libelle,statut_opac_libelle,origine,state_collections,archive,lacune,surloc_libelle,note,#n : id des champs personnalisés\nLes valeurs possibles sont les propriétés de la classe PHP \"pmb/classes/collstate.class.php\".','',0)";
1131                                echo traite_rqt($rqt,"insert pmb_collstate_data = '' into parametres");
1132                        }
1133
1134                        //JP - champ historique de session trop petit
1135                        $rqt = "ALTER TABLE admin_session CHANGE session session MEDIUMBLOB " ;
1136                        echo traite_rqt($rqt,"ALTER TABLE admin_session CHANGE session MEDIUMBLOB ");
1137
1138                        // JP - Alertes localisées pour les réservations depuis l'OPAC
1139                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='resa_alert_localized' "))==0){
1140                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1141                                                VALUES (0, 'pmb', 'resa_alert_localized', '0', 'Si les lecteurs sont localisés, restreindre les notifications par email des nouvelles réservations aux utilisateurs selon le site de gestion des lecteurs par défaut ? \n0 : Non 1 : Oui' ,'',0)";
1142                                echo traite_rqt($rqt,"insert pmb_resa_alert_localized into parametres");
1143                        }
1144
1145                        // VT & AP - Modification de la table nomenclature_children_records : on passe à un varchar pour la gestion des effectifs indéfinis
1146                        $rqt = "ALTER TABLE nomenclature_children_records CHANGE child_record_effective child_record_effective varchar(10) not null default '0'";
1147                        echo traite_rqt($rqt,"ALTER TABLE nomenclature_children_records CHANGE child_record_effective varchar(10)");
1148
1149                        //AP & VT - Ajout d'un paramètre définissant le nombre d'éléments affichés par onglet
1150                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='nb_elems_per_tab' "))==0){
1151                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1152                                        VALUES (NULL, 'pmb', 'nb_elems_per_tab', '20', 'Nombre d\'éléments affichés par page dans les onglets', '', '0')";
1153                                echo traite_rqt($rqt,"insert nb_elems_per_tab='20' into parametres ");
1154                        }
1155
1156                        //NG - Ajout identifiant unique à la table responsability_tu
1157                        $query = "SHOW KEYS FROM responsability_tu WHERE Key_name = 'PRIMARY'";
1158                        $result = pmb_mysql_query($query);
1159                        $primary_fields = array('id_responsability_tu','responsability_tu_author_num','responsability_tu_num','responsability_tu_fonction');
1160                        $flag = false;
1161                        while($row = pmb_mysql_fetch_object($result)) {
1162                                if(!in_array($row->Column_name, $primary_fields)) {
1163                                        $flag = true;
1164                                }
1165                        }
1166                        if(!$flag && pmb_mysql_num_rows($result) != 4) {
1167                                $flag = true;
1168                        }
1169                        if($flag) {                     
1170                                $rqt = "alter table responsability_tu drop primary key";
1171                                echo traite_rqt($rqt,"alter table responsability_tu drop primary key");
1172                                $rqt = "ALTER TABLE responsability_tu ADD id_responsability_tu  int unsigned not null auto_increment primary key FIRST";
1173                                echo traite_rqt($rqt,"alter table responsability_tu add id_responsability_tu");
1174                                $rqt = "alter table responsability_tu drop primary key, add primary key (id_responsability_tu,responsability_tu_author_num, responsability_tu_num, responsability_tu_fonction)";
1175                                echo traite_rqt($rqt,"alter table responsability_tu add primary key (id_responsability_tu,responsability_tu_author_num, responsability_tu_num, responsability_tu_fonction)");
1176                        }
1177                       
1178                        //NG - Ajout identifiant unique à la table responsability
1179                        $query = "SHOW KEYS FROM responsability WHERE Key_name = 'PRIMARY'";
1180                        $result = pmb_mysql_query($query);
1181                        $primary_fields = array('id_responsability','responsability_author','responsability_notice','responsability_fonction');
1182                        $flag = false;
1183                        while($row = pmb_mysql_fetch_object($result)) {
1184                                if(!in_array($row->Column_name, $primary_fields)) {
1185                                        $flag = true;
1186                                }
1187                        }
1188                        if(!$flag && pmb_mysql_num_rows($result) != 4) {
1189                                $flag = true;
1190                        }
1191                        if($flag) {
1192                                $rqt = "alter table responsability drop primary key";
1193                                echo traite_rqt($rqt,"alter table responsability drop primary key");
1194                                $rqt = "ALTER TABLE responsability ADD id_responsability  int unsigned not null auto_increment primary key FIRST";
1195                                echo traite_rqt($rqt,"alter table responsability add id_responsability");
1196                                $rqt = "alter table responsability drop primary key, add primary key (id_responsability, responsability_author, responsability_notice, responsability_fonction)";
1197                                echo traite_rqt($rqt,"alter table responsability add primary key (id_responsability, responsability_author, responsability_notice, responsability_fonction)");
1198                        }
1199                       
1200                        //NG - Ajout d'un paramètre pour activer la qualification d'un lien d'auteur dans les notices et les titres uniformes
1201                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='authors_qualification' "))==0){
1202                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1203                                        VALUES (0, 'pmb', 'authors_qualification', '0', 'Activer qualification d\'un lien d\'auteur dans les notices et les titres uniformes\n 0 : Non\n 1 : Oui', '', '0')";
1204                                echo traite_rqt($rqt,"insert pmb_authors_qualification=0 into parametres ");
1205                        }
1206
1207                        //DG - Entrepôt par défaut en suppression de notices d'un panier
1208                        $rqt = "ALTER TABLE users ADD deflt_agnostic_warehouse INT(6) UNSIGNED DEFAULT 0 NOT NULL " ;
1209                        echo traite_rqt($rqt,"ALTER users ADD deflt_agnostic_warehouse");
1210
1211
1212                        // NG : ajout dans les préférences utilisateur du statut de publication d'article par défaut en création d'article
1213                        $rqt = "ALTER TABLE users ADD deflt_cms_article_statut INT(6) UNSIGNED NOT NULL DEFAULT 0 " ;
1214                        echo traite_rqt($rqt,"ALTER users ADD deflt_cms_article_statut ");
1215                        // NG : ajout dans les préférences utilisateur du type de contenu par défaut en création d'article
1216                        $rqt = "ALTER TABLE users ADD deflt_cms_article_type INT(6) UNSIGNED NOT NULL DEFAULT 0 " ;
1217                        echo traite_rqt($rqt,"ALTER users ADD deflt_cms_article_type ");
1218                        // NG : ajout dans les préférences utilisateur du type de contenu par défaut en création de rubrique
1219                        $rqt = "ALTER TABLE users ADD deflt_cms_section_type INT(6) UNSIGNED NOT NULL DEFAULT 0 " ;
1220                        echo traite_rqt($rqt,"ALTER users ADD deflt_cms_section_type ");
1221
1222                        //NG - Ajout d'un paramètre définissant le nombre de bulletins à afficher dans le navigateur de bulletins
1223                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='navigateur_bulletin_number' "))==0){
1224                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1225                                        VALUES (NULL, 'opac', 'navigateur_bulletin_number', '3', 'Nombre de bulletins à afficher dans le navigateur de bulletins', 'e_aff_notice', '0')";
1226                                echo traite_rqt($rqt,"insert opac_navigateur_bulletin_number=3 into parametres ");
1227                        }
1228
1229                        //DG - Upload du logo pour les veilles
1230                        $rqt = "ALTER TABLE docwatch_watches ADD watch_logo mediumblob not null after watch_desc";
1231                        echo traite_rqt($rqt,"ALTER TABLE docwatch_watches ADD watch_logo ");
1232
1233                        //DG Ajout couleur sur le statut de publication du contenu éditorial
1234                        $rqt = "ALTER TABLE cms_editorial_publications_states ADD editorial_publication_state_class_html VARCHAR( 255 ) NOT NULL default '' " ;
1235                        echo traite_rqt($rqt,"ALTER TABLE cms_editorial_publications_states ADD editorial_publication_state_class_html ");
1236
1237                        //VT - Paramètre permettant de définir le dossier des classes de mappage à utiliser pour le mappage entre autorités
1238                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='authority_mapping_folder' "))==0){
1239                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1240                                        VALUES (0, 'pmb', 'authority_mapping_folder', '', 'Dossier des classes de mappage à utiliser pour les autorités','',0)";
1241                                echo traite_rqt($rqt,"insert pmb_authority_mapping_folder='' into parametres");
1242                        }
1243
1244                        //DG - Nomenclatures : Atelier défini/non défini
1245                        $rqt = "ALTER TABLE nomenclature_workshops ADD workshop_defined int unsigned not null default 0";
1246                        echo traite_rqt($rqt,"ALTER TABLE nomenclature_workshops ADD workshop_defined ");
1247
1248                        //DG - Nomenclatures : Notes par familles en édition de notices
1249                        $rqt = "ALTER TABLE nomenclature_notices_nomenclatures ADD notice_nomenclature_families_notes mediumtext not null after notice_nomenclature_notes";
1250                        echo traite_rqt($rqt,"ALTER TABLE nomenclature_notices_nomenclatures ADD notice_nomenclature_families_notes ");
1251
1252                        // AP - Ajout d'un droit de numérisation sur les notices
1253                        // notice_scan_request_opac : Autorisation de demander une numérisation de la notice à l'OPAC
1254                        $rqt = "ALTER TABLE notice_statut ADD notice_scan_request_opac tinyint(1) NOT NULL default 0";
1255                        echo traite_rqt($rqt, "ALTER TABLE notice_statut ADD notice_scan_request_opac");
1256                        // notice_scan_request_opac_abon : Autorisation uniquement pour les abonnés de demander une numérisation de la notice à l'OPAC
1257                        $rqt = "ALTER TABLE notice_statut ADD notice_scan_request_opac_abon tinyint(1) NOT NULL default 0";
1258                        echo traite_rqt($rqt, "ALTER TABLE notice_statut ADD notice_scan_request_opac_abon");
1259
1260                        // AP - Activation de la demande de numérisation en gestion
1261                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='scan_request_activate' "))==0){
1262                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1263                                VALUES (0, 'pmb', 'scan_request_activate', '0', 'Activer la demande de numérisation.\n0 : Non\n1 : Oui' ,'', 0)";
1264                                echo traite_rqt($rqt,"insert pmb_scan_request_activate=0 into parametres");
1265                        }
1266
1267                        // AP - Activation de la demande de numérisation en OPAC
1268                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='scan_request_activate' "))==0){
1269                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1270                                        VALUES (0, 'opac', 'scan_request_activate', '0', 'Activer la demande de numérisation.\n0 : Non\n1 : Oui' ,'f_modules', 0)";
1271                                echo traite_rqt($rqt,"insert opac_scan_request_activate=0 into parametres");
1272                        }
1273
1274                        // NG - Demande de numérisation: Ajout de l'interface de gestion de la liste des statuts.
1275                        $rqt = "create table if not exists scan_request_status(
1276                                id_scan_request_status int unsigned not null auto_increment primary key,
1277                                scan_request_status_label varchar(255) not null default '',
1278                                scan_request_status_opac_show int(1) not null default 0,
1279                                scan_request_status_cancelable int(1) not null default 0,
1280                                scan_request_status_infos_editable int(1) not null default 0,
1281                                scan_request_status_class_html VARCHAR( 255 ) not NULL default ''
1282                                )";
1283                        echo traite_rqt($rqt, "create table scan_request_status");
1284
1285                        // NG - Demande de numérisation: Interface pour définir à partir d'un statut, les statuts suivants possibles (Workflow)
1286                        $rqt = "create table if not exists scan_request_status_workflow(
1287                                scan_request_status_workflow_from_num int unsigned not null default 0,
1288                                scan_request_status_workflow_to_num int unsigned not null default 0
1289                                )";
1290                        echo traite_rqt($rqt, "create table scan_request_status_workflow");
1291
1292                        // NG - Demande de numérisation: Interface pour définir les priorités des demandes
1293                        $rqt = "create table if not exists scan_request_priorities(
1294                                id_scan_request_priority int unsigned not null auto_increment primary key,
1295                                scan_request_priority_label varchar(255) not null default '',
1296                                scan_request_priority_weight int unsigned not null default 0
1297                                )";
1298                        echo traite_rqt($rqt, "create table scan_request_priorities");
1299
1300                        // VT : Ajout dans les préférences utilisateur du statut par défaut à la création d'une demande de numérisation
1301                        $rqt = "ALTER TABLE users ADD deflt_scan_request_status INT(1) UNSIGNED NOT NULL DEFAULT 0 " ;
1302                        echo traite_rqt($rqt,"ALTER users ADD deflt_scan_request_status");
1303
1304                        // VT - NG - Table des demandes de numérisation
1305                        // id_scan_request  : Identifiant de la demande de numérisation
1306                        // scan_request_title : Libellé du titre de la demande
1307                        // scan_request_desc : Description de la demande
1308                        // scan_request_num_status : Clé étrangère (correspondance dans la table scan_request_status)
1309                        // scan_request_num_priority : Clé étrangère (correspondance dans la table scan_request_priorities)
1310                        // scan_request_create_date : Date de création de la demande (machine)
1311                        // scan_request_update_date : Date de mise à jour de la demande (machine)
1312                        // scan_request_date : Date de la demande (humain)
1313                        // scan_request_wish_date : Date de traitement de la demande souhaité (humain)
1314                        // scan_request_deadline_date : Date butoir de la demande (humain)
1315                        // scan_request_comment : Commentaire de la demande
1316                        // scan_request_elapsed_time : Temps passé sur la demande
1317                        // scan_request_num_dest_empr : ID du destinataire de la demande
1318                        // scan_request_num_creator : Identifiant du créateur de la demande  (User Gestion ou usager OPAC)
1319                        // scan_request_type_creator : Type du créateur (User Gestion ou usager OPAC)
1320                        // scan_request_num_last_user : Dernier utilisateur à avoir travaillé sur la demande
1321                        // scan_request_state : Défini l'état d'une demande par rapport aux actions de l'usager destinataire (0 = demande normale, 1=modifiée, 2=annulée)
1322                        $rqt = "create table if not exists scan_requests(
1323                                id_scan_request int unsigned not null auto_increment primary key,
1324                                scan_request_title varchar(255) not null default '',
1325                                scan_request_desc text,
1326                                scan_request_num_status int unsigned not null default 0,
1327                                scan_request_num_priority int unsigned not null default 0,
1328                                scan_request_create_date datetime,
1329                                scan_request_update_date datetime,
1330                                scan_request_date datetime,
1331                                scan_request_wish_date datetime,
1332                                scan_request_deadline_date datetime,
1333                                scan_request_comment text,
1334                                scan_request_elapsed_time int unsigned not null default 0,
1335                                scan_request_num_dest_empr int unsigned not null default 0,
1336                                scan_request_num_creator int unsigned not null default 0,
1337                                scan_request_type_creator int unsigned not null default 0,
1338                                scan_request_num_last_user int unsigned not null default 0,
1339                                scan_request_state int unsigned not null default 0,
1340                                scan_request_as_folder int(1) unsigned not null default 0,
1341                                scan_request_folder_num_notice int unsigned not null default 0
1342                                )";
1343                        echo traite_rqt($rqt, "create table scan_requests");
1344
1345                        // VT - NG - Table des correspondance notices / demandes de numérisation
1346                        // scan_request_linked_record_num_request  : Identifiant de la demande de numérisation
1347                        // scan_request_linked_record_num_notice : Identifiant de la notice
1348                        // scan_request_linked_record_num_bulletin : Identifiant du bulletin
1349                        // scan_request_linked_record_comment : Commentaire lié à cette notice dans la demande 'num_request'
1350                        // scan_request_linked_record_order : Ordre des éléments
1351                        $rqt = "create table if not exists scan_request_linked_records(
1352                                scan_request_linked_record_num_request int unsigned not null default 0,
1353                                scan_request_linked_record_num_notice int unsigned not null default 0,
1354                                scan_request_linked_record_num_bulletin int unsigned not null default 0,
1355                                scan_request_linked_record_comment text,
1356                                scan_request_linked_record_order int(3) unsigned not null default 0,
1357                                PRIMARY KEY (scan_request_linked_record_num_request,scan_request_linked_record_num_notice,scan_request_linked_record_num_bulletin)
1358                                )";
1359                        echo traite_rqt($rqt, "create table scan_requests_linked_records");
1360
1361                        //AP & DG - Ajout d'un droit sur le statut pour les demandes de numérisation
1362                        $rqt = "alter table empr_statut add allow_scan_request int unsigned not null default 0";
1363                        echo traite_rqt($rqt,"alter table empr_statut add allow_scan_request");
1364
1365
1366                        // AP & DG - Statut par défaut en création de demande de numérisation à l'OPAC (paramètre invisible)
1367                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='scan_request_create_status' "))==0){
1368                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1369                                VALUES (0, 'opac', 'scan_request_create_status', '1', 'Statut de création à l\'OPAC','a_general',1)";
1370                                echo traite_rqt($rqt,"insert opac_scan_request_create_status=1 into parametres");
1371                        }
1372
1373                        // AP & DG - Statut par défaut après annulation à l'OPAC (paramètre invisible)
1374                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='scan_request_cancel_status' "))==0){
1375                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1376                                        VALUES (0, 'opac', 'scan_request_cancel_status', '1', 'Statut après annulation à l\'OPAC','a_general',1)";
1377                                echo traite_rqt($rqt,"insert opac_scan_request_cancel_status=1 into parametres");
1378                        }
1379
1380                        //DG - Statut "Sans statut particulier" ajouté par défaut pour les demandes de numérisation
1381                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from scan_request_status where id_scan_request_status=1"))==0){
1382                                $rqt = "insert into scan_request_status SET id_scan_request_status=1, scan_request_status_label='Sans statut particulier', scan_request_status_opac_show='1' ";
1383                                echo traite_rqt($rqt,"insert minimum into scan_request_status");
1384                        }
1385                       
1386                        // VT - Table des correspondance demandes de numérisation/document numérique
1387                        // scan_request_explnum_num_request  : Identifiant de la demande de numérisation
1388                        // scan_request_explnum_num_notice : Identifiant de la notice
1389                        // scan_request_explnum_num_bulletin : Identifiant du bulletin
1390                        // scan_request_explnum_num_explnum : Identifiant du document numérique
1391                        $rqt = "create table if not exists scan_request_explnum(
1392                                scan_request_explnum_num_request int unsigned not null default 0,
1393                                scan_request_explnum_num_notice int unsigned not null default 0,
1394                                scan_request_explnum_num_bulletin int unsigned not null default 0,
1395                                scan_request_explnum_num_explnum int unsigned not null default 0,
1396                                PRIMARY KEY (scan_request_explnum_num_request, scan_request_explnum_num_explnum)
1397                                )";
1398                        echo traite_rqt($rqt, "create table scan_requests_explnum");
1399
1400                        //NG - Ajout d'un paramètre renseignant le répertoire d'upload des documents numériques liés aux demandes de numérisation (paramètre invisible)
1401                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='scan_request_explnum_folder' "))==0){
1402                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1403                                        VALUES (0, 'pmb', 'scan_request_explnum_folder', '0', 'Répertoire d\'upload des documents numériques liés aux demandes de numérisation', '', '1')";
1404                                        echo traite_rqt($rqt,"insert pmb_scan_request_explnum_folder=0 into parametres ");
1405                                }
1406
1407                        // AP : Ajout dans les préférences utilisateur du type de notice par défaut à la création d'une notice de dossier de demande de numérisation
1408                        $rqt = "ALTER TABLE users ADD xmlta_doctype_scan_request_folder_record VARCHAR(2) NOT NULL DEFAULT 'a' " ;
1409                        echo traite_rqt($rqt,"ALTER users ADD xmlta_doctype_scan_request_folder_record='a'");
1410
1411                        //DG - Paramètre pour activer ou non le sélecteur d'accès rapide
1412                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='quick_access' "))==0){
1413                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1414                                VALUES (0, 'opac', 'quick_access', '1', 'Activer le sélecteur d\'accès rapide ? \n0 : Non 1 : Oui','a_general',0)";
1415                                echo traite_rqt($rqt,"insert opac_quick_access into parametres");
1416                        }
1417
1418                        // AP & VT - Ajout de la colonne concept dans la table scan_request (permet de spécifier un concept pour indexer les documents numériques)
1419                        $rqt = "ALTER TABLE scan_requests ADD scan_request_concept_uri VARCHAR(255) NOT NULL DEFAULT '' " ;
1420                        echo traite_rqt($rqt,"ALTER scan_requests ADD scan_request_concept_uri");
1421
1422                        // AP & VT - Ajout de la colonne nb_scanned_pages dans la table scan_request (permet de renseigner le nombre de pages scannées dans la demande de numérisation)
1423                        $rqt = "ALTER TABLE scan_requests ADD scan_request_nb_scanned_pages INT unsigned NOT NULL DEFAULT 0 " ;
1424                        echo traite_rqt($rqt,"ALTER scan_requests ADD scan_request_nb_scanned_pages");
1425
1426                        // VT & AP - Modification de la table nomenclature_children_records : on ajoute une colonne pour stocker l'id de la nomenclature
1427                        $rqt = "ALTER TABLE nomenclature_children_records ADD child_record_num_nomenclature int unsigned not null default 0";
1428                        echo traite_rqt($rqt,"ALTER TABLE nomenclature_children_records ADD child_record_num_nomenclature int unsigned not null");
1429
1430                        //MB - Champ prix trop petit
1431                        $rqt = "ALTER TABLE lignes_actes CHANGE prix prix DOUBLE PRECISION(12,2) unsigned NOT NULL default '0.00'" ;
1432                        echo traite_rqt($rqt,"ALTER lignes_actes CHANGE prix");
1433
1434                        //MB - Champ montant trop petit
1435                        $rqt = "ALTER TABLE frais CHANGE montant montant DOUBLE PRECISION(12,2) unsigned NOT NULL default '0.00'" ;
1436                        echo traite_rqt($rqt,"ALTER frais CHANGE montant");
1437
1438                        //MB - Champ montant_global trop petit
1439                        $rqt = "ALTER TABLE budgets CHANGE montant_global montant_global DOUBLE PRECISION(12,2) unsigned NOT NULL default '0.00'" ;
1440                        echo traite_rqt($rqt,"ALTER budgets CHANGE montant_global");
1441
1442                        //DB - script de vérification de saisie d'une notice perso en integration
1443                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='catalog_verif_js_integration' "))==0){
1444                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
1445                                VALUES ( 'pmb', 'catalog_verif_js_integration', '', 'Script de vérification de saisie de notice en intégration','', 0)";
1446                                echo traite_rqt($rqt,"insert pmb_catalog_verif_js_integration='' into parametres");
1447                        }
1448
1449                        //NG & DG - Ajout de la table rent_pricing_systems
1450                        // id_pricing_system : Identifiant du système de tarification
1451                        // pricing_system_label : Nom
1452                        // pricing_system_desc : Description
1453                        // pricing_system_percents : Liste des pourcentages associés
1454                        // pricing_system_num_exercice : Exercice comptable associé
1455
1456                        $rqt = "create table if not exists rent_pricing_systems(
1457                                id_pricing_system int unsigned not null auto_increment primary key,
1458                                pricing_system_label varchar(255) not null default '',
1459                                pricing_system_desc text,
1460                                pricing_system_percents text,
1461                                pricing_system_num_exercice int unsigned not null default 0
1462                                )";
1463                        echo traite_rqt($rqt, "create table rent_pricing_systems");
1464
1465                        //NG & DG - Ajout de la table rent_pricing_system_grids
1466                        // id_pricing_system_grid : Identifiant incrémentiel
1467                        // pricing_system_grid_num_system : Système de tarification associé
1468                        // pricing_system_grid_time_start : Minutage de départ
1469                        // pricing_system_grid_time_end : Minutage de fin
1470                        // pricing_system_grid_price : Prix
1471                        // pricing_system_grid_type : Type (1 : intervalle, 2 : Temps suppl, 3 : Non utilisé)
1472                        $rqt = "create table if not exists rent_pricing_system_grids(
1473                                id_pricing_system_grid int unsigned not null auto_increment primary key,
1474                                pricing_system_grid_num_system int unsigned not null default 0,
1475                                pricing_system_grid_time_start int unsigned not null default 0,
1476                                pricing_system_grid_time_end int unsigned not null default 0,
1477                                pricing_system_grid_price float(12,2) unsigned not null default 0,
1478                                pricing_system_grid_type int unsigned not null default 0
1479                                )";
1480                        echo traite_rqt($rqt, "create table rent_pricing_system_grids");
1481
1482                        //NG & DG - Ajout de la table rent_account_sections
1483                        // account_type_num_exercice : Exercice comptable associé
1484                        // account_type_num_section : Rubrique budgétaire associée
1485                        // account_type_marclist : Type de décompte associé
1486                        $rqt = "create table if not exists rent_account_types_sections(
1487                                account_type_num_exercice int unsigned not null default 0,
1488                                account_type_num_section int unsigned not null default 0,
1489                                account_type_marclist varchar(10) not null default '',
1490                                PRIMARY KEY (account_type_num_section, account_type_marclist)
1491                                )";
1492                        echo traite_rqt($rqt, "create table rent_account_sections");
1493
1494                        //NG & DG - Ajout de la table rent_accounts
1495                        // id_account : Identifiant du décompte
1496                        // account_num_user : Identifiant de l'utilisateur qui l'a créé
1497                        // account_num_exercice : Exercice comptable associé
1498                        // account_type : Type de la demande
1499                        // account_desc : Description
1500                        // account_date : Date de création
1501                        // account_receipt_limit_date : Date limite de réception
1502                        // account_receipt_effective_date : Date effective de réception
1503                        // account_return_date : Date de retour
1504                        // account_num_authority : Exécution associée
1505                        // account_title : Titre
1506                        // account_event_date : Date de l'évènement
1507                        // account_event_formation : Formation
1508                        // account_event_orchestra : Chef d'orchestre
1509                        // account_event_place : Lieu de l'évènement
1510                        // account_num_publisher : Editeur associé
1511                        // account_num_author : Compositeur associé
1512                        // account_num_pricing_system : Système de tarification associé
1513                        // account_time : Minutage
1514                        // account_percent : Pourcentage
1515                        // account_price : Prix
1516                        // account_web : Diffusion Web (Oui/Non)
1517                        // account_web_percent : Pourcentage Web
1518                        // account_web_price : Prix Web
1519                        $rqt = "create table if not exists rent_accounts(
1520                                id_account int unsigned not null auto_increment primary key,
1521                                account_num_user int unsigned not null default 0,
1522                                account_num_exercice int unsigned not null default 0,
1523                                account_type varchar(3) not null default '',
1524                                account_desc text,
1525                                account_date datetime,
1526                                account_receipt_limit_date datetime,
1527                                account_receipt_effective_date datetime,
1528                                account_return_date datetime,
1529                                account_num_uniform_title int unsigned not null default 0,
1530                                account_title varchar(255) not null default '',
1531                                account_event_date varchar(255) not null default '',
1532                                account_event_formation varchar(255) not null default '',
1533                                account_event_orchestra varchar(255) not null default '',
1534                                account_event_place varchar(255) not null default '',
1535                                account_num_publisher int unsigned not null default 0,
1536                                account_num_author int unsigned not null default 0,
1537                                account_num_pricing_system int unsigned not null default 0,
1538                                account_time int unsigned not null default 0,
1539                                account_percent float(8,2) unsigned not null default 0,
1540                                account_price float(12,2) unsigned not null default 0,
1541                                account_web int(1) unsigned not null default 0,
1542                                account_web_percent float(8,2) unsigned not null default 0,
1543                                account_web_price float(12,2) unsigned not null default 0,
1544                                account_comment text
1545                                )";
1546                        echo traite_rqt($rqt, "create table rent_accounts");
1547
1548                        //NG & DG - Ajout de la table rent_invoices
1549                        // id_invoice : Identifiant de la facture
1550                        // invoice_num_user : Identifiant de l'utilisateur qui l'a créée
1551                        // invoice_date : Date de génération
1552                        // invoice_status : Enumération (0 = en cours, 1 = validée)
1553                        // invoice_valid_date : Date de validation
1554                        $rqt = "create table if not exists rent_invoices(
1555                                id_invoice int unsigned not null auto_increment primary key,
1556                                invoice_num_user int unsigned not null default 0,
1557                                invoice_date datetime,
1558                                invoice_status int unsigned not null default 1,
1559                                invoice_valid_date datetime,
1560                                invoice_destination varchar(10) not null default ''
1561                                )";
1562                        echo traite_rqt($rqt, "create table rent_invoices");
1563
1564                        //NG & DG - Ajout de la table rent_accounts_invoices
1565                        // account_invoice_num_account : Identifiant du décompte associé
1566                        // account_invoice_num_invoice : Identifiant de la facture associée
1567                        $rqt = "create table if not exists rent_accounts_invoices(
1568                                account_invoice_num_account int unsigned not null default 0,
1569                                account_invoice_num_invoice int unsigned not null default 0,
1570                                PRIMARY KEY (account_invoice_num_account, account_invoice_num_invoice)
1571                                )";
1572                        echo traite_rqt($rqt, "create table rent_accounts_invoices");
1573
1574                        //NG
1575                        $rqt = "ALTER TABLE rent_accounts ADD account_request_type varchar(3) not null default '' after account_num_exercice " ;
1576                        echo traite_rqt($rqt,"ALTER TABLE rent_accounts ADD account_request_type ");
1577
1578                        //DG - Statut sur les demandes de location (commandé / non commandé)
1579                        $rqt = "ALTER TABLE rent_accounts ADD account_request_status int(1) unsigned not null default 1 " ;
1580                        echo traite_rqt($rqt,"ALTER TABLE rent_accounts ADD account_request_status ");
1581
1582                        //NG
1583                        $rqt = "ALTER TABLE rent_accounts ADD account_num_acte int unsigned not null default 0 " ;
1584                        echo traite_rqt($rqt,"ALTER TABLE rent_accounts ADD account_num_acte ");
1585
1586                        //NG
1587                        $rqt = "ALTER TABLE rent_invoices ADD invoice_num_acte int unsigned not null default 0 " ;
1588                        echo traite_rqt($rqt,"ALTER TABLE rent_invoices ADD invoice_num_acte ");
1589
1590                        //NG - Ajout d'un lien fournisseur dans la table des editeurs
1591                        $rqt = "ALTER TABLE publishers ADD ed_num_entite int unsigned NOT NULL default 0 " ;
1592                        echo traite_rqt($rqt,"ALTER TABLE publishers ADD ed_num_entite ");
1593
1594                        // DG - Afficher la possibilité pour le lecteur d'inscrire d'autres membres à ses listes
1595                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param='opac' and sstype_param='shared_lists_add_empr' "))==0){
1596                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1597                                VALUES (0, 'opac', 'shared_lists_add_empr', '0', 'Afficher la possibilité pour le lecteur d\'inscrire d\'autres membres à ses listes de lecture partagées \n 0 : Non \n 1 : Oui', 'a_general', '0')";
1598                                echo traite_rqt($rqt,"insert opac_shared_lists_add_empr='0' into parametres ");
1599                        }
1600
1601                        //DG - Gestion des avis - Notion de commentaire privé
1602                        $rqt = "ALTER TABLE avis ADD avis_private int(1) unsigned not null default 0 " ;
1603                        echo traite_rqt($rqt,"ALTER TABLE avis ADD avis_private ");
1604
1605                        //DG - Gestion des avis - Association d'une liste lecture
1606                        $rqt = "ALTER TABLE avis ADD avis_num_liste_lecture int(8) unsigned not null default 0 " ;
1607                        echo traite_rqt($rqt,"ALTER TABLE avis ADD avis_num_liste_lecture ");
1608
1609                        //DG - Listes de lecture - Saisie libre d'un tag
1610                        $rqt = "ALTER TABLE opac_liste_lecture ADD tag varchar(255) not null default '' " ;
1611                        echo traite_rqt($rqt,"ALTER TABLE opac_liste_lecture ADD tag ");
1612
1613                        // AP & NG - Ajout d'un paramètre URI du concept à associer aux partitions avant exécution
1614                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='nomenclature_music_concept_before' "))==0){
1615                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1616                                        VALUES (NULL, 'pmb', 'nomenclature_music_concept_before', '0', 'URI du concept à associer aux partitions avant exécution', '', '1')";
1617                                echo traite_rqt($rqt,"insert pmb_nomenclature_music_concept_before into parametres ");
1618                        }
1619
1620                        // AP & NG - Ajout d'un paramètre URI du concept à associer aux partitions après exécution
1621                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='nomenclature_music_concept_after' "))==0){
1622                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1623                                        VALUES (NULL, 'pmb', 'nomenclature_music_concept_after', '0', 'URI du concept à associer aux partitions après exécution', '', '1')";
1624                                echo traite_rqt($rqt,"insert pmb_nomenclature_music_concept_after into parametres ");
1625                        }
1626
1627                        // AP & NG - Ajout d'un paramètre URI du concept à associer aux partitions originales
1628                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='nomenclature_music_concept_blank' "))==0){
1629                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1630                                        VALUES (NULL, 'pmb', 'nomenclature_music_concept_blank', '0', 'URI du concept à associer aux partitions originales', '', '1')";
1631                                echo traite_rqt($rqt,"insert pmb_nomenclature_music_concept_blank into parametres ");
1632                        }
1633
1634                        // AP & NG - Passage du paramètre nomenclature_record_children_link en caché
1635                        $rqt = "UPDATE parametres SET gestion='1' where type_param= 'pmb' and sstype_param='nomenclature_record_children_link' ";
1636                        echo traite_rqt($rqt,"update pmb_nomenclature_record_children_link");
1637
1638
1639                        //AP & VT - Mise à jour du paramètre de définition de répertoire de template pour les affichages autorités en opac
1640                        if(pmb_mysql_num_rows(pmb_mysql_query('select valeur_param from parametres where type_param= "opac" and sstype_param="authorities_templates_folder" and valeur_param like "%/%"'))){
1641                                $rqt = 'UPDATE parametres set valeur_param = SUBSTRING_INDEX(valeur_param, "/", -1) where type_param= "opac" and sstype_param="authorities_templates_folder" ';
1642                                echo traite_rqt($rqt,"UPDATE parametres opac_authorities_templates_folder");
1643                        }
1644
1645                        //DG - Fournisseur associé au décompte de location
1646                        $rqt = "ALTER TABLE rent_accounts ADD account_num_supplier int unsigned not null default 0 after account_num_publisher" ;
1647                        echo traite_rqt($rqt,"ALTER TABLE rent_accounts ADD account_num_supplier ");
1648
1649                        //DG - Modification du champ account_event_date de la table rent_accounts
1650                        $rqt = "ALTER TABLE rent_accounts MODIFY account_event_date datetime" ;
1651                        echo traite_rqt($rqt,"alter table rent_accounts modify account_event_date");
1652
1653                        //DB Maj commentaires mail_methode
1654                        $rqt = "update parametres set comment_param= 'Méthode d\'envoi des mails : \n php : fonction mail() de php\n smtp,hote:port,auth,user,pass,(ssl|tls) : en smtp, mettre O ou 1 pour l\'authentification... ' where sstype_param='mail_methode' ";
1655                        echo traite_rqt($rqt,"update mail_methode comments");
1656
1657                        // DG & VT - Activation des actions rapides (dans le tableau de bord)
1658                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='dashboard_quick_params_activate' "))==0){
1659                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1660                                VALUES (0, 'pmb', 'dashboard_quick_params_activate', '1', 'Activer les actions rapides dans le tableau de bord.\n0 : Non\n1 : Oui' ,'', 0)";
1661                                echo traite_rqt($rqt,"insert pmb_dashboard_quick_params_activate=1 into parametres");
1662                        }
1663
1664                        //JP - Autoriser les montants négatifs dans les acquisitions
1665                        $rqt = "ALTER TABLE frais CHANGE montant montant DOUBLE(12,2) NOT NULL DEFAULT '0.00'";
1666                        echo traite_rqt($rqt,"ALTER TABLE frais CHANGE montant");
1667                        $rqt = "ALTER TABLE lignes_actes CHANGE prix prix DOUBLE(12,2) NOT NULL DEFAULT '0.00'";
1668                        echo traite_rqt($rqt,"ALTER TABLE lignes_actes CHANGE prix");
1669
1670                        //DG - accès rapide pour les paniers de lecteurs
1671                        $rqt = "ALTER TABLE empr_caddie ADD acces_rapide INT NOT NULL default 0";
1672                        echo traite_rqt($rqt,"ALTER TABLE empr_caddie ADD acces_rapide");
1673
1674                        //JP - update bannette_aff_notice_number pour les bannettes privées
1675                        $rqt = "UPDATE bannettes SET bannette_aff_notice_number = 1 WHERE proprio_bannette <> 0" ;
1676                        echo traite_rqt($rqt,"UPDATE bannettes SET bannette_aff_notice_number ");
1677                        echo traite_rqt($rqt,"UPDATE bannettes SET bannette_aff_notice_number ");
1678
1679                        //NG - Mémorisation de l'utilisateur qui fait une demande de transfert
1680                        $rqt = "ALTER TABLE transferts ADD transfert_ask_user_num INT NOT NULL default 0";
1681                        echo traite_rqt($rqt,"ALTER TABLE transferts ADD transfert_ask_user_num");
1682
1683                        //AP - Ajout du nom de groupe dans la table des circulations en cours
1684                        $rqt = "ALTER TABLE serialcirc_circ ADD serialcirc_circ_group_name varchar(255) NOT NULL DEFAULT ''";
1685                        echo traite_rqt($rqt,"ALTER TABLE serialcirc_circ add serialcirc_circ_group_name default ''");
1686
1687                        //DG - Avis privé par défaut
1688                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='avis_default_private' "))==0){
1689                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1690                                VALUES (0, 'opac', 'avis_default_private', '0', 'Avis privé par défaut ? \n 0 : Non \n 1 : Oui', 'a_general', 0) ";
1691                                echo traite_rqt($rqt,"insert opac_avis_default_private into parametres") ;
1692                        }
1693
1694                        //JP - Alerter l'utilisateur par mail des nouvelles demandes d'inscription aux listes de circulation
1695                        $rqt = "ALTER TABLE users ADD user_alert_serialcircmail INT(1) UNSIGNED NOT NULL DEFAULT 0 after user_alert_subscribemail";
1696                        echo traite_rqt($rqt,"ALTER TABLE users add user_alert_serialcircmail default 0");
1697
1698                        //JP - Enrichir les flux rss générés par les veilles
1699                        $rqt = "ALTER TABLE docwatch_watches ADD watch_rss_link VARCHAR(255) NOT NULL, ADD watch_rss_lang VARCHAR(255) NOT NULL, ADD watch_rss_copyright VARCHAR(255) NOT NULL, ADD watch_rss_editor VARCHAR(255) NOT NULL, ADD watch_rss_webmaster VARCHAR(255) NOT NULL, ADD watch_rss_image_title VARCHAR(255) NOT NULL, ADD watch_rss_image_website VARCHAR(255) NOT NULL";
1700                        echo traite_rqt($rqt,"ALTER TABLE docwatch_watches add watch_rss_link, watch_rss_lang, watch_rss_copyright, watch_rss_editor, watch_rss_webmaster, watch_rss_image_title, watch_rss_image_website");
1701
1702                        //JP - Possibilité de nettoyer le contenu HTML dans un OAI entrant
1703                        $rqt = "ALTER TABLE connectors_sources ADD clean_html INT(3) UNSIGNED NOT NULL DEFAULT '0'";
1704                        echo traite_rqt($rqt,"ALTER TABLE connectors_sources add clean_html");
1705
1706                        //Alexandre - Préremplissage de la vignette des dépouillements avec la vignette du bulletin
1707                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='bulletin_thumbnail_url_article' "))==0){
1708                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1709                                VALUES (0, 'pmb', 'bulletin_thumbnail_url_article', '0', 'Préremplissage de l\'url de la vignette des dépouillements avec l\'url de la vignette de la notice bulletin en catalogage des périodiques ? \n 0 : Non \n 1 : Oui', '',0) ";
1710                                echo traite_rqt($rqt, "insert pmb_bulletin_thumbnail_url_article=0 into parametres");
1711                        }
1712
1713                        //DG - Grilles exemplaires éditables
1714                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='form_expl_editables' "))==0){
1715                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1716                                        VALUES (0, 'pmb', 'form_expl_editables', '1', 'Grilles exemplaires éditables ? \n 0 non \n 1 oui','',0)";
1717                                echo traite_rqt($rqt,"insert pmb_form_expl_editables into parametres");
1718                        }
1719
1720                        //DG - Grilles exemplaires numériques éditables
1721                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='form_explnum_editables' "))==0){
1722                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1723                                        VALUES (0, 'pmb', 'form_explnum_editables', '1', 'Grilles exemplaires numériques éditables ? \n 0 non \n 1 oui','',0)";
1724                                echo traite_rqt($rqt,"insert pmb_form_explnum_editables into parametres");
1725                        }
1726
1727                        //DG - Mis à jour de la table grilles_auth (pour ceux qui ont une version récente de PMB) pour la rendre générique
1728                        if (pmb_mysql_query("select * from grilles_auth")){
1729                                $rqt = "RENAME TABLE grilles_auth TO grids_generic";
1730                                echo traite_rqt($rqt, "rename grilles_auth to grids_generic");
1731
1732                                // DG - Renommage de la colonne "grille_auth_type" en "grid_generic_type"
1733                                $rqt = "ALTER TABLE grids_generic CHANGE grille_auth_type grid_generic_type VARCHAR(32) not null default ''";
1734                                echo traite_rqt($rqt,"alter grids_generic change grille_auth_type grid_generic_type");
1735
1736                                // DG - Renommage de la colonne "grille_auth_filter" en "grid_generic_filter"
1737                                $rqt = "ALTER TABLE grids_generic CHANGE grille_auth_filter grid_generic_filter VARCHAR(255) null default ''";
1738                                echo traite_rqt($rqt,"alter grids_generic change grille_auth_filter grid_generic_filter");
1739
1740                                // DG - Renommage de la colonne "grille_auth_descr_format" en "grid_generic_descr_format"
1741                                $rqt = "ALTER TABLE grids_generic CHANGE grille_auth_descr_format grid_generic_data mediumblob NOT NULL";
1742                                echo traite_rqt($rqt,"alter grids_generic change grille_auth_descr_format grid_generic_data");
1743                        }
1744
1745                        //NG - Mémorisation de l'utilisateur qui fait l'envoi de transfert
1746                        $rqt = "ALTER TABLE transferts ADD transfert_send_user_num INT NOT NULL default 0";
1747                        echo traite_rqt($rqt,"ALTER TABLE transferts ADD transfert_send_user_num");
1748
1749                        // DG - Création de la table de stockage des objets pour le formulaire de contact opac
1750                        // id_object : Identifiant de l'objet
1751                        // object_label : Libellé de l'objet
1752                        $rqt = "create table if not exists contact_form_objects(
1753                                id_object int unsigned not null auto_increment primary key,
1754                                object_label varchar(255) not null default '') ";
1755                        echo traite_rqt($rqt,"create table contact_form_objects");
1756
1757                        //DG - Formulaire de contact - Paramétrage général
1758                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='contact_form_parameters' "))==0){
1759                                $rqt = "INSERT INTO parametres (type_param,sstype_param,valeur_param,comment_param,section_param,gestion)
1760                                        VALUES ('pmb','contact_form_parameters','','Paramétrage général du formulaire de contact','',1)";
1761                                echo traite_rqt($rqt,"insert pmb_contact_form_parameters into parametres");
1762                        }
1763
1764                        //DG - Formulaire de contact - Paramétrage des listes de destinataires
1765                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='contact_form_recipients_lists' "))==0){
1766                                $rqt = "INSERT INTO parametres (type_param,sstype_param,valeur_param,comment_param,section_param,gestion)
1767                                        VALUES ('pmb','contact_form_recipients_lists','','Paramétrage des listes de destinataires du formulaire de contact','',1)";
1768                                echo traite_rqt($rqt,"insert pmb_contact_form_recipients_lists into parametres");
1769                        }
1770
1771                        //DG - Paramètre pour afficher ou non le formulaire de contact
1772                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='contact_form' "))==0){
1773                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1774                                        VALUES (0, 'opac', 'contact_form', '0', 'Afficher le formulaire de contact ? \n0 : Non 1 : Oui','a_general',0)";
1775                                echo traite_rqt($rqt,"insert opac_contact_form into parametres");
1776                        }
1777
1778                        //JP - Paramètre inutilisé caché
1779                        $rqt = "update parametres set gestion=1 where type_param= 'opac' and sstype_param='categories_categ_sort_records' ";
1780                        echo traite_rqt($rqt,"update categories_categ_sort_records hide into parametres");
1781
1782                        //JP - date de création et créateur des paniers
1783                        $rqt = "ALTER TABLE caddie ADD creation_user_name VARCHAR(255) NOT NULL DEFAULT '', ADD creation_date datetime NOT NULL DEFAULT '0000-00-00 00:00:00'";
1784                        echo traite_rqt($rqt,"ALTER TABLE caddie add creation_user_name, creation_date");
1785                        $rqt = "ALTER TABLE empr_caddie ADD creation_user_name VARCHAR(255) NOT NULL DEFAULT '', ADD creation_date datetime NOT NULL DEFAULT '0000-00-00 00:00:00'";
1786                        echo traite_rqt($rqt,"ALTER TABLE empr_caddie add creation_user_name, creation_date");
1787
1788                        //NG - Mémorisation de la date demandée par l'utilisateur en demande de transfert
1789                        $rqt = "ALTER TABLE transferts ADD transfert_ask_date date NOT NULL default '0000-00-00'";
1790                        echo traite_rqt($rqt,"ALTER TABLE transferts ADD transfert_ask_date");
1791
1792                        //DG - Ajout du type sur les recherches prédéfinies gestion (Pour spécifier Notices / Autorités)
1793                        $rqt = "ALTER TABLE search_perso ADD search_type varchar(255) not null default 'RECORDS' after search_id";
1794                        echo traite_rqt($rqt,"ALTER TABLE search_perso ADD search_type") ;
1795
1796                        //DG - Nomenclatures : Note pour les instruments non standard en édition de notices
1797                        $rqt = "ALTER TABLE nomenclature_notices_nomenclatures ADD notice_nomenclature_exotic_instruments_note text not null after notice_nomenclature_families_notes";
1798                        echo traite_rqt($rqt,"ALTER TABLE nomenclature_notices_nomenclatures ADD notice_nomenclature_exotic_instruments_note ");
1799
1800                        //TS - Ajout d'une classe CSS sur les cadres du portail
1801                        $rqt = "ALTER TABLE cms_cadres ADD cadre_css_class VARCHAR(255) NOT NULL DEFAULT '' AFTER cadre_modcache";
1802                        echo traite_rqt($rqt,"ALTER TABLE cms_cadres ADD cadre_css_class");
1803                        //DG - Personnalisables de notices : Ordre pour les champs répétables
1804                        $rqt = "ALTER TABLE notices_custom_values ADD notices_custom_order int(11) NOT NULL default 0";
1805                        echo traite_rqt($rqt,"ALTER TABLE notices_custom_values ADD notices_custom_order");
1806
1807                        //DG - Personnalisables de auteurs : Ordre pour les champs répétables
1808                        $rqt = "ALTER TABLE author_custom_values ADD author_custom_order int(11) NOT NULL default 0";
1809                        echo traite_rqt($rqt,"ALTER TABLE author_custom_values ADD author_custom_order");
1810
1811                        //DG - Personnalisables de catégories : Ordre pour les champs répétables
1812                        $rqt = "ALTER TABLE categ_custom_values ADD categ_custom_order int(11) NOT NULL default 0";
1813                        echo traite_rqt($rqt,"ALTER TABLE categ_custom_values ADD categ_custom_order");
1814
1815                        //DG - Personnalisables de éditeurs : Ordre pour les champs répétables
1816                        $rqt = "ALTER TABLE publisher_custom_values ADD publisher_custom_order int(11) NOT NULL default 0";
1817                        echo traite_rqt($rqt,"ALTER TABLE publisher_custom_values ADD publisher_custom_order");
1818
1819                        //DG - Personnalisables de collections : Ordre pour les champs répétables
1820                        $rqt = "ALTER TABLE collection_custom_values ADD collection_custom_order int(11) NOT NULL default 0";
1821                        echo traite_rqt($rqt,"ALTER TABLE collection_custom_values ADD collection_custom_order");
1822
1823                        //DG - Personnalisables de sous-collections : Ordre pour les champs répétables
1824                        $rqt = "ALTER TABLE subcollection_custom_values ADD subcollection_custom_order int(11) NOT NULL default 0";
1825                        echo traite_rqt($rqt,"ALTER TABLE subcollection_custom_values ADD subcollection_custom_order");
1826
1827                        //DG - Personnalisables de titres de séries : Ordre pour les champs répétables
1828                        $rqt = "ALTER TABLE serie_custom_values ADD serie_custom_order int(11) NOT NULL default 0";
1829                        echo traite_rqt($rqt,"ALTER TABLE serie_custom_values ADD serie_custom_order");
1830
1831                        //DG - Personnalisables de titres uniformes : Ordre pour les champs répétables
1832                        $rqt = "ALTER TABLE tu_custom_values ADD tu_custom_order int(11) NOT NULL default 0";
1833                        echo traite_rqt($rqt,"ALTER TABLE tu_custom_values ADD tu_custom_order");
1834
1835                        //DG - Personnalisables d'indexations décimales : Ordre pour les champs répétables
1836                        $rqt = "ALTER TABLE indexint_custom_values ADD indexint_custom_order int(11) NOT NULL default 0";
1837                        echo traite_rqt($rqt,"ALTER TABLE indexint_custom_values ADD indexint_custom_order");
1838
1839                        //DG - Personnalisables d'autorités perso : Ordre pour les champs répétables
1840                        $rqt = "ALTER TABLE authperso_custom_values ADD authperso_custom_order int(11) NOT NULL default 0";
1841                        echo traite_rqt($rqt,"ALTER TABLE authperso_custom_values ADD authperso_custom_order");
1842
1843                        //DG - Personnalisables du contenu éditorial : Ordre pour les champs répétables
1844                        $rqt = "ALTER TABLE cms_editorial_custom_values ADD cms_editorial_custom_order int(11) NOT NULL default 0";
1845                        echo traite_rqt($rqt,"ALTER TABLE cms_editorial_custom_values ADD cms_editorial_custom_order");
1846
1847                        //DG - Personnalisables d'états des collections : Ordre pour les champs répétables
1848                        $rqt = "ALTER TABLE collstate_custom_values ADD collstate_custom_order int(11) NOT NULL default 0";
1849                        echo traite_rqt($rqt,"ALTER TABLE collstate_custom_values ADD collstate_custom_order");
1850
1851                        //DG - Personnalisables de demandes : Ordre pour les champs répétables
1852                        $rqt = "ALTER TABLE demandes_custom_values ADD demandes_custom_order int(11) NOT NULL default 0";
1853                        echo traite_rqt($rqt,"ALTER TABLE demandes_custom_values ADD demandes_custom_order");
1854
1855                        //DG - Personnalisables de lecteurs : Ordre pour les champs répétables
1856                        $rqt = "ALTER TABLE empr_custom_values ADD empr_custom_order int(11) NOT NULL default 0";
1857                        echo traite_rqt($rqt,"ALTER TABLE empr_custom_values ADD empr_custom_order");
1858
1859                        //DG - Personnalisables d'exemplaires : Ordre pour les champs répétables
1860                        $rqt = "ALTER TABLE expl_custom_values ADD expl_custom_order int(11) NOT NULL default 0";
1861                        echo traite_rqt($rqt,"ALTER TABLE expl_custom_values ADD expl_custom_order");
1862
1863                        //DG - Personnalisables de fiches : Ordre pour les champs répétables
1864                        $rqt = "ALTER TABLE gestfic0_custom_values ADD gestfic0_custom_order int(11) NOT NULL default 0";
1865                        echo traite_rqt($rqt,"ALTER TABLE gestfic0_custom_values ADD gestfic0_custom_order");
1866
1867                        //DG - Personnalisables de prêts : Ordre pour les champs répétables
1868                        $rqt = "ALTER TABLE pret_custom_values ADD pret_custom_order int(11) NOT NULL default 0";
1869                        echo traite_rqt($rqt,"ALTER TABLE pret_custom_values ADD pret_custom_order");
1870
1871
1872                        //DG - Paramètre pour afficher ou non le lien de génération d'un flux RSS de la recherche
1873                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='short_url' "))==0){
1874                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1875                                        VALUES (0, 'opac', 'short_url', '1', 'Afficher le lien permettant de générer un flux RSS de la recherche ? \n0 : Non 1 : Oui','d_aff_recherche',0)";
1876                                echo traite_rqt($rqt,"insert opac_short_url=1 into parametres");
1877                        }
1878
1879                        //AR - Les index, c'est pratique...
1880                        $rqt = "alter table tu_oeuvres_events add index i_toe_oeuvre_event_tu_num(oeuvre_event_tu_num)";
1881                        echo traite_rqt($rqt,$rqt);
1882
1883                        $rqt = "alter table tu_oeuvres_events add index i_toe_oeuvre_event_authperso_authority_num(oeuvre_event_authperso_authority_num)";
1884                        echo traite_rqt($rqt,$rqt);
1885
1886                        $rqt = "alter table notices_titres_uniformes add index i_ntu_ntu_num_tu(ntu_num_tu)";
1887                        echo traite_rqt($rqt,$rqt);
1888
1889                        $rqt = "ALTER TABLE authorities ADD INDEX i_a_num_object_type_object(num_object,type_object)";
1890                        echo traite_rqt($rqt,$rqt);
1891
1892                        $rqt = "ALTER TABLE authorities ADD INDEX i_a_num_statut(num_statut)";
1893                        echo traite_rqt($rqt,$rqt);
1894
1895                        $rqt = "ALTER TABLE titres_uniformes ADD INDEX i_tu_tu_oeuvre_type(tu_oeuvre_type)";
1896                        echo traite_rqt($rqt,$rqt);
1897
1898                        $rqt = "ALTER TABLE titres_uniformes ADD INDEX i_tu_tu_oeuvre_nature(tu_oeuvre_nature)";
1899                        echo traite_rqt($rqt,$rqt);
1900
1901                        // AP & DG - Création de la table de planches d'étiquettes
1902                        // id_sticks_sheet : Identifiant
1903                        // sticks_sheet_label : Libellé
1904                        // sticks_sheet_data : Structure JSON des données de génération
1905                        // sticks_sheet_order : Ordre
1906                        $rqt = "create table if not exists sticks_sheets(
1907                                id_sticks_sheet int unsigned not null auto_increment primary key,
1908                                sticks_sheet_label varchar(255) not null default '',
1909                                sticks_sheet_data text not null,
1910                                sticks_sheet_order int(11) NOT NULL default 0) ";
1911                        echo traite_rqt($rqt,"create table sticks_sheets");
1912
1913                        // AP & DG - Création de la table de seuils de commandes
1914                        // id_threshold : Identifiant
1915                        // threshold_label : Libellé
1916                        // threshold_amount : Montant du seuil
1917                        // threshold_amount_tax_included : Montant du seuil HT/TTC
1918                        // threshold_footer : Pied de page Signature
1919                        // threshold_num_entity : Etablissement associé
1920                        $rqt = "create table if not exists thresholds(
1921                                id_threshold int unsigned not null auto_increment primary key,
1922                                threshold_label varchar(255) not null default '',
1923                                threshold_amount float NOT NULL DEFAULT 0,
1924                                threshold_amount_tax_included int(1) NOT NULL DEFAULT 0,
1925                                threshold_footer text not null,
1926                                threshold_num_entity int(11) NOT NULL default 0) ";
1927                        echo traite_rqt($rqt,"create table thresholds");
1928
1929                        // DG & AP - Ajout d'un paramètre pour activer la gestion avancées des états des collections
1930                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='collstate_advanced' "))==0){
1931                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1932                                        VALUES (NULL, 'pmb', 'collstate_advanced', '0', 'Activer la gestion avancée des états des collections :\n 0 : non activée \n 1 : activée', '', '0')";
1933                                echo traite_rqt($rqt,"insert collstate_advanced='0' into parametres ");
1934                        }
1935
1936                        // DG & AP - Création de la table de liaison entre bulletins et états des collections
1937                        // collstate_bulletins_num_collstate : Identifiant de la collection
1938                        // collstate_bulletins_num_bulletin : Identifiant du bulletin
1939                        // collstate_bulletins_order : Ordre
1940                        $rqt = "create table if not exists collstate_bulletins(
1941                                collstate_bulletins_num_collstate int(8) not null default 0,
1942                                collstate_bulletins_num_bulletin int(8) not null default 0,
1943                                collstate_bulletins_order int(8) NOT NULL default 0,
1944                                primary key (collstate_bulletins_num_collstate, collstate_bulletins_num_bulletin)) ";
1945                        echo traite_rqt($rqt,"create table collstate_bulletins");
1946
1947                        //DG - OPAC : Personnalisation de la pagination des listes
1948                        if(pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='items_pagination_custom' "))==0){
1949                                $rqt = "INSERT INTO parametres ( id_param , type_param , sstype_param , valeur_param , comment_param , section_param , gestion )
1950                                VALUES (0 , 'opac', 'items_pagination_custom', '25,50,100,200', 'Personnalisation de valeurs numériques supplémentaires dans les listes paginées, séparées par des virgules : 25,50,100,200.', 'a_general', '0')";
1951                                echo traite_rqt($rqt, "insert opac_items_pagination_custom=25,50,100,200 into parametres");
1952                        }
1953
1954                        //DG - Gestion : Personnalisation de la pagination des listes
1955                        if(pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='items_pagination_custom' "))==0){
1956                                $rqt = "INSERT INTO parametres ( id_param , type_param , sstype_param , valeur_param , comment_param , section_param , gestion )
1957                                VALUES (0 , 'pmb', 'items_pagination_custom', '25,50,100,200', 'Personnalisation de valeurs numériques supplémentaires dans les listes paginées, séparées par des virgules : 25,50,100,200.', '', '0')";
1958                                echo traite_rqt($rqt, "insert pmb_items_pagination_custom=25,50,100,200 into parametres");
1959                        }
1960
1961                        //DG - Attribution des droits de construction de portail au Super User uniquement
1962                        $rqt = "update users set rights=rights+1048576 where rights<1048576 and userid=1";
1963                        echo traite_rqt($rqt, "update users add rights cms_build only for Super User");
1964
1965                        //DG - Ajout de l'ordre sur les recherches prédéfinies OPAC
1966                        $rqt = "ALTER TABLE search_persopac ADD search_order int(11) NOT NULL default 0";
1967                        echo traite_rqt($rqt,"ALTER TABLE search_persopac ADD search_order") ;
1968
1969                        //JP - Message personnalisé sur la page de connexion
1970                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='login_message' "))==0){
1971                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
1972                                        VALUES ( 'pmb', 'login_message', '', 'Message à afficher sur la page de connexion','', 0)";
1973                                echo traite_rqt($rqt,"insert pmb_login_message into parametres");
1974                        }
1975
1976                        //JP - éviter les codes-barre identiques en création d'emprunteur
1977                        $rqt = "create table if not exists empr_temp (cb varchar( 255 ) NOT NULL ,sess varchar( 12 ) NOT NULL ,UNIQUE (cb))";
1978                        echo traite_rqt($rqt,"create table  if not exists empr_temp ") ;
1979
1980                        //NG - Ajout d'un paramètre utilisateur permettant d'activer la webcam
1981                        $rqt = "alter table users add deflt_camera_empr int not null default 0";
1982                        echo traite_rqt($rqt,"alter table users add deflt_camera_empr");
1983
1984                        //JP - changement du séparateur des tris de l'opac pour pouvoir utiliser le parse HTML
1985                        $rqt = "UPDATE parametres SET valeur_param=REPLACE(valeur_param,';','||'), comment_param='Afficher la liste déroulante de sélection d\'un tri ? \n 0 : Non \n 1 : Oui \nFaire suivre d\'un espace pour l\'ajout de plusieurs tris sous la forme : c_num_6|Libelle||d_text_7|Libelle 2||c_num_5|Libelle 3\n\nc pour croissant, d pour décroissant\nnum ou text pour numérique ou texte\nidentifiant du champ (voir fichier xml sort.xml)\nlibellé du tri (optionnel)' WHERE type_param='opac' AND sstype_param='default_sort_list'";
1986                        echo traite_rqt($rqt,"update value into parametres") ;
1987
1988                        //JP - Recherche étendue aux oeuvres sur paramètre
1989                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='allow_search_into_linked_elements' "))==0){
1990                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
1991                                        VALUES ( 'pmb', 'allow_search_into_linked_elements', '2', 'Afficher la case à cocher permettant d\'étendre la recherche aux oeuvres ?\n 0 : Non\n 1 : Oui, cochée par défaut\n 2 : Oui, non-cochée par défaut','search', 0)";
1992                                echo traite_rqt($rqt,"insert pmb_allow_search_into_linked_elements into parametres");
1993                        }
1994                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='allow_search_into_linked_elements' "))==0){
1995                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
1996                                        VALUES ( 'opac', 'allow_search_into_linked_elements', '2', 'Afficher la case à cocher permettant d\'étendre la recherche aux oeuvres ?\n 0 : Non\n 1 : Oui, cochée par défaut\n 2 : Oui, non-cochée par défaut','c_recherche', 0)";
1997                                echo traite_rqt($rqt,"insert opac_allow_search_into_linked_elements into parametres");
1998                        }
1999
2000                        //DG - Typage des avis pour combiner les notices et les articles du contenu éditorial..pour le moment..
2001                        $rqt = "ALTER TABLE avis ADD type_object mediumint(8) NOT NULL AFTER num_notice";
2002                        echo traite_rqt($rqt,"ALTER TABLE avis ADD type_object") ;
2003                        //DG - On affecte les avis existants de type AVIS_RECORDS
2004                        $rqt = "UPDATE avis set type_object = 1, dateajout = dateajout where type_object = 0";
2005                        echo traite_rqt($rqt,"UPDATE type_object = 1 FOR records avis") ;
2006
2007                        //VT - Ajout de deux éléments dans la table cms_editorial_types (id d'une page et variable d'environnement) permettant de générer un permalink
2008                        $rqt = "ALTER TABLE cms_editorial_types ADD editorial_type_permalink_num_page int(11) NOT NULL default 0, ADD editorial_type_permalink_var_name varchar(255) not null default ''";
2009                        echo traite_rqt($rqt,"ALTER TABLE cms_editorial_types ADD editorial_type_permalink_num_page, ADD editorial_type_permalink_var_name") ;
2010
2011                        //VT - Définition du mode de génération du flux rss de recherche (le paramètre opac_short_url doit être activé)
2012                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='short_url_mode' "))==0){
2013                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2014                                        VALUES (0, 'opac', 'short_url_mode', '0', 'Elements générés dans le flux rss de la recherche: \n0 : Nouveautés \n1 : Résultats de la recherche \nPour le mode 1, un nombre de résultats limite peut être ajouté après le mode, il doit être précédé d\'une virgule\nExemple: 1,30\nSi aucune limite n\'est spécifiée, c\'est le paramètre opac_search_results_per_page qui sera pris en compte','d_aff_recherche',0)";
2015                                echo traite_rqt($rqt,"insert opac_short_url_mode=0 into parametres");
2016                        }
2017
2018                        //VT - Ajout d'un paramètre autorisant la réservation d'une notice sans exemplaire
2019                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='resa_records_no_expl' "))==0){
2020                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2021                                VALUES (0, 'pmb', 'resa_records_no_expl', '0', 'Réservation sur les notices \n 0 : Non \n 1 : Oui','',0)";
2022                                echo traite_rqt($rqt,"insert pmb_resa_records_no_expl=0 into parametres");
2023                        }
2024
2025                        //VT - Création d'une table permettant de stocker les identifiants des emprunteurs ayant suggéré la commande
2026                        $rqt = "create table if not exists lignes_actes_applicants(
2027                                ligne_acte_num int not null default 0,
2028                                empr_num int not null default 0,
2029                                primary key (ligne_acte_num, empr_num)) ";
2030                        echo traite_rqt($rqt,"create table lignes_actes_applicants");
2031
2032                        //NG - OPAC : Ajout du paramètre activant la déconnexion dans le menu d'accès rapide et désactivant le lien de déconnexion classique
2033                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='quick_access_logout' "))==0){
2034                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2035                                VALUES (0, 'opac', 'quick_access_logout', '0', 'Activer le menu de déconnexion dans le sélecteur d\'accès rapide ? \n0 : Non 1 : Oui','a_general',0)";
2036                                echo traite_rqt($rqt,"insert opac_quick_access_logout into parametres");
2037                        }
2038
2039                        //NG - Ajout du libellé opac des classements de bannettes publiques
2040                        $rqt = "ALTER TABLE classements ADD classement_opac_name varchar(255) not null default ''";
2041                        echo traite_rqt($rqt,"ALTER TABLE classements ADD classement_opac_name") ;
2042
2043                        //NG - Ajout de l'ordre dans les classements de bannettes publiques
2044                        $rqt = "ALTER TABLE classements ADD classement_order int NOT NULL default 0";
2045                        echo traite_rqt($rqt,"ALTER TABLE classements ADD classement_order") ;
2046
2047                        //NG - Attribution d'un ordre par défault pour le fonctionnement du tri des classement des classement de bannettes
2048                        $rqt = "update classements set classement_order=id_classement where (type_classement='BAN' or type_classement='')";
2049                        echo traite_rqt($rqt, "update classements set classement_order");
2050
2051                        //NG - Ajout du paramètre du répertoire et motif d'upload des photos des emprunteurs, dans le motif fourni, !!num_carte!! sera remplacé par le numéro de carte du lecteur.
2052                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'empr' and sstype_param='pics_folder' "))==0){
2053                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2054                                VALUES (0, 'empr', 'pics_folder', '', 'Répertoire et motif d\'upload des photos des emprunteurs, dans le motif fourni, !!num_carte!! sera remplacé par le numéro de carte du lecteur. \n exemple : ./photos/lecteurs/!!num_carte!!.jpg \n ATTENTION : cohérence avec empr_pics_url à vérifier','',0)";
2055                                echo traite_rqt($rqt,"insert empr_pics_folder into parametres");
2056                        }
2057
2058                        //NG - Activer la recherche de notices déjà présentes en saisie d'une suggestion d'acquisition
2059                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='suggestion_search_notice_doublon' "))==0){
2060                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2061                                        VALUES(0,'opac','suggestion_search_notice_doublon','0','Activer la recherche de notices déjà présentes en saisie d\'une suggestion d\'acquisition\n0 : Désactiver\n1 : Activer\n2 : Activer avec le levenshtein\n    NB : Cette fonction nécessite l\'installation de l\'extension levenshtein dans MySQL','c_recherche',0)" ;
2062                                echo traite_rqt($rqt,"insert opac_suggestion_search_notice_doublon into parametres") ;
2063                        }
2064
2065                        //TS & NG - Ajout de la notion de propriétaire pour les documents numériques
2066                        $rqt = "create table if not exists explnum_lenders(
2067                                explnum_lender_num_explnum int not null default 0,
2068                                explnum_lender_num_lender int not null default 0,
2069                                primary key (explnum_lender_num_explnum, explnum_lender_num_lender)) ";
2070                        echo traite_rqt($rqt,"create table explnum_lenders");
2071
2072                        // VT - Ajout d'un paramètre permettant de d'activer/désactiver l'affinage des recherches à l'OPAC
2073                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='search_allow_refinement' "))==0){
2074                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2075                                VALUES ( 'opac', 'search_allow_refinement', '1', 'Afficher le lien \"Affiner la recherche\" en résultat de recherche','c_recherche', 0)";
2076                                echo traite_rqt($rqt,"insert opac_search_allow_refinement into parametres");
2077                        }
2078
2079                        //DG - Modification du commentaire opac_etagere_notices_format
2080                        $rqt = "update parametres set comment_param='Format d\'affichage des notices dans les étagères de l\'écran d\'accueil \n 1 : ISBD seul \n 2 : Public seul \n 4 : ISBD et Public \n 8 : Réduit (titre+auteurs) seul\n 9 : Templates django (Spécifier le nom du répertoire dans le paramètre notices_format_django_directory)' where type_param='opac' and sstype_param='etagere_notices_format'" ;
2081                        echo traite_rqt($rqt,"UPDATE parametres SET comment_param for opac_etagere_notices_format") ;
2082
2083                        //DG - Modification du commentaire opac_bannette_notices_format
2084                        $rqt = "update parametres set comment_param='Format d\'affichage des notices dans les bannettes \n 1 : ISBD seul \n 2 : Public seul \n 4 : ISBD et Public \n 8 : Réduit (titre+auteurs) seul\n 9 : Templates django (Spécifier le nom du répertoire dans le paramètre notices_format_django_directory)' where type_param='opac' and sstype_param='bannette_notices_format'" ;
2085                        echo traite_rqt($rqt,"UPDATE parametres SET comment_param for opac_bannette_notices_format") ;
2086
2087                        // NG - Création de la table mémorisant les groupes de lecteurs abonnés à une bannette
2088                        // empr_groupe_num_bannette : Identifiant de bannette
2089                        // empr_groupe_num_groupe : Identifiant de groupe de lecteur
2090                        $rqt = "create table if not exists bannette_empr_groupes(
2091                                empr_groupe_num_bannette int unsigned not null default 0,
2092                                empr_groupe_num_groupe int unsigned not null default 0,
2093                                PRIMARY KEY (empr_groupe_num_bannette, empr_groupe_num_groupe) )";
2094                        echo traite_rqt($rqt,"create table bannette_empr_groupes");
2095
2096                        // NG - Création de la table mémorisant les catégories de lecteurs abonnés à une bannette
2097                        // empr_categ_num_bannette : Identifiant de bannette
2098                        // empr_categ_num_categ : Identifiant de categorie de lecteur
2099                        $rqt = "create table if not exists bannette_empr_categs(
2100                                empr_categ_num_bannette int unsigned not null default 0,
2101                                empr_categ_num_categ int unsigned not null default 0,
2102                                PRIMARY KEY (empr_categ_num_bannette, empr_categ_num_categ) )";
2103                        echo traite_rqt($rqt,"create table bannette_empr_categs");
2104
2105                        $rqt = "insert into bannette_empr_groupes (empr_groupe_num_bannette, empr_groupe_num_groupe)
2106                                        select id_bannette, groupe_lecteurs from bannettes where groupe_lecteurs > 0";
2107                        echo traite_rqt($rqt,"insert into bannette_empr_groupes");
2108
2109                        $rqt = "insert into bannette_empr_categs (empr_categ_num_bannette, empr_categ_num_categ)
2110                                        select id_bannette, categorie_lecteurs from bannettes where categorie_lecteurs > 0";
2111                        echo traite_rqt($rqt,"insert into bannette_empr_categs");
2112
2113                        //Alexandre - Suppression du code pour les articles de périodiques
2114                        $rqt = "UPDATE notices SET code='',update_date=update_date WHERE niveau_biblio='a'";
2115                        echo traite_rqt($rqt,"UPDATE notices SET code for niveau_biblio=a");
2116
2117                        // TS & NG - Définition de la couleur d'une emprise de localisation
2118                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='map_holds_location_color' "))==0){
2119                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2120                                VALUES ( 'pmb', 'map_holds_location_color', '#D60F0F', 'Couleur des emprises associées à des localisations','map', 0)";
2121                                echo traite_rqt($rqt,"insert pmb_map_holds_location_color into parametres");
2122                        }
2123
2124                        // TS & NG - Ajout paramètre de la taille de la carte en édition de localisation
2125                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='map_size_location_edition' "))==0){
2126                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2127                                VALUES ( 'pmb', 'map_size_location_edition', '800*480', 'Taille de la carte en édition de localisation en pixels, L*H, exemple : 800*480','map', 0)";
2128                                echo traite_rqt($rqt,"insert pmb_map_size_location_edition into parametres");
2129                        }
2130
2131                        // TS & NG - Ajout paramètre de la taille de la carte en visualisation des localisations
2132                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='map_size_location_view' "))==0){
2133                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2134                                VALUES ( 'pmb', 'map_size_location_view', '800*480', 'Taille de la carte en visualisation des localisations en pixels, L*H, exemple : 800*480','map', 0)";
2135                                echo traite_rqt($rqt,"insert pmb_map_size_location_view into parametres");
2136                        }
2137
2138                        // TS & NG - Définition de la couleur d'une emprise de localisation
2139                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='map_holds_location_color' "))==0){
2140                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2141                                VALUES ( 'opac', 'map_holds_location_color', '#D60F0F', 'Couleur des emprises associées à des localisations en RVB, exemple : #D60F0F','map', 0)";
2142                                echo traite_rqt($rqt,"insert opac_map_holds_location_color into parametres");
2143                        }
2144
2145                        // TS & NG - Ajout paramètre de la taille de la carte en visualisation des localisations
2146                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='map_size_location_view' "))==0){
2147                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2148                                VALUES ( 'opac', 'map_size_location_view', '800*480', 'Taille de la carte en visualisation des localisationsen pixels, L*H, exemple : 800*480','map', 0)";
2149                                echo traite_rqt($rqt,"insert opac_map_size_location_view into parametres");
2150                        }
2151
2152                        //JP - Templates de bannette pour dsi privées
2153                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'dsi' and sstype_param='private_bannette_tpl' "))==0){
2154                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2155                                VALUES ( 'dsi', 'private_bannette_tpl', '0', 'Identifiant du template de bannette à appliquer sur les bannettes privées \nSi vide ou à 0, l\'entête et pied de page par défaut seront utilisés.','', 0)";
2156                                echo traite_rqt($rqt,"insert dsi_private_bannette_tpl into parametres");
2157                        }
2158
2159                        //VT - Ajout d'un paramètre qui active l'envoi de mail au premier réservataire d'une notice en cas de prolongation du prêt
2160                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pdflettreresa' and sstype_param='resa_prolong_email' "))==0){
2161                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2162                                VALUES (0, 'pdflettreresa', 'resa_prolong_email', '0', 'Envoi d\'un mail au réservataire de rang 1, dont réservation validée, lorsque le prêt en cours est prolongé \n Non : 0 \n Oui : id_template ','',0)";
2163                                echo traite_rqt($rqt,"insert pmb_resa_prolong_email=0 into parametres");
2164                        }
2165
2166                        // VT - Ajout d'un paramètre permettant de masquer les +/- dans les listes de résultats à l'opac
2167                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='recherche_show_expand' "))==0){
2168                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2169                                VALUES ( 'opac', 'recherche_show_expand', '1', 'Affichage des boutons de dépliage de toutes les notices dans les listes de résultats à l\'OPAC \n0: Boutons non affichés \n1: Boutons affichés','c_recherche', 0)";
2170                                echo traite_rqt($rqt,"insert opac_recherche_show_expand into parametres");
2171                        }
2172
2173                        //DG - Paramètre Portail : Activer l'onglet Toolkits
2174                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'cms' and sstype_param='active_toolkits' "))==0){
2175                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2176                                        VALUES (0, 'cms', 'active_toolkits', '0', 'Activer la possibilité de gérer des toolkits.\n 0: non \n 1:Oui','',0)";
2177                                echo traite_rqt($rqt,"insert cms_active_toolkits into parametres");
2178                        }
2179
2180                        // DG - Création de la table pour les toolkits d'aide à la construction d'un portail
2181                        // cms_toolkit_name : Nom du toolkit
2182                        // cms_toolkit_active : Activé Oui/Non
2183                        // cms_toolkit_data : Données
2184                        // cms_toolkit_order : Ordre
2185                        $rqt = "create table if not exists cms_toolkits(
2186                                cms_toolkit_name varchar(255) not null default '' primary key,
2187                                cms_toolkit_active int(1) NOT NULL DEFAULT 0,
2188                                cms_toolkit_data text not null,
2189                                cms_toolkit_order int(3) unsigned not null default 0)";
2190                        echo traite_rqt($rqt,"create table cms_toolkits");
2191
2192                        //DG - Ajout de l'ordre sur les recherches prédéfinies Gestion
2193                        $rqt = "ALTER TABLE search_perso ADD search_order int(11) NOT NULL default 0";
2194                        echo traite_rqt($rqt,"ALTER TABLE search_perso ADD search_order") ;
2195
2196                        //JP - Champs persos sur les documents numériques
2197                        $rqt = "create table if not exists explnum_custom (
2198                                idchamp int(10) unsigned NOT NULL auto_increment,
2199                                num_type int unsigned not null default 0,
2200                                name varchar(255) NOT NULL default '',
2201                                titre varchar(255) default NULL,
2202                                type varchar(10) NOT NULL default 'text',
2203                                datatype varchar(10) NOT NULL default '',
2204                                options text,
2205                                multiple int(11) NOT NULL default 0,
2206                                obligatoire int(11) NOT NULL default 0,
2207                                ordre int(11) default NULL,
2208                                search INT(1) unsigned NOT NULL DEFAULT 0,
2209                                export INT(1) unsigned NOT NULL DEFAULT 0,
2210                                exclusion_obligatoire INT(1) unsigned NOT NULL DEFAULT 0,
2211                                pond int not null default 100,
2212                                opac_sort INT NOT NULL DEFAULT 0,
2213                                comment BLOB NOT NULL default '',
2214                                PRIMARY KEY  (idchamp)) ";
2215                        echo traite_rqt($rqt,"create table explnum_custom ");
2216
2217                        $rqt = "create table if not exists explnum_custom_lists (
2218                                explnum_custom_champ int(10) unsigned NOT NULL default 0,
2219                                explnum_custom_list_value varchar(255) default NULL,
2220                                explnum_custom_list_lib varchar(255) default NULL,
2221                                ordre int(11) default NULL,
2222                                KEY explnum_custom_champ (explnum_custom_champ),
2223                                KEY explnum_champ_list_value (explnum_custom_champ,explnum_custom_list_value)) " ;
2224                        echo traite_rqt($rqt,"create table explnum_custom_lists ");
2225
2226                        $rqt = "create table if not exists explnum_custom_values (
2227                                explnum_custom_champ int(10) unsigned NOT NULL default 0,
2228                                explnum_custom_origine int(10) unsigned NOT NULL default 0,
2229                                explnum_custom_small_text varchar(255) default NULL,
2230                                explnum_custom_text text,
2231                                explnum_custom_integer int(11) default NULL,
2232                                explnum_custom_date date default NULL,
2233                                explnum_custom_float float default NULL,
2234                                explnum_custom_order int(11) NOT NULL default 0,
2235                                KEY explnum_custom_champ (explnum_custom_champ),
2236                                KEY i_encv_st (explnum_custom_small_text),
2237                                KEY i_encv_t (explnum_custom_text(255)),
2238                                KEY i_encv_i (explnum_custom_integer),
2239                                KEY i_encv_d (explnum_custom_date),
2240                                KEY i_encv_f (explnum_custom_float),
2241                                KEY explnum_custom_origine (explnum_custom_origine)) " ;
2242                        echo traite_rqt($rqt,"create table explnum_custom_values ");
2243
2244                        //JP - paramètre utilisateur : paniers du catalogue dépliés ou non par défaut
2245                        $rqt = "ALTER TABLE users ADD deflt_catalog_expanded_caddies INT( 1 ) UNSIGNED NOT NULL DEFAULT 1";
2246                        echo traite_rqt($rqt,"ALTER TABLE users ADD deflt_catalog_expanded_caddies");
2247                       
2248                        //JP - Ajout du champ de notice Droit d'usage
2249                        $rqt = "CREATE TABLE if not exists notice_usage (id_usage INT( 8 ) UNSIGNED NOT NULL AUTO_INCREMENT , usage_libelle VARCHAR( 255 ) NOT NULL default '', PRIMARY KEY ( id_usage ) , INDEX ( usage_libelle ) ) " ;
2250                        echo traite_rqt($rqt,"CREATE TABLE notice_usage ");
2251                        $rqt = "ALTER TABLE notices ADD num_notice_usage INT( 8 ) UNSIGNED DEFAULT 0 NOT NULL ";
2252                        echo traite_rqt($rqt,"ALTER TABLE notices ADD num_notice_usage ");
2253
2254                        // +-------------------------------------------------+
2255                        echo "</table>";
2256                        $rqt = "update parametres set valeur_param='".$action."' where type_param='pmb' and sstype_param='bdd_version' " ;             
2257                        $res = pmb_mysql_query($rqt, $dbh) ;
2258
2259                        echo "<strong><font color='#FF0000'>".$msg[1807]." ".number_format($action, 2, ',', '.')."%</font></strong><br />";
2260                        $action=$action+$increment;
2261                        //echo form_relance ("v5.22");
2262
2263
2264       
2265        //case "v5.22":
2266                        echo "<table ><tr><th>".$msg['admin_misc_action']."</th><th>".$msg['admin_misc_resultat']."</th></tr>";
2267                        // +-------------------------------------------------+
2268                                       
2269                        // DG - Veilles : Option pour filtrer les nouveaux items avec une expression booléènne au niveau de la source
2270                        $rqt = "ALTER TABLE docwatch_datasources ADD datasource_boolean_expression varchar(255) not null default '' after datasource_clean_html" ;
2271                        echo traite_rqt($rqt,"ALTER TABLE docwatch_datasources ADD datasource_boolean_expression ");
2272                               
2273                        // DG - Veilles : Option pour filtrer les nouveaux items avec une expression booléènne au niveau de la veille
2274                        $rqt = "ALTER TABLE docwatch_watches ADD watch_boolean_expression varchar(255) not null default ''" ;
2275                        echo traite_rqt($rqt,"ALTER TABLE docwatch_watches ADD watch_boolean_expression ");
2276                               
2277                        // DG - Items de veilles : Index sans les mots vides
2278                        $rqt = "ALTER TABLE docwatch_items ADD item_index_sew mediumtext not null default ''" ;
2279                        echo traite_rqt($rqt,"ALTER TABLE docwatch_items ADD item_index_sew ");
2280                               
2281                        // DG - Items de veilles : Index avec les mots vides
2282                        $rqt = "ALTER TABLE docwatch_items ADD item_index_wew mediumtext not null default ''" ;
2283                        echo traite_rqt($rqt,"ALTER TABLE docwatch_items ADD item_index_wew ");
2284                               
2285                        // DG - Création d'une table pour stocker le source des sites surveillés
2286                        // datasource_monitoring_website_num_datasource : Identifiant de la source
2287                        // datasource_monitoring_website_upload_date : Date du téléchargement
2288                        // datasource_monitoring_website_content : Contenu
2289                        // datasource_monitoring_website_content_hash : Hash du contenu
2290                        $rqt = "create table if not exists docwatch_datasource_monitoring_website(
2291                                datasource_monitoring_website_num_datasource int(10) unsigned not null default 0 primary key,
2292                                datasource_monitoring_website_upload_date datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
2293                                datasource_monitoring_website_content mediumtext not null,
2294                                datasource_monitoring_website_content_hash varchar(255) not null default '')";
2295                        echo traite_rqt($rqt,"create table docwatch_datasource_monitoring_website");
2296                               
2297                        // TS & AP - Création d'une table de liaison entre SESSID et token (pour les SSO)
2298                        // sessions_tokens_SESSID : SESSID
2299                        // sessions_tokens_token : Token
2300                        // sessions_tokens_type : Information sur l'utilisation du token
2301                        $rqt = "create table if not exists sessions_tokens(
2302                                sessions_tokens_SESSID varchar(12) not null default '',
2303                                sessions_tokens_token varchar(255) NOT NULL default '',
2304                                sessions_tokens_type varchar(255) NOT NULL default '',
2305                                primary key (sessions_tokens_SESSID, sessions_tokens_type),
2306                                index i_st_sessions_tokens_type(sessions_tokens_type),
2307                                index i_st_sessions_tokens_token(sessions_tokens_token))";
2308                                        echo traite_rqt($rqt,"create table sessions_tokens");
2309                                                               
2310                        // NG - Création de la table des facettes de notices externes
2311                        $rqt = "CREATE TABLE if not exists facettes_external (
2312                                id_facette int unsigned auto_increment,
2313                                facette_name varchar(255) not null default '',
2314                                facette_critere int(5) not null default 0,
2315                                facette_ss_critere int(5) not null default 0,
2316                                facette_nb_result int(2) not null default 0,
2317                                facette_visible_gestion tinyint(1) not null default 0,
2318                                facette_visible tinyint(1) not null default 0,
2319                                facette_type_sort int(1) not null default 0,
2320                                facette_order_sort int(1) not null default 0,
2321                                facette_order int not null default 1,
2322                                facette_limit_plus int not null default 0,
2323                                facette_opac_views_num text NOT NULL,
2324                                primary key (id_facette))";
2325                        echo traite_rqt($rqt,"CREATE TABLE facettes_external");
2326               
2327                        // NG - Ajout de la visibilité des facettes en Gestion
2328                        $rqt = "ALTER TABLE facettes add facette_visible_gestion tinyint(1) not null default 0 AFTER facette_nb_result";
2329                        echo traite_rqt($rqt,"ALTER TABLE facettes add facette_visible_gestion ");
2330
2331                        //AP & TS - Ajout de la notion de fermeture des statuts de demandes de numérisation
2332                        $rqt = "ALTER TABLE scan_request_status ADD scan_request_status_is_closed int(1) NOT NULL default 0";
2333                        echo traite_rqt($rqt,"ALTER TABLE scan_request_status ADD scan_request_status_is_closed");
2334
2335                        // NG - Suppression de la table tu_oeuvres_others_links
2336                        $rqt ="drop table if exists tu_oeuvres_others_links";
2337                        echo traite_rqt($rqt,"drop table tu_oeuvres_others_links");
2338
2339                        // NG - Suppression de la table tu_oeuvres_expressions
2340                        $rqt ="drop table if exists tu_oeuvres_expressions";
2341                        echo traite_rqt($rqt,"drop table tu_oeuvres_expressions");
2342
2343                        // NG - Ajoute index scan_request_status_workflow
2344                        $rqt ="alter table scan_request_status_workflow add primary key (scan_request_status_workflow_from_num, scan_request_status_workflow_to_num)";
2345                        echo traite_rqt($rqt,"alter table scan_request_status_workflow add primary key");
2346
2347                        // NG - Ajoute index tu_oeuvres_links
2348                        $rqt ="alter table tu_oeuvres_links add primary key (oeuvre_link_from, oeuvre_link_to, oeuvre_link_type, oeuvre_link_expression, oeuvre_link_other_link)";
2349                        echo traite_rqt($rqt,"alter table tu_oeuvres_links add primary key");
2350
2351                        //DG - Parametre du template d'affichage des notices pour le comparateur.
2352                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='compare_notice_active' "))==0){
2353                                $rqt = "INSERT INTO parametres (type_param,sstype_param,valeur_param,comment_param,section_param,gestion) VALUES ('pmb','compare_notice_active',1,'Activer le comparateur de notices','',0)";
2354                                echo traite_rqt($rqt,"insert pmb_compare_notice_active into parametres");
2355                        }
2356
2357                        // NG - Ajout d'un paramètre mémorisant le décompte préféré à un type de demande
2358                        if (pmb_mysql_num_rows(pmb_mysql_query("SELECT 1 FROM parametres WHERE type_param= 'acquisition' and sstype_param='request_type_pref_account' "))==0){
2359                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, gestion, comment_param)
2360                                        VALUES (0, 'acquisition', 'request_type_pref_account', '', '1', 'Mémorise le décompte préféré à un type de demande') ";
2361                                echo traite_rqt($rqt,"INSERT acquisition_request_type_pref_account INTO parametres") ;
2362                        }
2363                                                                                       
2364                        //Alexandre - Préremplissage du prix des exemplaires avec le prix indiqué en notice
2365                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='prefill_prix' "))==0){
2366                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2367                                        VALUES (0, 'pmb', 'prefill_prix', '0', 'Préremplissage du prix des exemplaires avec le prix indiqué en notice ? \n 0 : Non \n 1 : Oui', '',0) ";
2368                                echo traite_rqt($rqt, "insert pmb_prefill_prix=0 into parametres");
2369                        }
2370
2371                        // NG - Modification des commentaires des paramètres de géolocalisation
2372                        $rqt = "UPDATE parametres SET comment_param = 'Activation de la géolocalisation:\n 0 : Non \n 1 : Pour toutes les cartes \n 2 : Seulement pour les cartes de notices \n 3 : Seulement pour les cartes de localisation des exemplaires'
2373                                        WHERE type_param= 'opac' and sstype_param='map_activate' ";
2374                        echo traite_rqt($rqt,"UPDATE comment_param of opac_map_activate");
2375                               
2376                        $rqt = "UPDATE parametres SET comment_param = 'Taille de la carte en visualisation de notice. En pixels ou en pourcentage. Exemple : 100%*480px'
2377                                        WHERE type_param= 'opac' and sstype_param='map_size_notice_view' ";
2378                        echo traite_rqt($rqt,"UPDATE comment_param of opac_map_size_notice_view");
2379                               
2380                        $rqt = "UPDATE parametres SET comment_param = 'Taille de la carte en saisie de recherche. En pixels ou en pourcentage. Exemple : 100%*480px'
2381                                        WHERE type_param= 'opac' and sstype_param='map_size_search_edition' ";
2382                        echo traite_rqt($rqt,"UPDATE comment_param of opac_map_size_search_edition");
2383                               
2384                        $rqt = "UPDATE parametres SET comment_param = 'Taille de la carte en résultat de recherche. En pixels ou en pourcentage. Exemple : 100%*480px'
2385                                        WHERE type_param= 'opac' and sstype_param='map_size_search_result' ";
2386                        echo traite_rqt($rqt,"UPDATE comment_param of opac_map_size_search_result");
2387                               
2388                        $rqt = "UPDATE parametres SET comment_param = 'Taille de la carte en édition de notice. En pixels ou en pourcentage. Exemple : 100%*480px'
2389                                        WHERE type_param= 'pmb' and sstype_param='map_size_notice_edition' ";
2390                        echo traite_rqt($rqt,"UPDATE comment_param of pmb_map_size_notice_edition");
2391                               
2392                        $rqt = "UPDATE parametres SET comment_param = 'Taille de la carte en visualisation de notice. En pixels ou en pourcentage. Exemple : 100%*480px'
2393                                        WHERE type_param= 'pmb' and sstype_param='map_size_notice_view' ";
2394                        echo traite_rqt($rqt,"UPDATE comment_param of pmb_map_size_notice_view");
2395                               
2396                        $rqt = "UPDATE parametres SET comment_param = 'Taille de la carte en saisie de recherche. En pixels ou en pourcentage. Exemple : 100%*480px'
2397                                        WHERE type_param= 'pmb' and sstype_param='map_size_search_edition' ";
2398                        echo traite_rqt($rqt,"UPDATE comment_param of pmb_map_size_search_edition");
2399                               
2400                        $rqt = "UPDATE parametres SET comment_param = 'Taille de la carte en résultat de recherche. En pixels ou en pourcentage. Exemple : 100%*480px'
2401                                        WHERE type_param= 'pmb' and sstype_param='map_size_search_result' ";
2402                        echo traite_rqt($rqt,"UPDATE comment_param of pmb_map_size_search_result");
2403                               
2404                        // TS & NG - Définition de la couleur d'une emprise de sur-localisation
2405                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='map_holds_sur_location_color' "))==0){
2406                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2407                                        VALUES ( 'opac', 'map_holds_sur_location_color', '#D60F0F', 'Couleur des emprises associées à des sur-localisations','map', 0)";
2408                                echo traite_rqt($rqt,"insert opac_map_holds_sur_location_color into parametres");
2409                        }
2410                               
2411                        // TS & NG - Ajout paramètre de la taille de la carte des localisations dans les facettes
2412                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='map_size_location_facette' "))==0){
2413                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2414                                        VALUES ( 'opac', 'map_size_location_facette', '100%*200px', 'Taille de la carte des localisations dans les facettes. En pixels ou en pourcentage. Exemple : 100%*200px','map', 0)";
2415                                echo traite_rqt($rqt,"insert opac_map_size_location_facette into parametres");
2416                        }
2417                               
2418                        // TS & NG - Ajout paramètre de la taille de la carte des localisations dans la page d'accueil de l'Opac
2419                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='map_size_location_home_page' "))==0){
2420                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2421                                        VALUES ( 'opac', 'map_size_location_home_page', '100%*200px', 'Taille de la carte des localisations dans la page d\'accueil de l\'Opac. En pixels ou en pourcentage. Exemple : 100%*480px','map', 0)";
2422                                echo traite_rqt($rqt,"insert opac_map_size_location_home_page");
2423                        }
2424
2425                        // NG - Paramètre d'activation de la localisation d'une demande de numérisation
2426                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='scan_request_location_activate' "))==0){
2427                                $rqt = "INSERT INTO parametres (type_param,sstype_param,valeur_param,comment_param,section_param,gestion) VALUES ('pmb','scan_request_location_activate',0,'Activer la localisation d\'une demande de numérisation','',0)";
2428                                echo traite_rqt($rqt,"insert pmb_scan_request_location_activate into parametres");
2429                        }
2430
2431                        // NG - Ajout de la localisation d'une demande de numérisation
2432                        $rqt = "ALTER TABLE scan_requests ADD scan_request_num_location INT UNSIGNED NOT NULL DEFAULT 0";
2433                        echo traite_rqt($rqt,"ALTER TABLE scan_requests ADD scan_request_num_location");
2434                               
2435                        // JP - Pouvoir cacher les documents numériques dans les options d'impression des paniers à l'opac
2436                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='print_explnum' "))==0){
2437                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2438                                        VALUES (0, 'opac', 'print_explnum', '1', 'Activer la possibilité d\'imprimer les documents numériques.\n 0: non \n 1: oui','h_cart',0)";
2439                                echo traite_rqt($rqt,"insert opac_print_explnum into parametres");
2440                        }
2441
2442                        // AR - Permettre de masquer les premières pages affichées par défaut dans les listes d'autorités (Onglet autorités et popup de sélection)
2443                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='allow_authorities_first_page' "))==0){
2444                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2445                                                VALUES (0, 'pmb', 'allow_authorities_first_page', '1', 'Active ou non l\'affichage par défaut la première page d\'une liste d\'autorité lorsque l\'on arrive en sélection dans un popup.\n 0: non \n 1:Oui','',0)";
2446                                echo traite_rqt($rqt,"insert pmb_allow_authorities_first_page into parametres");
2447                        }
2448                               
2449                        // NG - Autoriser le prêt d'un exemplaire déjà prêté
2450                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='pret_already_borrowed' "))==0){
2451                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2452                                                VALUES (0, 'pmb', 'pret_already_borrowed', '0', 'Autoriser le prêt d\'un exemplaire déjà prêté.\n 0: non \n 1:Oui','',0)";
2453                                echo traite_rqt($rqt,"insert pmb_pret_already_borrowed into parametres");
2454                        }
2455                               
2456                        // NG - Ajout préférences utilisateur en créattion d'une fiche lecteur
2457                        $rqt = "ALTER TABLE users ADD deflt_empr_categ INT UNSIGNED DEFAULT 1 NOT NULL AFTER deflt_empr_statut ";
2458                        echo traite_rqt($rqt, "add deflt_empr_categ in table users");
2459                        $rqt = "ALTER TABLE users ADD deflt_empr_codestat INT UNSIGNED DEFAULT 1 NOT NULL AFTER deflt_empr_categ ";
2460                        echo traite_rqt($rqt, "add deflt_empr_codestat in table users");
2461                                                                                       
2462
2463                        // +-------------------------------------------------+
2464                        echo "</table>";
2465                        $rqt = "update parametres set valeur_param='".$action."' where type_param='pmb' and sstype_param='bdd_version' " ;
2466                        $res = pmb_mysql_query($rqt, $dbh) ;
2467
2468                        echo "<strong><font color='#FF0000'>".$msg[1807]." ".number_format($action, 2, ',', '.')."%</font></strong><br />";
2469                        $action=$action+$increment;
2470                        //echo form_relance ("v5.23");
2471               
2472        //case "v5.23":
2473                        echo "<table ><tr><th>".$msg['admin_misc_action']."</th><th>".$msg['admin_misc_resultat']."</th></tr>";
2474                        // +-------------------------------------------------+
2475                       
2476                        // DG/JP - ajout des paramètres d'export pour les notices liées horizontales
2477                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'exportparam' and sstype_param='export_horizontale' "))==0){
2478                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2479                                        VALUES (NULL, 'exportparam', 'export_horizontale', '0', 'Lien vers les notices liées horizontales', '', '1')";
2480                                echo traite_rqt($rqt,"insert exportparam_export_horizontale='0' into parametres ");
2481                        }
2482                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'exportparam' and sstype_param='export_notice_horizontale_link' "))==0){
2483                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2484                                        VALUES (NULL, 'exportparam', 'export_notice_horizontale_link', '0', 'Exporter les notices liées horizontales', '', '1')";
2485                                echo traite_rqt($rqt,"insert exportparam_export_notice_horizontale_link='0' into parametres ");
2486                        }
2487                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='exp_export_horizontale' "))==0){
2488                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2489                                        VALUES (NULL, 'opac', 'exp_export_horizontale', '0', 'Lien vers les notices liées horizontales', '', '1')";
2490                                echo traite_rqt($rqt,"insert opac_exp_export_horizontale='0' into parametres ");
2491                        }
2492                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='exp_export_notice_horizontale_link' "))==0){
2493                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2494                                        VALUES (NULL, 'opac', 'exp_export_notice_horizontale_link', '0', 'Exporter les notices liées horizontales', '', '1')";
2495                                echo traite_rqt($rqt,"insert opac_exp_export_notice_horizontale_link='0' into parametres ");
2496                        }
2497                        // DG/JP - mise à jour de la table notices_relations
2498                        if (pmb_mysql_num_rows(pmb_mysql_query("show columns from notices_relations like 'id_notices_relations'"))==0) {
2499                                $rqt = " select 1 " ;
2500                                echo traite_rqt($rqt,"<b><a href='".$base_path."/admin.php?categ=netbase' target=_blank>VOUS DEVEZ FAIRE UN NETTOYAGE DE BASE (APRES ETAPES DE MISE A JOUR) / YOU MUST DO A DATABASE CLEANUP (STEPS AFTER UPDATE) : Admin > Outils > Nettoyage de base</a></b> ") ;
2501                        }                       
2502                        // AR - Activer les ontologies génériques et l'onglet sémantique
2503                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'semantic' and sstype_param='active' "))==0){
2504                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2505                                                                VALUES (0, 'semantic', 'active', '0', 'Module \"Sémantique\" activé.\n 0: non \n 1:Oui','',0)";
2506                                echo traite_rqt($rqt,"insert semantic_active into parametres");
2507                        }
2508
2509                        // NG - Activer le focus sur le champ de recherche a l'opac
2510                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='focus_user_query' "))==0){
2511                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2512                                                VALUES (0, 'opac', 'focus_user_query', '1', 'Activer le focus sur le champ de recherche.\n 0: non \n 1:Oui','c_recherche',0)";
2513                                echo traite_rqt($rqt,"insert opac_focus_user_query into parametres");
2514                        }
2515                       
2516                        //NG - Parametre pour afficher dans tous les cas la source et la destination en édition de transfert
2517                        if (pmb_mysql_num_rows(pmb_mysql_query("SELECT 1 FROM parametres WHERE type_param= 'transferts' and sstype_param='edition_show_all_colls' "))==0){
2518                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, gestion, comment_param)
2519                                        VALUES (0, 'transferts', 'edition_show_all_colls', '0', '1', 'Afficher dans tous les cas la source et la destination en édition de transfert') ";
2520                                echo traite_rqt($rqt,"INSERT transferts_edition_show_all_colls INTO parametres") ;
2521                        }
2522                       
2523                        //JP - Ajout d'index sur la table catégories
2524                        $rqt = "alter table categories drop index i_num_thesaurus";
2525                        echo traite_rqt($rqt,"alter table categories drop index i_num_thesaurus");
2526                        $rqt = "alter table categories add index i_num_thesaurus(num_thesaurus)";
2527                        echo traite_rqt($rqt,"alter table categories add index i_num_thesaurus");
2528
2529                        ///JP - Nombre de notices diffusées pour dsi privées
2530                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'dsi' and sstype_param='private_bannette_nb_notices' "))==0){
2531                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2532                                        VALUES ( 'dsi', 'private_bannette_nb_notices', '30', 'Nombre maximum par défaut de notices diffusées dans les bannettes privées.','', 0)";
2533                                echo traite_rqt($rqt,"insert dsi_private_bannette_nb_notices into parametres");
2534                        }
2535                               
2536                        // AP-VT - Paramètre d'activation des graphes côté gestion
2537                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='entity_graph_activate' "))==0){
2538                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2539                                                VALUES (0, 'pmb', 'entity_graph_activate', '1', 'Active ou non le graphe des entités PMB.\n 0: Non \n 1: Oui','',0)";
2540                                echo traite_rqt($rqt,"insert pmb_entity_graph_activate into parametres");
2541                        }
2542                               
2543                        // AP-VT - Définition du niveau de récursion affiché par défaut dans le graphe
2544                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='entity_graph_recursion_lvl' "))==0){
2545                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2546                                                VALUES (0, 'pmb', 'entity_graph_recursion_lvl', '1', 'Valeur numérique définissant le niveau de profondeur du graphe.','',0)";
2547                                echo traite_rqt($rqt,"insert pmb_entity_graph_recursion_lvl into parametres");
2548                        }
2549                               
2550                        // NG - VT - Création du paramètre d'activation des espaces de contribution en gestion
2551                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='contribution_area_activate' "))==0){
2552                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2553                VALUES (NULL, 'pmb', 'contribution_area_activate', '0', 'Espace de contribution actif: \r\n0: Non\r\n1: Oui', '', '0')";
2554                                echo traite_rqt($rqt,"insert pmb_contribution_area_activate=0 into parametres ");
2555                        }
2556                       
2557                        // AP & TS - Création d'un paramètre permettant d'activer l'espace de contribution à l'OPAC
2558                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='contribution_area_activate' "))==0){
2559                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2560                                VALUES ( 'opac', 'contribution_area_activate', '0', 'Espace de contribution actif ? \n0 : Non\n1 : Oui\n','f_modules', 0)";
2561                                echo traite_rqt($rqt,"insert opac_contribution_area_activate=0 into parametres");
2562                        }
2563                               
2564                        // NG - VT Création de la table des espaces de contribution
2565                        // id_area: identifiant de l'espace de contribution
2566                        // area_title: nom de l'espace de contribution
2567                        // area_comment : Commentaire associé à l'espace de contribution
2568                        // area_color : Couleur associée à l'espace de contribution
2569                        // area_order : Ordre associé à l'espace de contribution
2570                        $rqt="create table if not exists contribution_area_areas(
2571                                id_area int unsigned not null auto_increment primary key,
2572                                area_title varchar(255) not null default '',
2573                                area_comment text not null,
2574                                area_color varchar(10) not null default '',
2575                                area_order int(5) not null default 0
2576                        )";
2577                        echo traite_rqt($rqt, "create table contribution_area_areas");
2578               
2579                        // AR - VT Création de la table des formulaires de contribution
2580                        // id_form: Identifiant du formulaire
2581                        // form_title: Nom du formulaire
2582                        // form_type: type d'entité que représente le formulaire (notice, auteur, categ etc...)
2583                        // form_status : statut du formulaire
2584                        // form_parameters: structure JSON contenant le paramétrage spécifique du formulaire (champs affichés, label choisis etc..)
2585                        $rqt="create table if not exists contribution_area_forms(
2586                                id_form int unsigned not null auto_increment primary key,
2587                                form_title varchar(255) not null default '',
2588                                form_type varchar(255) not null default '',
2589                                form_status int(3) unsigned NOT NULL DEFAULT 1,
2590                                form_parameters blob not null
2591                        )";
2592                        echo traite_rqt($rqt, "create table contribution_area_forms");
2593                       
2594                        //AP & TS - paramétrages des droits d'accès sur les espaces de contribution
2595                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'gestion_acces' and sstype_param='empr_contribution' "))==0){
2596                        $rqt = "INSERT INTO parametres (type_param,sstype_param,valeur_param,comment_param,section_param,gestion)
2597                                        VALUES ('gestion_acces','empr_contribution',0,'Gestion des droits d\'accès des emprunteurs aux espaces de contribution\n0 : Non.\n1 : Oui.','',0)";
2598                                echo traite_rqt($rqt,"insert gestion_acces_empr_contribution=0 into parametres");
2599                        }
2600                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'gestion_acces' and sstype_param='empr_contribution_def' "))==0){
2601                                $rqt = "INSERT INTO parametres (type_param,sstype_param,valeur_param,comment_param,section_param,gestion)
2602                                        VALUES ('gestion_acces','empr_contribution_def',0,'Valeur par défaut en modification d\'espaces de contribution pour les droits d\'accès emprunteurs - espaces de contribution \n0 : Recalculer.\n1 : Choisir.','',0)";
2603                                echo traite_rqt($rqt,"insert gestion_acces_empr_contribution_def=0 into parametres");
2604                        }
2605               
2606                        //AP & TS - Création de la table des status des espaces de contribution
2607                        //contribution_area_status_id : identifiant du statut
2608                        //contribution_area_status_gestion_libelle : libellé du statut en gestion
2609                        //contribution_area_status_opac_libelle : libellé du statut en OPAC
2610                        //contribution_area_status_class_html : classe HTML du statut
2611                        //contribution_area_status_available_for : Définit les types d'entités PMB pour lesquelles un statut est disponible
2612                        $rqt="create table if not exists contribution_area_status(
2613                        contribution_area_status_id int unsigned not null auto_increment primary key,
2614                                contribution_area_status_gestion_libelle varchar(255) not null default '',
2615                                contribution_area_status_opac_libelle varchar(255) not null default '',
2616                                contribution_area_status_class_html varchar(255) not null default '',
2617                                contribution_area_status_available_for text default null
2618                        )";
2619                        echo traite_rqt($rqt, "create table contribution_area_status");
2620                               
2621                        // AP & TS - Statut par défaut pour la contribution
2622                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from contribution_area_status where contribution_area_status_id ='1' "))==0) {
2623                                $rqt = 'INSERT INTO contribution_area_status (contribution_area_status_id, contribution_area_status_gestion_libelle, contribution_area_status_opac_libelle, contribution_area_status_class_html, contribution_area_status_available_for) VALUES (1,"Statut par défaut", "Statut par défaut", "statutnot1","'.addslashes('a:10:{i:0;s:6:"record";i:1;s:6:"author";i:2;s:8:"category";i:3;s:9:"publisher";i:4;s:10:"collection";i:5;s:14:"sub_collection";i:6;s:5:"serie";i:7;s:4:"work";i:8;s:8:"indexint";i:9;s:7:"concept";}').'")';
2624                                echo traite_rqt($rqt,"insert default contribution_area_status");
2625                        }
2626                               
2627                        //NG & TS - Création de la table des equations de recherches pour les sélecteurs de ressource dans les formulaires de contribution
2628                        //contribution_area_equation_id : identifiant de l'equation
2629                        //contribution_area_equation_name : libellé de l'equation
2630                        //contribution_area_equation_type : type de l'equation
2631                        //contribution_area_equation_query : requete de recherche de l'equation
2632                        //contribution_area_equation_human_query : requete comprehensible
2633                        $rqt="create table if not exists contribution_area_equations(
2634                        contribution_area_equation_id int unsigned not null auto_increment primary key,
2635                                contribution_area_equation_name varchar(255) not null default '',
2636                                contribution_area_equation_type varchar(255) not null default '',
2637                                contribution_area_equation_query text not null,
2638                                contribution_area_equation_human_query text not null
2639                        )";
2640                        echo traite_rqt($rqt, "create table contribution_area_equations");
2641               
2642                        // AP - Activer les statistiques de fréquentation
2643                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param='empr' and sstype_param='visits_statistics_active' "))==0){
2644                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2645                                                VALUES (0, 'empr', 'visits_statistics_active', '0', 'Activer les statistiques de fréquentation.\n 0 : Non \n 1 : Oui','',0)";
2646                                echo traite_rqt($rqt,"insert empr_visits_statistics_active=0 into parametres");
2647                        }
2648               
2649                        // AP - Création d'une table pour stocker les statistiques de fréquentation
2650                        // visits_statistics_date : Date
2651                        // visits_statistics_location : Localisation
2652                        // visits_statistics_type : Type de service
2653                        // visits_statistics_value : Valeur
2654                        $rqt = "CREATE TABLE if not exists visits_statistics (
2655                        visits_statistics_date DATE NOT NULL default '0000-00-00',
2656                        visits_statistics_location SMALLINT(5) UNSIGNED NOT NULL default 0,
2657                                        visits_statistics_type VARCHAR(255) NOT NULL default '',
2658                                        visits_statistics_value INT UNSIGNED NOT NULL default 0,
2659                                        primary key (visits_statistics_date, visits_statistics_location, visits_statistics_type)
2660                        )";
2661                        echo traite_rqt($rqt,"CREATE TABLE visits_statistics ") ;
2662                       
2663                        // AP - Ajout d'une colonne de signature dans la table de documents numériques
2664                                                // Attention, chez certain client, cette opération peut prendre beaucoup de temps et mener à un timeout
2665                        if (pmb_mysql_num_rows(pmb_mysql_query("show columns from explnum like 'explnum_signature'")) == 0){
2666                        $info_message = "<font color=\"#FF0000\">ATTENTION</font> si vous avez beaucoup de documents numériques, la prochaine opération peut prendre du temps et nécessiter une nouvelle mise à jour de base !";
2667                                echo "<tr><td><font size='1'>".($charset == "utf-8" ? utf8_encode($info_message) : $info_message)."</font></td><td></td></tr>";
2668                        flush();
2669                                ob_flush();
2670                       
2671                                $rqt = "ALTER TABLE explnum ADD explnum_signature varchar(255) not null default ''";
2672                                echo traite_rqt($rqt,"alter table explnum add explnum_signature");
2673                        }
2674                       
2675                        // TS - VT // Ajout d'un parametre caché contenant le nom d'utilisateur du webservice associé à la contribution OPAC
2676                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='contribution_ws_username' "))==0){
2677                                                $rqt = "INSERT INTO parametres (type_param,sstype_param,valeur_param,comment_param,section_param,gestion)
2678                                        VALUES ('pmb','contribution_ws_username','','Paramètre caché contenant le nom d\'utilisateur du ws','',1)";
2679                                echo traite_rqt($rqt,"insert pmb_contribution_ws_username='' into parametres");
2680                        }
2681               
2682                        // TS - VT // Ajout d'un parametre caché contenant le mot de passe de l'utilisateur du ws associé à la contribution OPAC
2683                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='contribution_ws_password' "))==0){
2684                                                $rqt = "INSERT INTO parametres (type_param,sstype_param,valeur_param,comment_param,section_param,gestion)
2685                                        VALUES ('pmb','contribution_ws_password','','Paramètre caché contenant le mot de passe de l\'utilisateur du ws','',1)";
2686                                echo traite_rqt($rqt,"insert pmb_contribution_ws_password='' into parametres");
2687                        }
2688               
2689                        // TS - VT // Ajout d'un parametre caché contenant l'url du webservice associé à la contribution OPAC
2690                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='contribution_ws_url' "))==0){
2691                                                $rqt = "INSERT INTO parametres (type_param,sstype_param,valeur_param,comment_param,section_param,gestion)
2692                                        VALUES ('pmb','contribution_ws_url','','Paramètre caché contenant l\'url du ws','',1)";
2693                                echo traite_rqt($rqt,"insert pmb_contribution_ws_url='' into parametres");
2694                        }
2695               
2696                        // AP - Paramètre de contrôle des doublons de documents numériques
2697                                                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='explnum_controle_doublons' "))==0){
2698                                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2699                                VALUES (0, 'pmb', 'explnum_controle_doublons', '0', 'Contrôle sur les doublons de documents numérique.\n 0 : Aucun dédoublonnage\n 1 : Dédoublonnage sur le contenu des documents numériques','',0)";
2700                                echo traite_rqt($rqt,"insert pmb_explnum_controle_doublons=0 into parametres");
2701                        }
2702               
2703                        // VT & DG - Paramètre de transfert de panier anonyme
2704                                                // 0 : Non
2705                                                // 1 : Sur demande
2706                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='integrate_anonymous_cart' "))==0){
2707                                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2708                                VALUES (0, 'opac', 'integrate_anonymous_cart', '1', 'Proposer le transfert des éléments du panier lors de l\'authentification.\n 0 : Non\n 1 : Sur demande','h_cart',0)";
2709                                echo traite_rqt($rqt,"insert opac_integrate_anonymous_cart=1 into parametres");
2710                        }
2711               
2712                        // DG - VT Activer l'autocompletion lecteur sur l'impression de recherche à l'opac
2713                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param='opac' and sstype_param='print_email_autocomplete' "))==0){
2714                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2715                                VALUES (0, 'opac', 'print_email_autocomplete', '0', 'Autoriser la complétion de l\'adresse mail sur le formulaire d\'impression de recherche\n 0 : Non \n 1 : Seulement pour les lecteurs connectés \n 2 : Pour tous les lecteurs', 'a_general', '0')";
2716                                echo traite_rqt($rqt,"insert opac_print_email_autocomplete='0' into parametres ");
2717                        }
2718                               
2719                        ///JP - Affichage simplifié du panier OPAC
2720                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='simplified_cart' "))==0){
2721                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2722                                        VALUES ( 'opac', 'simplified_cart', '0', 'Affichage simplifié du panier.\n 0 : non \n 1 : oui','h_cart', 0)";
2723                                echo traite_rqt($rqt,"insert opac_simplified_cart=0 into parametres");
2724                        }
2725                       
2726                        //JP - Prix de l'exemplaire dans le paramétrage de l'abonnement
2727                        $rqt = "ALTER TABLE abts_abts ADD prix varchar(255) NOT NULL DEFAULT ''";
2728                        echo traite_rqt($rqt,"ALTER TABLE abts_abts ADD prix");
2729                       
2730                        //JP - Envoi d'email dans les demandes de numérisation (paramètre invisible)
2731                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='scan_request_send_mail_status' "))==0){
2732                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2733                                VALUES (0, 'opac', 'scan_request_send_mail_status', '', 'Envoi d\'email au destinataire sur passage de la demande à ces statuts','a_general',1)";
2734                                echo traite_rqt($rqt,"insert opac_scan_request_send_mail_status='' into parametres");
2735                        }                       
2736                       
2737                        //JP - Bloquer les prêts dès qu'un lecteur est en retard
2738                        $rqt = "update parametres set comment_param='Délai à partir duquel le retard est pris en compte pour le blocage\n 0 : dès qu\'un prêt est en retard\n N : au bout de N jours de retard' where type_param= 'pmb' and sstype_param='blocage_delai' ";
2739                        echo traite_rqt($rqt,"update blocage_delai into parametres");
2740                        $rqt = "update parametres set comment_param='Nombre maximum de jours bloqués\n 0 : pas de limite\n N : maxi N\n -1 : blocage levé dès qu\'il n\'y a plus de retard' where type_param= 'pmb' and sstype_param='blocage_max' ";
2741                        echo traite_rqt($rqt,"update blocage_max into parametres");
2742                       
2743                        //JP - Ajout d'index sur la table es_searchcache
2744                        $rqt = "alter table es_searchcache drop index i_es_searchcache_date";
2745                        echo traite_rqt($rqt,"alter table es_searchcache drop index i_es_searchcache_date");
2746                        $rqt = "alter table es_searchcache add index i_es_searchcache_date(es_searchcache_date)";
2747                        echo traite_rqt($rqt,"alter table es_searchcache add index i_es_searchcache_date");
2748                               
2749                        //JP - Lien vers la documentation des fonctions de parse HTML dans les paramètres
2750                        $rqt = "update parametres set comment_param=CONCAT(comment_param,'\n<a href=\'".$base_path."/includes/interpreter/doc?group=inhtml\' target=\'_blank\'>Consulter la liste des fonctions disponibles</a>') where type_param= 'opac' and sstype_param='parse_html' ";
2751                        echo traite_rqt($rqt,"update parse_html into parametres");
2752                       
2753                        //MB - Ajout d'index sur la table es_cache_blob
2754                        $req="SHOW INDEX FROM es_cache_blob WHERE key_name LIKE 'i_es_cache_expirationdate'";
2755                        $res=pmb_mysql_query($req);
2756                        if($res && (pmb_mysql_num_rows($res) == 0)){
2757                                $rqt = "alter table es_cache_blob add index i_es_cache_expirationdate(es_cache_expirationdate)";
2758                                echo traite_rqt($rqt,"alter table es_cache_blob add index i_es_cache_expirationdate");
2759                        }
2760                       
2761                        //JP - filtres de relances personnalisables
2762                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'empr' and sstype_param='filter_relance_rows' "))==0){
2763                                $rqt = "INSERT INTO parametres (type_param, sstype_param, valeur_param,comment_param, section_param, gestion) VALUES ('empr','filter_relance_rows', 'g,cs', 'Critères de filtrage ajoutés aux critères existants pour les relances à faire, saisir les critères séparés par des virgules.\nLes critères disponibles correspondent à l\'attribut value du fichier substituable empr_list.xml', '','0')";
2764                                echo traite_rqt($rqt,"insert empr_filter_relance_rows into parametres");
2765                        }
2766                               
2767                        //TS & DG - Liste des pages FRBR
2768                        // id_page : Identifiant de la page
2769                        // page_name : Libellé de la page
2770                        // page_comment : Description de la page
2771                        // page_entity : Quelle page d'entité ?
2772                        // page_parameters : Paramètres
2773                        // page_opac_views : Vues OPAC
2774                        $rqt="create table if not exists frbr_pages (
2775                    id_page int unsigned not null auto_increment primary key,
2776                    page_name varchar(255) not null default '',
2777                                page_comment text not null,
2778                    page_entity varchar(255) not null default '',
2779                                page_parameters text not null,
2780                            page_opac_views varchar(255) not null default ''
2781                        )";
2782                        echo traite_rqt($rqt,"create table frbr_pages");
2783                               
2784                        //TS & DG - Liste des données FRBR
2785                        // id_datanode : Identifiant du noeud
2786                        // datanode_name : Libellé
2787                        // datanode_comment : Description
2788                        // datanode_object : Classe PHP
2789                        // datanode_num_page : Page associée
2790                        // datanode_num_parent : Noeud de données parent
2791                        $rqt="create table if not exists frbr_datanodes (
2792                    id_datanode int unsigned not null auto_increment primary key,
2793                    datanode_name varchar(255) not null default '',
2794                                datanode_comment text not null,
2795                                datanode_object varchar(255) not null default '',
2796                                datanode_num_page int unsigned not null default 0,
2797                                datanode_num_parent int unsigned not null default 0
2798                )";
2799                        echo traite_rqt($rqt,"create table frbr_datanodes");
2800                               
2801                        //TS & DG - Liste des données FRBR
2802                        // id_datanode_content : Identifiant d'un élément du noeud
2803                        // datanode_content_type : Type (datasource, filter, etc..)
2804                        // datanode_content_object : Classe PHP
2805                        // datanode_content_num_datanode : Identifiant du noeud associé
2806                        // datanode_content_data : Données
2807                        $rqt="create table if not exists frbr_datanodes_content (
2808                    id_datanode_content int unsigned not null auto_increment primary key,
2809                    datanode_content_type varchar(255) not null default '',
2810                                datanode_content_object varchar(255) not null default '',
2811                                datanode_content_num_datanode int unsigned not null default 0,
2812                                datanode_content_data text not null
2813                )";
2814                        echo traite_rqt($rqt,"create table frbr_datanodes_content");
2815               
2816                        //TS & DG - Liste des cadres FRBR
2817                        // id_cadre : Identifiant du cadre
2818                        // cadre_name : Libellé
2819                        // cadre_comment : Description
2820                        // cadre_object : Classe PHP
2821                        // cadre_css_class : Classe CSS
2822                        // cadre_num_datanode : Noeud de données associé
2823                        $rqt="create table if not exists frbr_cadres (
2824                    id_cadre int unsigned not null auto_increment primary key,
2825                    cadre_name varchar(255) not null default '',
2826                                cadre_comment text not null,
2827                                cadre_object varchar(255) not null default '',
2828                                cadre_css_class VARCHAR(255) NOT NULL DEFAULT '',
2829                                cadre_num_datanode int unsigned not null default 0
2830                )";
2831                        echo traite_rqt($rqt,"create table frbr_cadres");
2832                                                       
2833                        //TS & DG - Liste des éléments de cadres FRBR
2834                        // id_cadre_content : Identifiant d'un élément du cadre
2835                        // cadre_content_type : Type (view, filter, etc..)
2836                        // cadre_content_object : Classe PHP
2837                        // cadre_content_num_cadre : Identifiant du cadre associé
2838                        // cadre_content_data : Données
2839                        $rqt="create table if not exists frbr_cadres_content (
2840                        id_cadre_content int unsigned not null auto_increment primary key,
2841                    cadre_content_type varchar(255) not null default '',
2842                                cadre_content_object varchar(255) not null default '',
2843                                cadre_content_num_cadre int unsigned not null default 0,
2844                                cadre_content_data text not null default ''
2845                )";
2846                        echo traite_rqt($rqt,"create table frbr_cadres_content");
2847                       
2848                        //DG - Gestion des entités pour le FRBR
2849                        $rqt="create table if not exists frbr_managed_entities (
2850                        managed_entity_name varchar(255) not null default '',
2851                        managed_entity_box text not null,
2852                        primary key (managed_entity_name))";
2853                        echo traite_rqt($rqt, "create table if not exists frbr_managed_entities");
2854                       
2855                        //DG - Vignettes sur les autorités
2856                        $rqt = "ALTER TABLE authorities ADD thumbnail_url MEDIUMBLOB NOT NULL" ;
2857                        echo traite_rqt($rqt,"ALTER TABLE authorities ADD thumbnail_url ");
2858                               
2859                        //DG - Répertoire d'upload pour les vignettes sur les autorités
2860                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='authority_img_folder_id' "))==0){
2861                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion) ";
2862                                $rqt.= "VALUES (NULL, 'pmb', 'authority_img_folder_id', '0', 'Identifiant du répertoire d\'upload des vignettes d\'autorités', '', '0')" ;
2863                                echo traite_rqt($rqt,"insert pmb_authority_img_folder_id into parametres") ;
2864                        }
2865                                                       
2866                        //DG - Définition de la taille maximum des vignettes sur les autorités
2867                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='authority_img_pics_max_size' "))==0){
2868                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param) VALUES (0, 'pmb', 'authority_img_pics_max_size', '150', 'Taille maximale des vignettes uploadées dans les autorités, en largeur ou en hauteur')";
2869                                echo traite_rqt($rqt,"insert pmb_authority_img_pics_max_size='150' into parametres");
2870                        }
2871                       
2872                        //NG - Update fonction d'auteur 'danseur' du code 274 en 275, suite au changement de function.xml
2873                        $rqt = "UPDATE responsability set responsability_fonction='275' where responsability_fonction='274' ";
2874                        echo traite_rqt($rqt,"UPDATE responsability set responsability_fonction ");
2875                        $rqt = "UPDATE responsability_tu set responsability_tu_fonction='275' where responsability_tu_fonction='274' ";
2876                        echo traite_rqt($rqt,"UPDATE responsability_tu set responsability_tu_fonction ");
2877                                                       
2878                        //NG - Ajout du champ commentaire de gestion dans les étagères
2879                        $rqt = "ALTER TABLE etagere ADD comment_gestion TEXT NOT NULL " ;
2880                        echo traite_rqt($rqt,"ALTER TABLE etagere ADD comment_gestion ");
2881
2882                        //DG - Ordre sur les pages FRBR
2883                        $rqt = "alter table frbr_pages add page_order int not null default 1";
2884                        echo traite_rqt($rqt,"alter table frbr_pages add page_order");
2885                                                                       
2886                        //TS & DG - Liste des données FRBR
2887                        // id_page_content : Identifiant d'un élément du noeud
2888                        // page_content_type : Type (backbone, etc..)
2889                        // page_content_object : Classe PHP
2890                        // page_content_num_page : Identifiant du noeud associé
2891                        // page_content_data : Données
2892                        $rqt="create table if not exists frbr_pages_content (
2893                                id_page_content int unsigned not null auto_increment primary key,
2894                    page_content_type varchar(255) not null default '',
2895                                page_content_object varchar(255) not null default '',
2896                                page_content_num_page int unsigned not null default 0,
2897                                page_content_data text not null
2898                )";
2899                        echo traite_rqt($rqt,"create table frbr_pages_content");
2900               
2901                        //TS & DG - Placement des cadres FRBR
2902                        // place_num_page : Identifiant de la page associée
2903                        // place_num_cadre : Identifiant du cadre associé
2904                        // place_cadre_type : Type de cadre (natif, dynamique)
2905                        // place_visibility : Visibilité du cadre
2906                        // place_order : Ordre
2907                        $rqt="create table if not exists frbr_place (
2908                                place_num_page int unsigned not null default 0,
2909                                place_num_cadre int unsigned not null default 0,
2910                                place_cadre_type varchar(255) not null default '',
2911                    place_visibility int(1) not null default 0,
2912                                place_order int(10) UNSIGNED NOT NULL default 0,
2913                                PRIMARY KEY(place_num_page,place_num_cadre, place_cadre_type)
2914                )";
2915                        echo traite_rqt($rqt,"create table frbr_place");
2916                       
2917                        //TS - Numéro de page sur les cadres (nécessaire pour les  cadres liés uniquement à la page)
2918                        $rqt = "ALTER TABLE frbr_cadres ADD cadre_num_page int(10) UNSIGNED NOT NULL default 0 " ;
2919                        echo traite_rqt($rqt,"ALTER TABLE frbr_cadres ADD cadre_num_page");
2920               
2921                        //DG - Paniers d'autorités
2922                        $rqt = "CREATE TABLE IF NOT EXISTS authorities_caddie (
2923                              idcaddie int(8) unsigned NOT NULL AUTO_INCREMENT,
2924                                  name varchar(255) NOT NULL DEFAULT '',
2925                                  type varchar(20) NOT NULL DEFAULT '',
2926                                  comment varchar(255) NOT NULL DEFAULT '',
2927                                  autorisations mediumtext,
2928                                  caddie_classement varchar(255) NOT NULL DEFAULT '',
2929                                  acces_rapide int(11) NOT NULL DEFAULT '0',
2930                                  creation_user_name varchar(255) NOT NULL DEFAULT '',
2931                                  creation_date datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
2932                                  PRIMARY KEY (idcaddie),
2933                                  KEY caddie_type (type)) ";
2934                        echo traite_rqt($rqt,"create table authorities_caddie");
2935               
2936                        //DG - Contenu des paniers d'autorités
2937                        $rqt = "CREATE TABLE IF NOT EXISTS authorities_caddie_content (
2938                                caddie_id int(8) unsigned NOT NULL DEFAULT '0',
2939                                object_id int(10) unsigned NOT NULL DEFAULT '0',
2940                                flag varchar(10) DEFAULT NULL,
2941                                PRIMARY KEY (caddie_id,object_id),
2942                                KEY object_id (object_id)) ";
2943                        echo traite_rqt($rqt,"create table authorities_caddie_content");
2944               
2945                        //DG - Procédures des paniers d'autorités
2946                        $rqt = "CREATE TABLE IF NOT EXISTS authorities_caddie_procs (
2947                                idproc smallint(5) unsigned NOT NULL AUTO_INCREMENT,
2948                                type varchar(20) NOT NULL DEFAULT 'SELECT',
2949                                name varchar(255) NOT NULL DEFAULT '',
2950                                requete blob NOT NULL,
2951                                comment tinytext NOT NULL,
2952                                autorisations mediumtext,
2953                                parameters text,
2954                                PRIMARY KEY (idproc)) ";
2955                        echo traite_rqt($rqt,"create table authorities_caddie_procs");
2956               
2957               
2958                        //NG - Regrouper les fonctions d'auteur en affichage de notice
2959                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='notice_author_functions_grouping' "))==0){
2960                                $rqt = "INSERT INTO parametres (type_param,sstype_param,valeur_param,comment_param,section_param,gestion)
2961                                                        VALUES ('pmb','notice_author_functions_grouping',1,'Regrouper les fonctions d\'auteur en affichage de notice ? \n0 : Non.\n1 : Oui.','',0)";
2962                                echo traite_rqt($rqt,"insert pmb_notice_author_functions_grouping=1 into parametres");
2963                        }
2964               
2965                        //AP - Champs persos sur les concepts
2966                        $rqt = "create table if not exists skos_custom (
2967                                idchamp int(10) unsigned NOT NULL auto_increment,
2968                                name varchar(255) NOT NULL default '',
2969                                titre varchar(255) default NULL,
2970                                type varchar(10) NOT NULL default 'text',
2971                                datatype varchar(10) NOT NULL default '',
2972                                options text,
2973                                multiple int(11) NOT NULL default 0,
2974                                obligatoire int(11) NOT NULL default 0,
2975                                ordre int(11) default NULL,
2976                                search INT(1) unsigned NOT NULL DEFAULT 0,
2977                                export INT(1) unsigned NOT NULL DEFAULT 0,
2978                                exclusion_obligatoire INT(1) unsigned NOT NULL DEFAULT 0,
2979                                pond int not null default 100,
2980                                opac_sort INT NOT NULL DEFAULT 0,
2981                                comment BLOB NOT NULL default '',
2982                                PRIMARY KEY  (idchamp)) ";
2983                        echo traite_rqt($rqt,"create table skos_custom ");
2984                       
2985                        $rqt = "create table if not exists skos_custom_lists (
2986                                skos_custom_champ int(10) unsigned NOT NULL default 0,
2987                                skos_custom_list_value varchar(255) default NULL,
2988                                skos_custom_list_lib varchar(255) default NULL,
2989                                ordre int(11) default NULL,
2990                                KEY skos_custom_champ (skos_custom_champ),
2991                                KEY skos_champ_list_value (skos_custom_champ,skos_custom_list_value)) " ;
2992                        echo traite_rqt($rqt,"create table skos_custom_lists ");
2993                       
2994                        $rqt = "create table if not exists skos_custom_values (
2995                                skos_custom_champ int(10) unsigned NOT NULL default 0,
2996                                skos_custom_origine int(10) unsigned NOT NULL default 0,
2997                                skos_custom_small_text varchar(255) default NULL,
2998                                skos_custom_text text,
2999                                skos_custom_integer int(11) default NULL,
3000                                skos_custom_date date default NULL,
3001                                skos_custom_float float default NULL,
3002                                skos_custom_order int(11) NOT NULL default 0,
3003                                KEY skos_custom_champ (skos_custom_champ),
3004                                KEY i_encv_st (skos_custom_small_text),
3005                                KEY i_encv_t (skos_custom_text(255)),
3006                                KEY i_encv_i (skos_custom_integer),
3007                                KEY i_encv_d (skos_custom_date),
3008                                KEY i_encv_f (skos_custom_float),
3009                                KEY skos_custom_origine (skos_custom_origine)) " ;
3010                        echo traite_rqt($rqt,"create table skos_custom_values ");
3011                       
3012                        //JP - cacher les amendes et frais de relance dans les lettres et mails de retard
3013                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'mailretard' and sstype_param='hide_fine' "))==0){
3014                                $rqt = "INSERT INTO parametres VALUES (0,'mailretard','hide_fine','0','Masquer les amendes et frais de relance dans les lettres et mails de retard :\n 0 : Non\n 1 : Oui','',0)" ;
3015                                echo traite_rqt($rqt,"insert mailretard_hide_fine into parametres") ;
3016                        }
3017                               
3018                        //JP - paramètre pour forcer l'envoi de relance de niveau 2 par lettre si priorite_email = 1
3019                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'mailretard' and sstype_param='priorite_email_2' "))==0){
3020                                $rqt = "INSERT INTO parametres VALUES (0,'mailretard','priorite_email_2','0','Forcer le deuxième niveau de relance par lettre si priorite_email = 1 :\n 0 : Non\n 1 : Oui','',0)" ;
3021                                echo traite_rqt($rqt,"insert mailretard_priorite_email_2 into parametres") ;
3022                        }
3023                               
3024                        //JP - Calculer le retard, l'amende et le blocage sur le calendrier d'ouverture de la localisation de l'utilisateur ou de l'exemplaire
3025                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='utiliser_calendrier_location' "))==0){
3026                                $rqt = "INSERT INTO parametres VALUES (0,'pmb','utiliser_calendrier_location','0','Si le paramètre utiliser_calendrier est à 1, choix de la localisation pour calculer le retard, l\'amende et le blocage :\n 0 : calcul sur le calendrier d\'ouverture de la localisation de l\'utilisateur\n 1 : calcul sur le calendrier d\'ouverture de la localisation de l\'exemplaire','',0)" ;
3027                                echo traite_rqt($rqt,"insert pmb_utiliser_calendrier_location into parametres") ;
3028                        }
3029
3030                        // NG - Ajout d'un parametre caché indiquant l'affichage ou non des sous-formulaires de contribution
3031                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='contribution_opac_show_sub_form' "))==0){
3032                                $rqt = "INSERT INTO parametres (type_param,sstype_param,valeur_param,comment_param,section_param,gestion)
3033                                        VALUES ('pmb','contribution_opac_show_sub_form','','Paramètre caché indiquant l\'affichage ou non des sous-formulaires de contribution','',1)";
3034                                echo traite_rqt($rqt,"insert pmb_contribution_opac_show_sub_form='' into parametres");
3035                        }
3036                       
3037                        // TS - cadre visible ou non dans le graphe
3038                        $rqt = "ALTER TABLE frbr_cadres ADD cadre_visible_in_graph tinyint(1) UNSIGNED NOT NULL default 0" ;
3039                        echo traite_rqt($rqt,"ALTER TABLE frbr_cadres ADD cadre_visible_in_graph");
3040                               
3041                        // TS - Chemin des jeux de données parent du cadre
3042                        $rqt = "ALTER TABLE frbr_cadres ADD cadre_datanodes_path varchar(255) default NULL " ;
3043                        echo traite_rqt($rqt,"ALTER TABLE frbr_cadres ADD cadre_datanodes_path");
3044                               
3045                        // VT - Ajout de l'identifiant de la methode de stockage sur les ontologies (partie semantique)
3046                        $rqt = "ALTER TABLE ontologies ADD ontology_storage_id INT NOT NULL default 0";
3047                        echo traite_rqt($rqt,"alter table ontologies add ontology_storage_id");
3048                               
3049                        // AP / VT - Création d'une table permettant de stocker les informations liées aux fichiers uploadés pour les ontologies
3050                        $rqt = "CREATE TABLE IF NOT EXISTS onto_files (
3051                                                id_onto_file int(10) unsigned NOT NULL auto_increment primary key,
3052                                                onto_file_title varchar(255) NOT NULL DEFAULT '' ,
3053                                                onto_file_description text NOT NULL,
3054                                                onto_file_filename varchar(255) NOT NULL DEFAULT '',
3055                                                onto_file_mimetype varchar(100) NOT NULL DEFAULT '',
3056                                                onto_file_filesize int(11) NOT NULL DEFAULT '0',
3057                                                onto_file_vignette mediumblob NOT NULL,
3058                                                onto_file_url text NOT NULL,
3059                                                onto_file_path varchar(255)NOT NULL DEFAULT '',
3060                                                onto_file_create_date date NOT NULL DEFAULT '0000-00-00',
3061                                                onto_file_num_storage int(11) NOT NULL DEFAULT '0',
3062                                                onto_file_type_object varchar(255) NOT NULL DEFAULT '',
3063                                                onto_file_num_object int(11) NOT NULL DEFAULT '0',
3064                                                INDEX i_of_onto_file_title (onto_file_title)
3065                                        )";
3066                        echo traite_rqt($rqt,"create table onto_files");
3067                               
3068                        // TS - ajout d'un index sur le code champ et code sous champ de la table authorities_fields_global_index
3069                        $req="SHOW INDEX FROM authorities_fields_global_index WHERE key_name LIKE 'i_code_champ_code_ss_champ'";
3070                        $res=pmb_mysql_query($req);
3071                        if($res && (pmb_mysql_num_rows($res) == 0)){
3072                                $rqt = "ALTER TABLE authorities_fields_global_index ADD INDEX i_code_champ_code_ss_champ(code_champ,code_ss_champ)";
3073                                echo traite_rqt($rqt,"ALTER TABLE authorities_fields_global_index ADD INDEX i_code_champ_code_ss_champ");
3074                        }
3075                               
3076                        // TS - ajout d'un index sur le num_concept et type_object de la table index_concept
3077                        $req="SHOW INDEX FROM index_concept WHERE key_name LIKE 'i_num_concept_type_object'";
3078                        $res=pmb_mysql_query($req);
3079                        if($res && (pmb_mysql_num_rows($res) == 0)){
3080                                $rqt = "ALTER TABLE index_concept ADD INDEX i_num_concept_type_object(num_concept,type_object)";
3081                                echo traite_rqt($rqt,"ALTER TABLE index_concept ADD INDEX i_num_concept_type_object");
3082                        }
3083                               
3084                        // TS - ajout d'un index sur le type_object et num_object de la table index_concept
3085                        $req="SHOW INDEX FROM index_concept WHERE key_name LIKE 'i_type_object_num_object'";
3086                        $res=pmb_mysql_query($req);
3087                        if($res && (pmb_mysql_num_rows($res) == 0)){
3088                                $rqt = "ALTER TABLE index_concept ADD INDEX i_type_object_num_object(type_object,num_object)";
3089                                echo traite_rqt($rqt,"ALTER TABLE index_concept ADD INDEX i_type_object_num_object");
3090                        }
3091                               
3092                        // MB - Nouvelle table pour les paramètres de PMB à ne pas surtout pas mettre dans le cache_apc ni en global (paramètres modifiés fréquemment pour le fonctionnement de PMB)
3093                        $rqt = "CREATE TABLE IF NOT EXISTS parametres_uncached (
3094                                         id_param int(6) unsigned NOT NULL AUTO_INCREMENT,
3095                                         type_param varchar(20) DEFAULT NULL,
3096                                         sstype_param varchar(255) DEFAULT NULL,
3097                                         valeur_param text,
3098                                         comment_param longtext,
3099                                         section_param varchar(255) NOT NULL DEFAULT '',
3100                                         gestion int(1) NOT NULL DEFAULT '0',
3101                                         PRIMARY KEY (id_param),
3102                                         UNIQUE KEY typ_sstyp (type_param,sstype_param)
3103                                        )";
3104                        echo traite_rqt($rqt,"create table parametres_uncached");
3105                               
3106                        // MB - Paramètre de verrou pour la gestion des stats
3107                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres_uncached where type_param= 'internal' and sstype_param='emptylogstatopac' "))==0){
3108                                $rqt = "INSERT INTO parametres_uncached (type_param, sstype_param, valeur_param, comment_param,gestion)
3109                                        VALUES ('internal', 'emptylogstatopac', '0', 'Paramètre interne, ne pas modifier\r\n =1 si vidage des logs en cours', 0)";
3110                                echo traite_rqt($rqt,"insert internal_emptylogstatopac=0 into parametres_uncached");
3111                        }
3112                               
3113                        // MB - Suppression de l'ancien paramètre déplacé dans la nouvelle table
3114                        if(isset($internal_emptylogstatopac)){
3115                                $rqt = "delete from parametres where type_param= 'internal' and sstype_param='emptylogstatopac' " ;
3116                                echo traite_rqt($rqt,"delete old parameter 'emptylogstatopac' from parametres");
3117                        }
3118                        // +-------------------------------------------------+
3119                        echo "</table>";
3120                        $rqt = "update parametres set valeur_param='".$action."' where type_param='pmb' and sstype_param='bdd_version' " ;
3121                        $res = pmb_mysql_query($rqt, $dbh) ;
3122
3123                        echo "<strong><font color='#FF0000'>".$msg[1807]." ".number_format($action, 2, ',', '.')."%</font></strong><br />";
3124                        $action=$action+$increment;
3125                        //echo form_relance ("v5.24");
3126                       
3127        //case "v5.24":
3128                        echo "<table ><tr><th>".$msg['admin_misc_action']."</th><th>".$msg['admin_misc_resultat']."</th></tr>";
3129                        // +-------------------------------------------------+
3130                        // MB - Paramètre pour définir le répertoire à utiliser pour le cache des images en gestion
3131                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='img_cache_folder' "))==0){
3132                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param)
3133                                        VALUES (NULL, 'pmb', 'img_cache_folder', '', 'Répertoire de stockage du cache des images')";
3134                                echo traite_rqt($rqt,"insert pmb_img_cache_folder='' into parametres ");
3135                        }
3136                               
3137                        // MB - Paramètre pour définir l'URL du répertoire pour le cache des images en gestion et avoir des URLs en dur
3138                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='img_cache_url' "))==0){
3139                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param)
3140                                        VALUES (NULL, 'pmb', 'img_cache_url', '', 'URL d\'accès du répertoire du cache des images (img_cache_folder)')";
3141                                echo traite_rqt($rqt,"insert pmb_img_cache_url='' into parametres ");
3142                        }
3143                               
3144                        // MB - Paramètre pour définir le répertoire à utiliser pour le cache des images en opac
3145                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='img_cache_folder' "))==0){
3146                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param)
3147                                        VALUES (NULL, 'opac', 'img_cache_folder', '', 'Répertoire de stockage du cache des images','a_general')";
3148                                echo traite_rqt($rqt,"insert opac_img_cache_folder='' into parametres ");
3149                        }
3150                        // MB - Paramètre pour définir l'URL du répertoire pour le cache des images en opac et avoir des URLs en dur
3151                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='img_cache_url' "))==0){
3152                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param)
3153                                        VALUES (NULL, 'opac', 'img_cache_url', '', 'URL d\'accès du répertoire du cache des images (img_cache_folder)','a_general')";
3154                                echo traite_rqt($rqt,"insert opac_img_cache_url='' into parametres ");
3155                        }
3156                       
3157                        // DG - Index sur le champ oeuvre_link_from de la table tu_oeuvres_links
3158                        $req="SHOW INDEX FROM tu_oeuvres_links WHERE key_name LIKE 'i_oeuvre_link_from'";
3159                        $res=pmb_mysql_query($req);
3160                        if($res && (pmb_mysql_num_rows($res) == 0)){
3161                                $rqt = "ALTER TABLE tu_oeuvres_links ADD INDEX i_oeuvre_link_from(oeuvre_link_from)";
3162                                echo traite_rqt($rqt,"ALTER TABLE tu_oeuvres_links ADD INDEX i_oeuvre_link_from");
3163                        }
3164                               
3165                        // DG - Index sur le champ oeuvre_link_to de la table tu_oeuvres_links
3166                        $req="SHOW INDEX FROM tu_oeuvres_links WHERE key_name LIKE 'i_oeuvre_link_to'";
3167                        $res=pmb_mysql_query($req);
3168                        if($res && (pmb_mysql_num_rows($res) == 0)){
3169                                $rqt = "ALTER TABLE tu_oeuvres_links ADD INDEX i_oeuvre_link_to(oeuvre_link_to)";
3170                                echo traite_rqt($rqt,"ALTER TABLE tu_oeuvres_links ADD INDEX i_oeuvre_link_to");
3171                        }
3172                       
3173                        // DG - Index sur le champ oeuvre_link_to de la table nomenclature_notices_nomenclatures
3174                        $req="SHOW INDEX FROM nomenclature_notices_nomenclatures WHERE key_name LIKE 'i_notice_nomenclature_num_notice'";
3175                        $res=pmb_mysql_query($req);
3176                        if($res && (pmb_mysql_num_rows($res) == 0)){
3177                                $rqt = "ALTER TABLE nomenclature_notices_nomenclatures ADD INDEX i_notice_nomenclature_num_notice(notice_nomenclature_num_notice)";
3178                                echo traite_rqt($rqt,"ALTER TABLE nomenclature_notices_nomenclatures ADD INDEX i_notice_nomenclature_num_notice");
3179                        }
3180                               
3181                        // DG - Index sur le champ map_echelle_num de la table notices
3182                        $req="SHOW INDEX FROM notices WHERE key_name LIKE 'i_map_echelle_num'";
3183                        $res=pmb_mysql_query($req);
3184                        if($res && (pmb_mysql_num_rows($res) == 0)){
3185                                $rqt = "ALTER TABLE notices ADD INDEX i_map_echelle_num(map_echelle_num)";
3186                                echo traite_rqt($rqt,"ALTER TABLE notices ADD INDEX i_map_echelle_num");
3187                        }
3188                               
3189                        // DG - Index sur le champ map_projection_num de la table notices
3190                        $req="SHOW INDEX FROM notices WHERE key_name LIKE 'i_map_projection_num'";
3191                        $res=pmb_mysql_query($req);
3192                        if($res && (pmb_mysql_num_rows($res) == 0)){
3193                                $rqt = "ALTER TABLE notices ADD INDEX i_map_projection_num(map_projection_num)";
3194                                echo traite_rqt($rqt,"ALTER TABLE notices ADD INDEX i_map_projection_num");
3195                        }
3196                               
3197                        // DG - Index sur le champ authperso_authority_authperso_num de la table authperso_authorities
3198                        $req="SHOW INDEX FROM authperso_authorities WHERE key_name LIKE 'i_authperso_authority_authperso_num'";
3199                        $res=pmb_mysql_query($req);
3200                        if($res && (pmb_mysql_num_rows($res) == 0)){
3201                                $rqt = "ALTER TABLE authperso_authorities ADD INDEX i_authperso_authority_authperso_num(authperso_authority_authperso_num)";
3202                                echo traite_rqt($rqt,"ALTER TABLE authperso_authorities ADD INDEX i_authperso_authority_authperso_num");
3203                        }
3204                               
3205                        // +-------------------------------------------------+
3206                        echo "</table>";
3207                        $rqt = "update parametres set valeur_param='".$action."' where type_param='pmb' and sstype_param='bdd_version' " ;
3208                        $res = pmb_mysql_query($rqt, $dbh) ;
3209                        echo "<strong><font color='#FF0000'>".$msg[1807]." ".number_format($action, 2, ',', '.')."%</font></strong><br />";
3210                        $action=$action+$increment;
3211                        //echo form_relance ("v5.25");
3212       
3213        //case "v5.25":
3214                        echo "<table ><tr><th>".$msg['admin_misc_action']."</th><th>".$msg['admin_misc_resultat']."</th></tr>";
3215                        // +-------------------------------------------------+
3216                        // NG - Ajout index sur num_word de la table notices_mots_global_index
3217                        $req="SHOW INDEX FROM notices_mots_global_index WHERE key_name LIKE 'i_num_word'";
3218                        $res=pmb_mysql_query($req);
3219                        if($res && !pmb_mysql_num_rows($res)){
3220                                $rqt = "alter table notices_mots_global_index add index i_num_word (num_word)";
3221                                echo traite_rqt($rqt,"alter table notices_mots_global_index add index i_num_word");
3222                        }
3223                               
3224                        // +-------------------------------------------------+
3225                        echo "</table>";
3226                        $rqt = "update parametres set valeur_param='".$action."' where type_param='pmb' and sstype_param='bdd_version' " ;
3227                        $res = pmb_mysql_query($rqt, $dbh) ;
3228                        echo "<strong><font color='#FF0000'>".$msg[1807]." ".number_format($action, 2, ',', '.')."%</font></strong><br />";
3229                        $action=$action+$increment;
3230                        //echo form_relance ("v5.26");
3231        //case "v5.26":
3232                        echo "<table ><tr><th>".$msg['admin_misc_action']."</th><th>".$msg['admin_misc_resultat']."</th></tr>";
3233                        // +-------------------------------------------------+
3234                        // NG - Ajout index sur num_word de la table cms_editorial_words_global_index
3235                        $req="SHOW INDEX FROM cms_editorial_words_global_index WHERE key_name LIKE 'i_num_word'";
3236                        $res=pmb_mysql_query($req);
3237                        if($res && !pmb_mysql_num_rows($res)){
3238                                $rqt = "alter table cms_editorial_words_global_index add index i_num_word (num_word)";
3239                                echo traite_rqt($rqt,"alter table cms_editorial_words_global_index add index i_num_word");
3240                        }
3241                               
3242                        // NG - Ajout index sur num_word de la table authorities_words_global_index
3243                        $req="SHOW INDEX FROM authorities_words_global_index WHERE key_name LIKE 'i_num_word'";
3244                        $res=pmb_mysql_query($req);
3245                        if($res && !pmb_mysql_num_rows($res)){
3246                                $rqt = "alter table authorities_words_global_index add index i_num_word (num_word)";
3247                                echo traite_rqt($rqt,"alter table authorities_words_global_index add index i_num_word");
3248                        }
3249                               
3250                        // NG - Ajout index sur num_word de la table skos_words_global_index
3251                        $req="SHOW INDEX FROM skos_words_global_index WHERE key_name LIKE 'i_num_word'";
3252                        $res=pmb_mysql_query($req);
3253                        if($res && !pmb_mysql_num_rows($res)){
3254                                $rqt = "alter table skos_words_global_index add index i_num_word (num_word)";
3255                                echo traite_rqt($rqt,"alter table skos_words_global_index add index i_num_word");
3256                        }
3257                               
3258                        // NG - Ajout index sur num_word de la table faq_questions_words_global_index
3259                        $req="SHOW INDEX FROM faq_questions_words_global_index WHERE key_name LIKE 'i_num_word'";
3260                        $res=pmb_mysql_query($req);
3261                        if($res && !pmb_mysql_num_rows($res)){
3262                                $rqt = "alter table faq_questions_words_global_index add index i_num_word (num_word)";
3263                                echo traite_rqt($rqt,"alter table faq_questions_words_global_index add index i_num_word");
3264                        }
3265                               
3266                        // NG - Ajout index sur responsability_author de la table responsability
3267                        $req="SHOW INDEX FROM responsability WHERE key_name LIKE 'i_responsability_author'";
3268                        $res=pmb_mysql_query($req);
3269                        if($res && !pmb_mysql_num_rows($res)){
3270                                $rqt = "alter table responsability add index i_responsability_author (responsability_author)";
3271                                echo traite_rqt($rqt,"alter table responsability add index i_responsability_author");
3272                        }
3273                       
3274                        // NG - Ajout index sur shorturl_hash de la table shorturls
3275                        $req="SHOW INDEX FROM shorturls WHERE key_name LIKE 'i_shorturl_hash'";
3276                        $res=pmb_mysql_query($req);
3277                        if($res && !pmb_mysql_num_rows($res)){
3278                                $rqt = "alter table shorturls add index i_shorturl_hash (shorturl_hash)";
3279                                echo traite_rqt($rqt,"alter table shorturls add index i_shorturl_hash");
3280                        }
3281                       
3282                        // NG - Ajout index sur empr_login de la table empr
3283                        $req="SHOW INDEX FROM empr WHERE key_name LIKE 'i_empr_login'";
3284                        $res=pmb_mysql_query($req);
3285                        if($res && !pmb_mysql_num_rows($res)){
3286                                $rqt = "alter table empr add index i_empr_login (empr_login)";
3287                                echo traite_rqt($rqt,"alter table empr add index i_empr_login");
3288                        }
3289                       
3290                        // NG - Ajout index sur ouvert, num_location, date_ouverture de la table ouvertures
3291                        $req="SHOW INDEX FROM ouvertures WHERE key_name LIKE 'i_ouvert_num_location_date_ouverture'";
3292                        $res=pmb_mysql_query($req);
3293                        if($res && !pmb_mysql_num_rows($res)){
3294                                $rqt = "alter table ouvertures add index i_ouvert_num_location_date_ouverture (ouvert, num_location, date_ouverture)";
3295                                echo traite_rqt($rqt,"alter table ouvertures add index i_ouvert_num_location_date_ouverture");
3296                        }
3297                               
3298                        // NG - Ajout index sur etat_transfert, origine de la table transferts
3299                        $req="SHOW INDEX FROM transferts WHERE key_name LIKE 'i_etat_transfert_origine'";
3300                        $res=pmb_mysql_query($req);
3301                        if($res && !pmb_mysql_num_rows($res)){
3302                                $rqt = "alter table transferts add index i_etat_transfert_origine (etat_transfert, origine)";
3303                                echo traite_rqt($rqt,"alter table transferts add index i_etat_transfert_origine");
3304                        }
3305                               
3306                        // NG - Ajout index sur author_type de la table authors
3307                        $req="SHOW INDEX FROM authors WHERE key_name LIKE 'i_author_type'";
3308                        $res=pmb_mysql_query($req);
3309                        if($res && !pmb_mysql_num_rows($res)){
3310                                $rqt = "alter table authors add index i_author_type (author_type)";
3311                                echo traite_rqt($rqt,"alter table authors add index i_author_type");
3312                        }
3313                       
3314                        // NG - Ajout index sur grammar de la table vedette
3315                        $req="SHOW INDEX FROM vedette WHERE key_name LIKE 'i_grammar'";
3316                        $res=pmb_mysql_query($req);
3317                        if($res && !pmb_mysql_num_rows($res)){
3318                                $rqt = "alter table vedette add index i_grammar (grammar)";
3319                                echo traite_rqt($rqt,"alter table vedette add index i_grammar");
3320                        }
3321                               
3322                        // NG - Suppression index doublon dans la table authorities
3323                        $req="SHOW INDEX FROM authorities WHERE key_name LIKE 'i_object'";
3324                        $res=pmb_mysql_query($req);
3325                        if($res && pmb_mysql_num_rows($res)){
3326                                $req="ALTER TABLE authorities DROP INDEX i_object ";
3327                                $res=pmb_mysql_query($req);
3328                                echo traite_rqt($rqt,"alter table authorities drop index i_object");
3329                        }
3330                       
3331                        // AP - Paramètre pour activer sphinx
3332                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'sphinx' and sstype_param='active' "))==0){
3333                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param)
3334                                        VALUES (NULL, 'sphinx', 'active', '0', 'Sphinx activé.\n 0 : Non\n 1 : Oui','')";
3335                                echo traite_rqt($rqt,"insert sphinx_active = 0 into parametres ");
3336                        }
3337                               
3338                        // AP - Paramètre de définition du chemin vers les index sphinx
3339                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'sphinx' and sstype_param='indexes_path' "))==0){
3340                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param)
3341                                        VALUES (NULL, 'sphinx', 'indexes_path', '', 'Chemin vers le répertoire de stockage des index sphinx','')";
3342                                echo traite_rqt($rqt,"insert sphinx_indexes_path = '' into parametres ");
3343                        }
3344                               
3345                        // AP - Paramètre de connexion mysql pour sphinx
3346                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'sphinx' and sstype_param='mysql_connect' "))==0){
3347                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param)
3348                                        VALUES (NULL, 'sphinx', 'mysql_connect', '127.0.0.1:9306,0', 'Paramètre de connexion mysql au serveur sphinx :\n hote:port,auth,user,pass : mettre 0 ou 1 pour l\'authentification.','')";
3349                                echo traite_rqt($rqt,"insert sphinx_indexes_path = '127.0.0.1:9306,0' into parametres ");
3350                        }
3351                               
3352                        // JP - Ajout index sur num_authority / authority_type de la table authorities_sources
3353                        $req="SHOW INDEX FROM authorities_sources WHERE key_name LIKE 'i_num_authority_authority_type'";
3354                        $res=pmb_mysql_query($req);
3355                        if($res && !pmb_mysql_num_rows($res)){
3356                                $rqt = "alter table authorities_sources add index i_num_authority_authority_type (num_authority, authority_type)";
3357                                echo traite_rqt($rqt,"alter table authorities_sources add index i_num_authority_authority_type");
3358                        }
3359                               
3360                        // JP - Ajout index sur cadre_memo_url de la table cms_cadres
3361                        $req="SHOW INDEX FROM cms_cadres WHERE key_name LIKE 'i_cadre_memo_url'";
3362                        $res=pmb_mysql_query($req);
3363                        if($res && !pmb_mysql_num_rows($res)){
3364                                $rqt = "alter table cms_cadres add index i_cadre_memo_url (cadre_memo_url)";
3365                                echo traite_rqt($rqt,"alter table cms_cadres add index i_cadre_memo_url");
3366                        }
3367                               
3368                        // JP - Ajout index sur cadre_object de la table cms_cadres
3369                        $req="SHOW INDEX FROM cms_cadres WHERE key_name LIKE 'i_cadre_object'";
3370                        $res=pmb_mysql_query($req);
3371                        if($res && !pmb_mysql_num_rows($res)){
3372                                $rqt = "alter table cms_cadres add index i_cadre_object (cadre_object)";
3373                                echo traite_rqt($rqt,"alter table cms_cadres add index i_cadre_object");
3374                        }
3375                               
3376                        // JP - Ajout index sur cadre_content_num_cadre de la table cms_cadre_content
3377                        $req="SHOW INDEX FROM cms_cadre_content WHERE key_name LIKE 'i_cadre_content_num_cadre'";
3378                        $res=pmb_mysql_query($req);
3379                        if($res && !pmb_mysql_num_rows($res)){
3380                                $rqt = "alter table cms_cadre_content add index i_cadre_content_num_cadre (cadre_content_num_cadre)";
3381                                echo traite_rqt($rqt,"alter table cms_cadre_content add index i_cadre_content_num_cadre");
3382                        }
3383                               
3384                        // JP - Ajout index sur cadre_content_num_cadre_content / cadre_content_type cms_cadre_content de la table cms_cadre_content
3385                        $req="SHOW INDEX FROM cms_cadre_content WHERE key_name LIKE 'i_cadre_content_num_cadre_content_cadre_content_type'";
3386                        $res=pmb_mysql_query($req);
3387                        if($res && !pmb_mysql_num_rows($res)){
3388                                $rqt = "alter table cms_cadre_content add index i_cadre_content_num_cadre_content_cadre_content_type (cadre_content_num_cadre_content, cadre_content_type)";
3389                                echo traite_rqt($rqt,"alter table cms_cadre_content add index i_cadre_content_num_cadre_content_cadre_content_type");
3390                        }
3391                               
3392                        // JP - Ajout index sur document_num_object / document_type_object de la table cms_documents
3393                        $req="SHOW INDEX FROM cms_documents WHERE key_name LIKE 'i_document_num_object_document_type_object'";
3394                        $res=pmb_mysql_query($req);
3395                        if($res && !pmb_mysql_num_rows($res)){
3396                                $rqt = "alter table cms_documents add index i_document_num_object_document_type_object (document_num_object, document_type_object)";
3397                                echo traite_rqt($rqt,"alter table cms_documents add index i_document_num_object_document_type_object");
3398                        }
3399                               
3400                        // JP - Ajout index sur document_link_num_document de la table cms_documents_links
3401                        $req="SHOW INDEX FROM cms_documents_links WHERE key_name LIKE 'i_document_link_num_document'";
3402                        $res=pmb_mysql_query($req);
3403                        if($res && !pmb_mysql_num_rows($res)){
3404                                $rqt = "alter table cms_documents_links add index i_document_link_num_document (document_link_num_document)";
3405                                echo traite_rqt($rqt,"alter table cms_documents_links add index i_document_link_num_document");
3406                        }
3407                               
3408                        // JP - Ajout index sur groupe / method / available de la table es_methods
3409                        $req="SHOW INDEX FROM es_methods WHERE key_name LIKE 'i_groupe_method_available'";
3410                        $res=pmb_mysql_query($req);
3411                        if($res && !pmb_mysql_num_rows($res)){
3412                                $rqt = "alter table es_methods add index i_groupe_method_available (groupe(50), method(50), available)";
3413                                echo traite_rqt($rqt,"alter table es_methods add index i_groupe_method_available");
3414                        }
3415                               
3416                        // JP - Ajout index sur facette_visible de la table facettes
3417                        $req="SHOW INDEX FROM facettes WHERE key_name LIKE 'i_facette_visible'";
3418                        $res=pmb_mysql_query($req);
3419                        if($res && !pmb_mysql_num_rows($res)){
3420                                $rqt = "alter table facettes add index i_facette_visible (facette_visible)";
3421                                echo traite_rqt($rqt,"alter table facettes add index i_facette_visible");
3422                        }
3423                               
3424                        // JP - Ajout index sur origine de la table import_marc
3425                        $req="SHOW INDEX FROM import_marc WHERE key_name LIKE 'i_origine'";
3426                        $res=pmb_mysql_query($req);
3427                        if($res && !pmb_mysql_num_rows($res)){
3428                                $rqt = "alter table import_marc add index i_origine (origine)";
3429                                echo traite_rqt($rqt,"alter table import_marc add index i_origine");
3430                        }
3431                               
3432                        // +-------------------------------------------------+
3433                        echo "</table>";
3434                        $rqt = "update parametres set valeur_param='".$action."' where type_param='pmb' and sstype_param='bdd_version' " ;
3435                        $res = pmb_mysql_query($rqt, $dbh) ;
3436                        echo "<strong><font color='#FF0000'>".$msg[1807]." ".number_format($action, 2, ',', '.')."%</font></strong><br />";
3437                        $action=$action+$increment;
3438                        //echo form_relance ("v5.27");
3439        //case "v5.27":
3440                        echo "<table ><tr><th>".$msg['admin_misc_action']."</th><th>".$msg['admin_misc_resultat']."</th></tr>";
3441                        // +-------------------------------------------------+
3442                        // JP - Ajout index sur id_notice de la table notices_mots_global_index
3443                        $req="SHOW INDEX FROM notices_mots_global_index WHERE key_name LIKE 'i_id_notice'";
3444                        $res=pmb_mysql_query($req);
3445                        if($res && !pmb_mysql_num_rows($res)){
3446                                $rqt = "alter table notices_mots_global_index add index i_id_notice (id_notice)";
3447                                echo traite_rqt($rqt,"alter table notices_mots_global_index add index i_id_notice");
3448                        }
3449                               
3450                        // +-------------------------------------------------+
3451                        echo "</table>";
3452                        $rqt = "update parametres set valeur_param='".$action."' where type_param='pmb' and sstype_param='bdd_version' " ;
3453                        $res = pmb_mysql_query($rqt, $dbh) ;
3454                        echo "<strong><font color='#FF0000'>".$msg[1807]." ".number_format($action, 2, ',', '.')."%</font></strong><br />";
3455                        $action=$action+$increment;
3456                        //echo form_relance ("v5.27");
3457
3458               
3459        //case "v5.28":
3460                        echo "<table ><tr><th>".$msg['admin_misc_action']."</th><th>".$msg['admin_misc_resultat']."</th></tr>";
3461                        // +-------------------------------------------------+
3462                        // JP - Ajout index sur resa_idempr de la table resa
3463                        $req="SHOW INDEX FROM resa WHERE key_name LIKE 'i_resa_idempr'";
3464                        $res=pmb_mysql_query($req);
3465                        if($res && !pmb_mysql_num_rows($res)){
3466                                $rqt = "alter table resa add index i_resa_idempr (resa_idempr)";
3467                                echo traite_rqt($rqt,"alter table resa add index i_resa_idempr");
3468                        }
3469                               
3470                        // JP - Ajout index sur num_suggestion de la table suggestions_origine
3471                        $req="SHOW INDEX FROM suggestions_origine WHERE key_name LIKE 'i_num_suggestion'";
3472                        $res=pmb_mysql_query($req);
3473                        if($res && !pmb_mysql_num_rows($res)){
3474                                $rqt = "alter table suggestions_origine add index i_num_suggestion (num_suggestion)";
3475                                echo traite_rqt($rqt,"alter table suggestions_origine add index i_num_suggestion");
3476                        }
3477                               
3478                        // JP - Ajout index sur resa_trans de la table transferts_demande
3479                        $req="SHOW INDEX FROM transferts_demande WHERE key_name LIKE 'i_resa_trans'";
3480                        $res=pmb_mysql_query($req);
3481                        if($res && !pmb_mysql_num_rows($res)){
3482                                $rqt = "alter table transferts_demande add index i_resa_trans (resa_trans)";
3483                                echo traite_rqt($rqt,"alter table transferts_demande add index i_resa_trans");
3484                        }
3485                               
3486                        // JP - Ajout index sur realisee de la table transactions
3487                        $req="SHOW INDEX FROM transactions WHERE key_name LIKE 'i_realisee'";
3488                        $res=pmb_mysql_query($req);
3489                        if($res && !pmb_mysql_num_rows($res)){
3490                                $rqt = "alter table transactions add index i_realisee (realisee)";
3491                                echo traite_rqt($rqt,"alter table transactions add index i_realisee");
3492                        }
3493                               
3494                        // JP - Ajout index sur compte_id de la table transactions
3495                        $req="SHOW INDEX FROM transactions WHERE key_name LIKE 'i_compte_id'";
3496                        $res=pmb_mysql_query($req);
3497                        if($res && !pmb_mysql_num_rows($res)){
3498                                $rqt = "alter table transactions add index i_compte_id (compte_id)";
3499                                echo traite_rqt($rqt,"alter table transactions add index i_compte_id");
3500                        }
3501                       
3502                        // DG - Ajout index sur id_notice de la table notices_fields_global_index
3503                        $req="SHOW INDEX FROM notices_fields_global_index WHERE key_name LIKE 'i_id_notice'";
3504                        $res=pmb_mysql_query($req);
3505                        if($res && !pmb_mysql_num_rows($res)){
3506                                $rqt = "alter table notices_fields_global_index add index i_id_notice (id_notice)";
3507                                echo traite_rqt($rqt,"alter table notices_fields_global_index add index i_id_notice");
3508                        }
3509                       
3510                        // DG - Ajout index sur id_authority de la table authorities_words_global_index
3511                        $req="SHOW INDEX FROM authorities_words_global_index WHERE key_name LIKE 'i_id_authority'";
3512                        $res=pmb_mysql_query($req);
3513                        if($res && !pmb_mysql_num_rows($res)){
3514                                $rqt = "alter table authorities_words_global_index add index i_id_authority (id_authority)";
3515                                echo traite_rqt($rqt,"alter table authorities_words_global_index add index i_id_authority");
3516                        }
3517                               
3518                        // DG - Ajout index sur id_authority de la table authorities_fields_global_index
3519                        $req="SHOW INDEX FROM authorities_fields_global_index WHERE key_name LIKE 'i_id_authority'";
3520                        $res=pmb_mysql_query($req);
3521                        if($res && !pmb_mysql_num_rows($res)){
3522                                $rqt = "alter table authorities_fields_global_index add index i_id_authority (id_authority)";
3523                                echo traite_rqt($rqt,"alter table authorities_fields_global_index add index i_id_authority");
3524                        }
3525                                               
3526                        // VT & AP - Nouvelle table pour les régimes de licence de documents numériques
3527                                        // id_explnum_licence : Identifiant
3528                                        // explnum_licence_label : Libellé
3529                                        // explnum_licence_uri : URI
3530                                        $rqt = "CREATE TABLE IF NOT EXISTS explnum_licence (
3531                                                id_explnum_licence int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
3532                                                explnum_licence_label varchar(255) DEFAULT '',
3533                                                explnum_licence_uri varchar(255) DEFAULT ''
3534                                        )";
3535                        echo traite_rqt($rqt,"create table explnum_licence");
3536               
3537                        // VT & AP - Nouvelle table pour les profils de régimes de licence de documents numériques
3538                                        // id_explnum_licence_profile : Identifiant
3539                                        // explnum_licence_profile_explnum_licence_num : Identifiant du régime de licence
3540                                        // explnum_licence_profile_label : Libellé
3541                                        // explnum_licence_profile_uri : URI
3542                                        // explnum_licence_profile_logo_url : URL du logo
3543                                        // explnum_licence_profile_explanation : Texte explicatif
3544                                        // explnum_licence_profile_quotation_rights : Droit de citation du profil
3545                                        $rqt = "CREATE TABLE IF NOT EXISTS explnum_licence_profiles (
3546                                                id_explnum_licence_profile int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
3547                                                explnum_licence_profile_explnum_licence_num int(10) unsigned NOT NULL DEFAULT 0,
3548                                                explnum_licence_profile_label varchar(255) DEFAULT '',
3549                                                explnum_licence_profile_uri varchar(255) DEFAULT '',
3550                                                explnum_licence_profile_logo_url varchar(255) DEFAULT '',
3551                                                explnum_licence_profile_explanation text,
3552                                                explnum_licence_profile_quotation_rights text,
3553                                                INDEX i_elp_explnum_licence_num (explnum_licence_profile_explnum_licence_num)
3554                                        )";
3555                        echo traite_rqt($rqt,"create table explnum_licence_profiles");
3556               
3557                        // VT & AP - Nouvelle table pour les droits de régimes de licence de documents numériques
3558                                        // id_explnum_licence_right : Identifiant
3559                                        // explnum_licence_profile_explnum_licence_num : Identifiant du régime de licence
3560                                        // explnum_licence_right_label : Libellé
3561                                        // explnum_licence_right_type : Type de droit (Autorisation / Interdiction)
3562                                        // explnum_licence_right_logo_url : URL du logo
3563                                        // explnum_licence_right_explanation : Texte explicatif
3564                                        $rqt = "CREATE TABLE IF NOT EXISTS explnum_licence_rights (
3565                                                id_explnum_licence_right int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
3566                                                explnum_licence_right_explnum_licence_num int(10) unsigned NOT NULL DEFAULT 0,
3567                                                explnum_licence_right_label varchar(255) DEFAULT '',
3568                                                explnum_licence_right_type int(2) DEFAULT 0,
3569                                                explnum_licence_right_logo_url varchar(255) DEFAULT '',
3570                                                explnum_licence_right_explanation text,
3571                                                INDEX i_elr_explnum_licence_num (explnum_licence_right_explnum_licence_num)
3572                                        )";
3573                        echo traite_rqt($rqt,"create table explnum_licence_rights");
3574                       
3575                        // VT & AP - Nouvelle table pour les liens droits / profils
3576                                        // explnum_licence_right_num : Identifiant du droit
3577                                        // explnum_licence_profile_num : Identifiant du lien
3578                                        $rqt = "CREATE TABLE IF NOT EXISTS explnum_licence_profile_rights (
3579                                                explnum_licence_profile_num INT not null DEFAULT 0,
3580                                                explnum_licence_right_num INT not null DEFAULT 0,
3581                                                PRIMARY KEY (explnum_licence_profile_num, explnum_licence_right_num)
3582                                        )";
3583                        echo traite_rqt($rqt,"create table explnum_licence_profile_rights");
3584
3585                        // AP & VT - Nouvelle table associant un document numérique à un régime de licence
3586                        // explnum_licence_explnums_licence_num : Identifiant du régime de licence
3587                        // explnum_licence_explnums_explnum_num : Identifiant du document numérique
3588                        $rqt = "CREATE TABLE IF NOT EXISTS explnum_licence_profile_explnums (
3589                                                explnum_licence_profile_explnums_explnum_num int(10) unsigned NOT NULL DEFAULT 0,
3590                                                explnum_licence_profile_explnums_profile_num int(10) unsigned NOT NULL DEFAULT 0,
3591                                                PRIMARY KEY (explnum_licence_profile_explnums_explnum_num, explnum_licence_profile_explnums_profile_num),
3592                                                INDEX i_elpe_explnum_profile_num (explnum_licence_profile_explnums_profile_num)
3593                                        )";
3594                        echo traite_rqt($rqt,"create table explnum_licence_profile_explnums");
3595                       
3596                        // DG - Modification de la clé primaire de la table authorities_words_global_index
3597                        $query = "SHOW KEYS FROM authorities_words_global_index WHERE Key_name = 'PRIMARY'";
3598                        $result = pmb_mysql_query($query);
3599                        $primary_fields = array('id_authority','code_champ','code_ss_champ','num_word','position','field_position');
3600                        $flag = false;
3601                        while($row = pmb_mysql_fetch_object($result)) {
3602                                if(!in_array($row->Column_name, $primary_fields)) {
3603                                        $flag = true;
3604                                }
3605                        }
3606                        if(!$flag && pmb_mysql_num_rows($result) != 6) {
3607                                $flag = true;
3608                        }
3609                        if($flag) {
3610                                $rqt ="alter table authorities_words_global_index drop primary key";
3611                                echo traite_rqt($rqt,"alter table authorities_words_global_index drop primary key");
3612                                $rqt ="alter table authorities_words_global_index add primary key (id_authority,code_champ,code_ss_champ,num_word,position,field_position)";
3613                                echo traite_rqt($rqt,"alter table authorities_words_global_index add primary key");
3614                        }
3615                       
3616                        // NG - Zone d'affichage par défaut de la carte
3617                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='map_bounding_box' "))==0){
3618                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
3619                                VALUES ( 'pmb', 'map_bounding_box', '-5 50,9 50,9 40,-5 40,-5 50', 'Zone d\'affichage par défaut de la carte. Coordonnées d\'un polygone fermé, en degrés décimaux','map', 0)";
3620                                echo traite_rqt($rqt,"insert pmb_map_bounding_box into parametres");
3621                        }
3622                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='map_bounding_box' "))==0){
3623                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
3624                                VALUES ( 'opac', 'map_bounding_box', '-5 50,9 50,9 40,-5 40,-5 50', 'Zone d\'affichage par défaut de la carte. Coordonnées d\'un polygone fermé, en degrés décimaux','map', 0)";
3625                                echo traite_rqt($rqt,"insert opac_map_bounding_box into parametres");
3626                        }
3627
3628
3629                        $rqt = "update parametres set valeur_param='0' where type_param='pmb' and sstype_param='bdd_subversion' " ;
3630                        echo traite_rqt($rqt,"update pmb_bdd_subversion=0 into parametres");
3631                        $pmb_bdd_subversion=0;
3632                       
3633                        if ($pmb_subversion_database_as_it_shouldbe!=$pmb_bdd_subversion) {
3634                                // Info de déconnexion pour passer le add-on
3635                                $rqt = " select 1 " ;
3636                                echo traite_rqt($rqt,"<b><a href='".$base_path."/logout.php' target=_blank>VOUS DEVEZ VOUS DECONNECTER ET VOUS RECONNECTER POUR TERMINER LA MISE A JOUR  / YOU MUST DISCONNECT AND RECONNECT YOU TO COMPLETE UPDATE</a></b> ") ;
3637                        }
3638                       
3639               
3640                // +-------------------------------------------------+
3641                echo "</table>";
3642                $rqt = "update parametres set valeur_param='v5.28' where type_param='pmb' and sstype_param='bdd_version' " ;
3643//--------------------------- FIN LLIUREX 07/03/2018------------------         
3644                $res = mysql_query($rqt, $dbh) ;
3645                echo "<strong><font color='#FF0000'>".$msg[1807]." ".number_format($action, 2, ',', '.')."%</font></strong><br />";
3646                $action=$action+$increment;
3647
3648                // // Parcheamos la base de datos
3649                require("$base_path/includes/db_param.inc.php");
3650                $comando= "cat ".$base_path."/admin/misc/mods_vLlxNemo.sql | mysql -u ". USER_NAME ." --password=". USER_PASS ." ". DATA_BASE;
3651                if (system($comando, $salida)==0){
3652                        echo "$msg[db_patched]";
3653                }
3654                echo "<SCRIPT>alert(\"".$msg[actualizacion_ok]."\");</SCRIPT>";
3655                //echo("<SCRIPT LANGUAGE='JavaScript'> window.location = \"$base_path/\"</SCRIPT>");
3656                break;
3657
3658        default:
3659                include("$include_path/messages/help/$lang/alter.txt");
3660                break;
3661        }
3662               
Note: See TracBrowser for help on using the repository browser.