source: pmb4.2/trunk/fuentes/pmb/admin/misc/alter_vLlxPandora.inc.php @ 1124

Last change on this file since 1124 was 1124, checked in by jrpelegrina, 5 years ago

Fix migration db from Pandora

  • Property svn:executable set to *
File size: 219.1 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_vLlxPandora.inc.php, migración BD a v5.19 (Lliurex 16.05 Xenial desde v.5.10 (Lliurex 14.05 Trusty)
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 "vLlxPandora":
15//  case "v5.10":
16                // 10 actualizaciones desde trusty (v5.10) a xenial (v5.19)
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                // +-------------------------------------------------+
21
22                //AR - ajout de type de contenu générique pour les articles et rubriques...
23                if(!pmb_mysql_num_rows(pmb_mysql_query("select id_editorial_type from cms_editorial_types where editorial_type_element  ='article_generic'"))){
24                        $rqt = "insert into cms_editorial_types set editorial_type_element = 'article_generic', editorial_type_label ='CP pour Article'";
25                        echo traite_rqt($rqt,"insert into cms_editorial_types set editorial_type_element = 'article_generic'") ;
26                        $rqt = "insert into cms_editorial_types set editorial_type_element = 'section_generic', editorial_type_label ='CP pour Rubrique'";
27                        echo traite_rqt($rqt,"insert into cms_editorial_types set editorial_type_element = 'section_generic'") ;
28                }
29
30                //DG - Ajout du champ index_libelle dans la table frais
31                $rqt = "ALTER TABLE frais ADD index_libelle TEXT";
32                echo traite_rqt($rqt,"alter table frais add index_libelle");
33
34                //DG - Paramètres pour les lettres de retard par groupe
35                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pdflettreretard' and sstype_param='1before_list_group' "))==0){
36                        $rqt = "select valeur_param,comment_param from parametres where type_param= 'pdflettreretard' and sstype_param='1before_list' ";
37                        $res = pmb_mysql_query($rqt);
38                        $value_param = pmb_mysql_result($res,0,0);
39                        $comment_param = pmb_mysql_result($res,0,1);
40                        $rqt = "INSERT INTO parametres (type_param, sstype_param, valeur_param,comment_param) VALUES ('pdflettreretard', '1before_list_group', '".addslashes($value_param)."', '".addslashes($comment_param)."') " ;
41                        echo traite_rqt($rqt,"insert pdflettreretard,1before_list_group into parametres");
42                }
43                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pdflettreretard' and sstype_param='1after_list_group' "))==0){
44                        $rqt = "select valeur_param,comment_param from parametres where type_param= 'pdflettreretard' and sstype_param='1after_list' ";
45                        $res = pmb_mysql_query($rqt);
46                        $value_param = pmb_mysql_result($res,0,0);
47                        $comment_param = pmb_mysql_result($res,0,1);
48                        $rqt = "INSERT INTO parametres (type_param, sstype_param, valeur_param,comment_param) VALUES ('pdflettreretard', '1after_list_group', '".addslashes($value_param)."', '".addslashes($comment_param)."') " ;
49                        echo traite_rqt($rqt,"insert pdflettreretard,1after_list_group into parametres");
50                }
51                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pdflettreretard' and sstype_param='1fdp_group' "))==0){
52                        $rqt = "select valeur_param,comment_param from parametres where type_param= 'pdflettreretard' and sstype_param='1fdp' ";
53                        $res = pmb_mysql_query($rqt);
54                        $value_param = pmb_mysql_result($res,0,0);
55                        $comment_param = pmb_mysql_result($res,0,1);
56                        $rqt = "INSERT INTO parametres (type_param, sstype_param, valeur_param,comment_param) VALUES ('pdflettreretard', '1fdp_group', '".addslashes($value_param)."', '".addslashes($comment_param)."') " ;
57                        echo traite_rqt($rqt,"insert pdflettreretard,1fdp_group into parametres");
58                }
59                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pdflettreretard' and sstype_param='1madame_monsieur_group' "))==0){
60                        $rqt = "select valeur_param,comment_param from parametres where type_param= 'pdflettreretard' and sstype_param='1madame_monsieur' ";
61                        $res = pmb_mysql_query($rqt);
62                        $value_param = pmb_mysql_result($res,0,0);
63                        $comment_param = pmb_mysql_result($res,0,1);
64                        $rqt = "INSERT INTO parametres (type_param, sstype_param, valeur_param,comment_param) VALUES ('pdflettreretard', '1madame_monsieur_group', '".addslashes($value_param)."', '".addslashes($comment_param)."') " ;
65                        echo traite_rqt($rqt,"insert pdflettreretard,1madame_monsieur_group into parametres");
66                }
67
68                //DG - Impression du nom du groupe sur la lettre de rappel
69                $rqt = "ALTER TABLE groupe ADD lettre_rappel_show_nomgroup INT( 1 ) UNSIGNED DEFAULT 0 NOT NULL ";
70                echo traite_rqt($rqt,"ALTER TABLE groupe ADD lettre_rappel_show_nomgroup default 0");
71                $rqt = "update groupe set lettre_rappel_show_nomgroup=lettre_rappel ";
72                echo traite_rqt($rqt,"update groupe set lettre_rappel_show_nomgroup=lettre_rappel");
73
74                //AR - Ajout des extensions de formulaire pour les types de contenus
75                $rqt = "alter table cms_editorial_types add editorial_type_extension text not null";
76                echo traite_rqt($rqt,"alter table cms_editorial_types add editorial_type_extension");
77
78                //AR - Ajout de la table de stockages des infos des extension
79                $rqt = "create table cms_modules_extensions_datas (
80                        id_extension_datas int(10) not null auto_increment primary key,
81                        extension_datas_module varchar(255) not null default '',
82                        extension_datas_type varchar(255) not null default '',
83                        extension_datas_type_element varchar(255) not null default '',
84                        extension_datas_num_element int(10) not null default 0,
85                        extension_datas_datas blob
86                )";
87                echo traite_rqt($rqt,"create table cms_modules_extensions_datas");
88
89                //NG - Ordre des facettes
90                $rqt = "alter table facettes add facette_order int not null default 1";
91                echo traite_rqt($rqt,"alter table facettes add facette_order");
92                //NG - limit_plus des facettes
93                $rqt = "alter table facettes add facette_limit_plus int not null default 0";
94                echo traite_rqt($rqt,"alter table facettes add facette_limit_plus");
95
96                //MB - Modification de l'identifiant 28 en 1 pour le trie car il est présent en double dans sort.xml
97                $rqt = "update parametres set valeur_param=REPLACE(valeur_param, '_28', '_1') WHERE type_param='opac' AND sstype_param='default_sort' AND valeur_param REGEXP '_28[^0-9]|_28$'";
98                echo traite_rqt($rqt,"update param opac_default_sort");
99
100                //NG pb de placement de main_hors_footer et footer
101                $rqt = "update cms_build set build_parent='main' where build_obj='main_header' or build_obj='main_hors_footer' or build_obj='footer' ";
102                echo traite_rqt($rqt,"update cms_build set build_parent");
103
104                //NG pb de placement des zones du contener
105                $rqt = "update cms_build set build_child_before='', build_child_after='intro' where build_obj='main' ";
106                echo traite_rqt($rqt,"update cms_build where build_obj='main'");
107                $rqt = "update cms_build set build_child_before='main', build_child_after='bandeau' where build_obj='intro' ";
108                echo traite_rqt($rqt,"update cms_build where build_obj='intro'");
109                $rqt = "update cms_build set build_child_before='intro', build_child_after='bandeau_2' where build_obj='bandeau' ";
110                echo traite_rqt($rqt,"update cms_build  where build_obj='bandeau'");
111                $rqt = "update cms_build set build_child_before='bandeau', build_child_after='' where build_obj='bandeau_2' ";
112                echo traite_rqt($rqt,"update cms_build where build_obj='bandeau_2' ");
113
114                // +-------------------------------------------------+
115                echo "</table>";
116                $rqt = "update parametres set valeur_param='".$action."' where type_param='pmb' and sstype_param='bdd_version' " ;
117                $res = pmb_mysql_query($rqt, $dbh) ;
118                echo "<strong><font color='#FF0000'>".$msg[1807]." ".number_format($action, 2, ',', '.')."%</font></strong><br />";
119                $action=$action+$increment;
120               
121                //echo form_relance ("v5.11");
122                //break;
123//case "v5.11":
124                echo "<table ><tr><th>".$msg['admin_misc_action']."</th><th>".$msg['admin_misc_resultat']."</th></tr>";
125                // +-------------------------------------------------+
126
127                //NG Ajout param opac_show_bandeau_2
128                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='show_bandeau_2' "))==0){
129                        $rqt = "select valeur_param from parametres where type_param= 'opac' and sstype_param='show_bandeaugauche' ";
130                        $res = pmb_mysql_query($rqt);
131                        $value_param = pmb_mysql_result($res,0,0);
132                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion) VALUES (0, 'opac', 'show_bandeau_2', '".addslashes($value_param)."', 'Affichage du bandeau_2 ? \n 0 : Non\n 1 : Oui', 'f_modules', 0) " ;
133                        echo traite_rqt($rqt,"insert opac_show_bandeau_2=opac_show_bandeaugauche into parametres");
134                }
135
136                if (pmb_mysql_result(pmb_mysql_query("select count(*) from notices"),0,0) > 15000){
137                        $rqt = "truncate table notices_mots_global_index";
138                        echo traite_rqt($rqt,"truncate table notices_mots_global_index");
139
140                        // Info de réindexation
141                        $rqt = " select 1 " ;
142                        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> ") ;
143                }
144                //NG ajout de field_position dans notices_mots_global_index
145                $rqt = "alter table notices_mots_global_index add field_position int not null default 1";
146                echo traite_rqt($rqt,"alter table notices_mots_global_index add field_position");
147
148                //abacarisse en attente
149                if (pmb_mysql_num_rows(pmb_mysql_query("select id_param from parametres where type_param= 'opac' and sstype_param='param_social_network' "))==0){
150                        //Ajout du paramètre de configuration de l'api addThis
151                        $rqt = "INSERT INTO parametres (type_param ,sstype_param ,valeur_param ,comment_param ,section_param ,gestion) VALUES ('opac', 'param_social_network',
152                        '{
153                        \"token\":\"ra-4d9b1e202c30dea1\",
154                        \"version\":\"300\",
155                        \"buttons\":[
156                        {
157                        \"attributes\":{
158                        \"class\":\"addthis_button_facebook_like\",
159                        \"fb:like:layout\":\"button_count\"
160                        }
161                        },
162                        {
163                        \"attributes\":{
164                        \"class\":\"addthis_button_tweet\"
165                        }
166                        },
167                        {
168                        \"attributes\":{
169                        \"class\":\"addthis_counter addthis_button_compact\"
170                        }
171                        }
172                        ],
173                        \"toolBoxParams\":{
174                        \"class\":\"addthis_toolbox addthis_default_style\"
175                        },
176                        \"addthis_share\":{
177
178                        },
179                        \"addthis_config\":{
180                        \"data_track_clickback\":\"true\",
181                        \"ui_click\":\"true\"
182                        }
183                        }
184                        ', 'Tableau de paramètrage de l\'API de gestion des interconnexions aux réseaux sociaux.
185                        Au format JSON.
186                        Exemple :
187                        {
188                        \"token\":\"ra-4d9b1e202c30dea1\",
189                        \"version\":\"300\",
190                        \"buttons\":[
191                        {
192                        \"attributes\":{
193                        \"class\":\"addthis_button_preferred_1\"
194                        }
195                        },
196                        {
197                        \"attributes\":{
198                        \"class\":\"addthis_button_preferred_2\"
199                        }
200                        },
201                        {
202                        \"attributes\":{
203                        \"class\":\"addthis_button_preferred_3\"
204                        }
205                        },
206                        {
207                        \"attributes\":{
208                        \"class\":\"addthis_button_preferred_4\"
209                        }
210                        },
211                        {
212                        \"attributes\":{
213                        \"class\":\"addthis_button_compact\"
214                        }
215                        },
216                        {
217                        \"attributes\":{
218                        \"class\":\"addthis_counter addthis_bubble_style\"
219                        }
220                        }
221                        ],
222                        \"toolBoxParams\":{
223                        \"class\":\"addthis_toolbox addthis_default_style addthis_32x32_style\"
224                        },
225                        \"addthis_share\":{
226
227                        },
228                        \"addthis_config\":{
229                        \"data_track_addressbar\":true
230                        }
231                        }', 'e_aff_notice', '0'
232                        )";
233                        echo traite_rqt($rqt,"insert opac_param_social_network into parametres");
234                }
235
236                // DG
237                //ajout du champ groupe_lecteurs dans la table bannettes
238                $rqt = "ALTER TABLE bannettes ADD groupe_lecteurs INT(8) UNSIGNED NOT NULL default 0";
239                echo traite_rqt($rqt,"alter table bannettes add groupe_lecteurs");
240
241                // JP
242                $rqt = "update parametres set comment_param='Tri par défaut des recherches OPAC. Deux possibilités :\n- un seul tri par défaut de la forme c_num_6\n- plusieurs tris par défaut de 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 si plusieurs' WHERE type_param='opac' AND sstype_param='default_sort'";
243                echo traite_rqt($rqt,"update comment for param opac_default_sort");
244
245                // Transfert: statut non pretable pour les expl en demande de transfert
246                if (pmb_mysql_num_rows(pmb_mysql_query("SELECT 1 FROM parametres WHERE type_param= 'transferts' and sstype_param='pret_demande_statut' "))==0){
247                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, gestion, comment_param)
248                        VALUES (0, 'transferts', 'pret_demande_statut', '0', '1', 'Appliquer ce statut avant la validation') ";
249                        echo traite_rqt($rqt,"INSERT transferts_pret_demande_statut INTO parametres") ;
250                }
251
252                // descriptors in DSI
253                $rqt = "create table if not exists bannettes_descriptors(
254                        num_bannette int not null default 0,
255                        num_noeud int not null default 0,
256                        bannette_descriptor_order int not null default 0,
257                        primary key (num_bannette,num_noeud)
258                )";
259                echo traite_rqt($rqt,"create table bannettes_descriptors") ;
260
261                //ajout du champ bannette_mail dans bannette_abon
262                $rqt = "ALTER TABLE bannette_abon ADD bannette_mail varchar(255) not null default '' ";
263                echo traite_rqt($rqt,"alter table bannette_abon add bannette_mail");
264
265                //AR - on a vu un cas ou ca se passe mal dans la 5.10, par précaution, on répète!
266                if(!pmb_mysql_num_rows(pmb_mysql_query("select id_editorial_type from cms_editorial_types where editorial_type_element  ='article_generic'"))){
267                        $rqt = "insert into cms_editorial_types set editorial_type_element = 'article_generic', editorial_type_label ='CP pour Article'";
268                        echo traite_rqt($rqt,"insert into cms_editorial_types set editorial_type_element = 'article_generic'") ;
269                }
270                if(!pmb_mysql_num_rows(pmb_mysql_query("select id_editorial_type from cms_editorial_types where editorial_type_element  ='section_generic'"))){
271                        $rqt = "insert into cms_editorial_types set editorial_type_element = 'section_generic', editorial_type_label ='CP pour Rubrique'";
272                        echo traite_rqt($rqt,"insert into cms_editorial_types set editorial_type_element = 'section_generic'") ;
273                }
274
275                //DG - Augmentation de la taille du champ mention_date de la table bulletins
276                $rqt = "ALTER TABLE bulletins MODIFY mention_date varchar(255) not null default ''";
277                echo traite_rqt($rqt,"alter table bulletins modify mention_date");
278
279                //DG - parametre pour l'affichage des notices de bulletins dans la navigation a2z
280                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='perio_a2z_show_bulletin_notice' "))==0){
281                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
282                        VALUES (0, 'opac', 'perio_a2z_show_bulletin_notice', '0', 'Affichage de la notice de bulletin dans le navigateur de périodiques', 'c_recherche',0) ";
283                        echo traite_rqt($rqt, "insert opac_perio_a2z_show_bulletin_notice=0 into parametres");
284                }
285
286                //DG - ajout d'un commentaire de gestion pour les suggestions
287                $rqt = "ALTER TABLE suggestions ADD commentaires_gestion TEXT AFTER commentaires";
288                echo traite_rqt($rqt,"alter table suggestions add commentaires_gestion");
289
290                //NG - Champs perso author
291                $rqt = "create table if not exists author_custom (
292                        idchamp int(10) unsigned NOT NULL auto_increment,
293                        num_type int unsigned not null default 0,
294                        name varchar(255) NOT NULL default '',
295                        titre varchar(255) default NULL,
296                        type varchar(10) NOT NULL default 'text',
297                        datatype varchar(10) NOT NULL default '',
298                        options text,
299                        multiple int(11) NOT NULL default 0,
300                        obligatoire int(11) NOT NULL default 0,
301                        ordre int(11) default NULL,
302                        search INT(1) unsigned NOT NULL DEFAULT 0,
303                        export INT(1) unsigned NOT NULL DEFAULT 0,
304                        exclusion_obligatoire INT(1) unsigned NOT NULL DEFAULT 0,
305                        pond int not null default 100,
306                        opac_sort INT NOT NULL DEFAULT 0,
307                        PRIMARY KEY  (idchamp)) ";
308                echo traite_rqt($rqt,"create table author_custom ");
309
310                $rqt = "create table if not exists author_custom_lists (
311                        author_custom_champ int(10) unsigned NOT NULL default 0,
312                        author_custom_list_value varchar(255) default NULL,
313                        author_custom_list_lib varchar(255) default NULL,
314                        ordre int(11) default NULL,
315                        KEY editorial_custom_champ (author_custom_champ),
316                        KEY editorial_champ_list_value (author_custom_champ,author_custom_list_value)) " ;
317                echo traite_rqt($rqt,"create table if not exists author_custom_lists ");
318
319                $rqt = "create table if not exists author_custom_values (
320                        author_custom_champ int(10) unsigned NOT NULL default 0,
321                        author_custom_origine int(10) unsigned NOT NULL default 0,
322                        author_custom_small_text varchar(255) default NULL,
323                        author_custom_text text,
324                        author_custom_integer int(11) default NULL,
325                        author_custom_date date default NULL,
326                        author_custom_float float default NULL,
327                        KEY editorial_custom_champ (author_custom_champ),
328                        KEY editorial_custom_origine (author_custom_origine)) " ;
329                echo traite_rqt($rqt,"create table if not exists author_custom_values ");
330
331                //NG - Champs perso categ
332                $rqt = "create table if not exists categ_custom (
333                        idchamp int(10) unsigned NOT NULL auto_increment,
334                        num_type int unsigned not null default 0,
335                        name varchar(255) NOT NULL default '',
336                        titre varchar(255) default NULL,
337                        type varchar(10) NOT NULL default 'text',
338                        datatype varchar(10) NOT NULL default '',
339                        options text,
340                        multiple int(11) NOT NULL default 0,
341                        obligatoire int(11) NOT NULL default 0,
342                        ordre int(11) default NULL,
343                        search INT(1) unsigned NOT NULL DEFAULT 0,
344                        export INT(1) unsigned NOT NULL DEFAULT 0,
345                        exclusion_obligatoire INT(1) unsigned NOT NULL DEFAULT 0,
346                        pond int not null default 100,
347                        opac_sort INT NOT NULL DEFAULT 0,
348                        PRIMARY KEY  (idchamp)) ";
349                echo traite_rqt($rqt,"create table categ_custom ");
350
351                $rqt = "create table if not exists categ_custom_lists (
352                        categ_custom_champ int(10) unsigned NOT NULL default 0,
353                        categ_custom_list_value varchar(255) default NULL,
354                        categ_custom_list_lib varchar(255) default NULL,
355                        ordre int(11) default NULL,
356                        KEY editorial_custom_champ (categ_custom_champ),
357                        KEY editorial_champ_list_value (categ_custom_champ,categ_custom_list_value)) " ;
358                echo traite_rqt($rqt,"create table if not exists categ_custom_lists ");
359
360                $rqt = "create table if not exists categ_custom_values (
361                        categ_custom_champ int(10) unsigned NOT NULL default 0,
362                        categ_custom_origine int(10) unsigned NOT NULL default 0,
363                        categ_custom_small_text varchar(255) default NULL,
364                        categ_custom_text text,
365                        categ_custom_integer int(11) default NULL,
366                        categ_custom_date date default NULL,
367                        categ_custom_float float default NULL,
368                        KEY editorial_custom_champ (categ_custom_champ),
369                        KEY editorial_custom_origine (categ_custom_origine)) " ;
370                echo traite_rqt($rqt,"create table if not exists categ_custom_values ");
371
372                //NG - Champs perso publisher
373                $rqt = "create table if not exists publisher_custom (
374                        idchamp int(10) unsigned NOT NULL auto_increment,
375                        num_type int unsigned not null default 0,
376                        name varchar(255) NOT NULL default '',
377                        titre varchar(255) default NULL,
378                        type varchar(10) NOT NULL default 'text',
379                        datatype varchar(10) NOT NULL default '',
380                        options text,
381                        multiple int(11) NOT NULL default 0,
382                        obligatoire int(11) NOT NULL default 0,
383                        ordre int(11) default NULL,
384                        search INT(1) unsigned NOT NULL DEFAULT 0,
385                        export INT(1) unsigned NOT NULL DEFAULT 0,
386                        exclusion_obligatoire INT(1) unsigned NOT NULL DEFAULT 0,
387                        pond int not null default 100,
388                        opac_sort INT NOT NULL DEFAULT 0,
389                        PRIMARY KEY  (idchamp)) ";
390                echo traite_rqt($rqt,"create table publisher_custom ");
391
392                $rqt = "create table if not exists publisher_custom_lists (
393                        publisher_custom_champ int(10) unsigned NOT NULL default 0,
394                        publisher_custom_list_value varchar(255) default NULL,
395                        publisher_custom_list_lib varchar(255) default NULL,
396                        ordre int(11) default NULL,
397                        KEY editorial_custom_champ (publisher_custom_champ),
398                        KEY editorial_champ_list_value (publisher_custom_champ,publisher_custom_list_value)) " ;
399                echo traite_rqt($rqt,"create table if not exists publisher_custom_lists ");
400
401                $rqt = "create table if not exists publisher_custom_values (
402                        publisher_custom_champ int(10) unsigned NOT NULL default 0,
403                        publisher_custom_origine int(10) unsigned NOT NULL default 0,
404                        publisher_custom_small_text varchar(255) default NULL,
405                        publisher_custom_text text,
406                        publisher_custom_integer int(11) default NULL,
407                        publisher_custom_date date default NULL,
408                        publisher_custom_float float default NULL,
409                        KEY editorial_custom_champ (publisher_custom_champ),
410                        KEY editorial_custom_origine (publisher_custom_origine)) " ;
411                echo traite_rqt($rqt,"create table if not exists publisher_custom_values ");
412
413                //NG - Champs perso collection
414                $rqt = "create table if not exists collection_custom (
415                        idchamp int(10) unsigned NOT NULL auto_increment,
416                        num_type int unsigned not null default 0,
417                        name varchar(255) NOT NULL default '',
418                        titre varchar(255) default NULL,
419                        type varchar(10) NOT NULL default 'text',
420                        datatype varchar(10) NOT NULL default '',
421                        options text,
422                        multiple int(11) NOT NULL default 0,
423                        obligatoire int(11) NOT NULL default 0,
424                        ordre int(11) default NULL,
425                        search INT(1) unsigned NOT NULL DEFAULT 0,
426                        export INT(1) unsigned NOT NULL DEFAULT 0,
427                        exclusion_obligatoire INT(1) unsigned NOT NULL DEFAULT 0,
428                        pond int not null default 100,
429                        opac_sort INT NOT NULL DEFAULT 0,
430                        PRIMARY KEY  (idchamp)) ";
431                echo traite_rqt($rqt,"create table collection_custom ");
432
433                $rqt = "create table if not exists collection_custom_lists (
434                        collection_custom_champ int(10) unsigned NOT NULL default 0,
435                        collection_custom_list_value varchar(255) default NULL,
436                        collection_custom_list_lib varchar(255) default NULL,
437                        ordre int(11) default NULL,
438                        KEY editorial_custom_champ (collection_custom_champ),
439                        KEY editorial_champ_list_value (collection_custom_champ,collection_custom_list_value)) " ;
440                echo traite_rqt($rqt,"create table if not exists collection_custom_lists ");
441
442                $rqt = "create table if not exists collection_custom_values (
443                        collection_custom_champ int(10) unsigned NOT NULL default 0,
444                        collection_custom_origine int(10) unsigned NOT NULL default 0,
445                        collection_custom_small_text varchar(255) default NULL,
446                        collection_custom_text text,
447                        collection_custom_integer int(11) default NULL,
448                        collection_custom_date date default NULL,
449                        collection_custom_float float default NULL,
450                        KEY editorial_custom_champ (collection_custom_champ),
451                        KEY editorial_custom_origine (collection_custom_origine)) " ;
452                echo traite_rqt($rqt,"create table if not exists collection_custom_values ");
453
454                //NG - Champs perso subcollection
455                $rqt = "create table if not exists subcollection_custom (
456                        idchamp int(10) unsigned NOT NULL auto_increment,
457                        num_type int unsigned not null default 0,
458                        name varchar(255) NOT NULL default '',
459                        titre varchar(255) default NULL,
460                        type varchar(10) NOT NULL default 'text',
461                        datatype varchar(10) NOT NULL default '',
462                        options text,
463                        multiple int(11) NOT NULL default 0,
464                        obligatoire int(11) NOT NULL default 0,
465                        ordre int(11) default NULL,
466                        search INT(1) unsigned NOT NULL DEFAULT 0,
467                        export INT(1) unsigned NOT NULL DEFAULT 0,
468                        exclusion_obligatoire INT(1) unsigned NOT NULL DEFAULT 0,
469                        pond int not null default 100,
470                        opac_sort INT NOT NULL DEFAULT 0,
471                        PRIMARY KEY  (idchamp)) ";
472                echo traite_rqt($rqt,"create table subcollection_custom ");
473
474                $rqt = "create table if not exists subcollection_custom_lists (
475                        subcollection_custom_champ int(10) unsigned NOT NULL default 0,
476                        subcollection_custom_list_value varchar(255) default NULL,
477                        subcollection_custom_list_lib varchar(255) default NULL,
478                        ordre int(11) default NULL,
479                        KEY editorial_custom_champ (subcollection_custom_champ),
480                        KEY editorial_champ_list_value (subcollection_custom_champ,subcollection_custom_list_value)) " ;
481                echo traite_rqt($rqt,"create table if not exists subcollection_custom_lists ");
482
483                $rqt = "create table if not exists subcollection_custom_values (
484                        subcollection_custom_champ int(10) unsigned NOT NULL default 0,
485                        subcollection_custom_origine int(10) unsigned NOT NULL default 0,
486                        subcollection_custom_small_text varchar(255) default NULL,
487                        subcollection_custom_text text,
488                        subcollection_custom_integer int(11) default NULL,
489                        subcollection_custom_date date default NULL,
490                        subcollection_custom_float float default NULL,
491                        KEY editorial_custom_champ (subcollection_custom_champ),
492                        KEY editorial_custom_origine (subcollection_custom_origine)) " ;
493                echo traite_rqt($rqt,"create table if not exists subcollection_custom_values ");
494
495                //NG - Champs perso serie
496                $rqt = "create table if not exists serie_custom (
497                        idchamp int(10) unsigned NOT NULL auto_increment,
498                        num_type int unsigned not null default 0,
499                        name varchar(255) NOT NULL default '',
500                        titre varchar(255) default NULL,
501                        type varchar(10) NOT NULL default 'text',
502                        datatype varchar(10) NOT NULL default '',
503                        options text,
504                        multiple int(11) NOT NULL default 0,
505                        obligatoire int(11) NOT NULL default 0,
506                        ordre int(11) default NULL,
507                        search INT(1) unsigned NOT NULL DEFAULT 0,
508                        export INT(1) unsigned NOT NULL DEFAULT 0,
509                        exclusion_obligatoire INT(1) unsigned NOT NULL DEFAULT 0,
510                        pond int not null default 100,
511                        opac_sort INT NOT NULL DEFAULT 0,
512                        PRIMARY KEY  (idchamp)) ";
513                echo traite_rqt($rqt,"create table serie_custom ");
514
515                $rqt = "create table if not exists serie_custom_lists (
516                        serie_custom_champ int(10) unsigned NOT NULL default 0,
517                        serie_custom_list_value varchar(255) default NULL,
518                        serie_custom_list_lib varchar(255) default NULL,
519                        ordre int(11) default NULL,
520                        KEY editorial_custom_champ (serie_custom_champ),
521                        KEY editorial_champ_list_value (serie_custom_champ,serie_custom_list_value)) " ;
522                echo traite_rqt($rqt,"create table if not exists serie_custom_lists ");
523
524                $rqt = "create table if not exists serie_custom_values (
525                        serie_custom_champ int(10) unsigned NOT NULL default 0,
526                        serie_custom_origine int(10) unsigned NOT NULL default 0,
527                        serie_custom_small_text varchar(255) default NULL,
528                        serie_custom_text text,
529                        serie_custom_integer int(11) default NULL,
530                        serie_custom_date date default NULL,
531                        serie_custom_float float default NULL,
532                        KEY editorial_custom_champ (serie_custom_champ),
533                        KEY editorial_custom_origine (serie_custom_origine)) " ;
534                echo traite_rqt($rqt,"create table if not exists serie_custom_values ");
535
536                //NG - Champs perso tu
537                $rqt = "create table if not exists tu_custom (
538                        idchamp int(10) unsigned NOT NULL auto_increment,
539                        num_type int unsigned not null default 0,
540                        name varchar(255) NOT NULL default '',
541                        titre varchar(255) default NULL,
542                        type varchar(10) NOT NULL default 'text',
543                        datatype varchar(10) NOT NULL default '',
544                        options text,
545                        multiple int(11) NOT NULL default 0,
546                        obligatoire int(11) NOT NULL default 0,
547                        ordre int(11) default NULL,
548                        search INT(1) unsigned NOT NULL DEFAULT 0,
549                        export INT(1) unsigned NOT NULL DEFAULT 0,
550                        exclusion_obligatoire INT(1) unsigned NOT NULL DEFAULT 0,
551                        pond int not null default 100,
552                        opac_sort INT NOT NULL DEFAULT 0,
553                        PRIMARY KEY  (idchamp)) ";
554                echo traite_rqt($rqt,"create table tu_custom ");
555
556                $rqt = "create table if not exists tu_custom_lists (
557                        tu_custom_champ int(10) unsigned NOT NULL default 0,
558                        tu_custom_list_value varchar(255) default NULL,
559                        tu_custom_list_lib varchar(255) default NULL,
560                        ordre int(11) default NULL,
561                        KEY editorial_custom_champ (tu_custom_champ),
562                        KEY editorial_champ_list_value (tu_custom_champ,tu_custom_list_value)) " ;
563                echo traite_rqt($rqt,"create table if not exists tu_custom_lists ");
564
565                $rqt = "create table if not exists tu_custom_values (
566                        tu_custom_champ int(10) unsigned NOT NULL default 0,
567                        tu_custom_origine int(10) unsigned NOT NULL default 0,
568                        tu_custom_small_text varchar(255) default NULL,
569                        tu_custom_text text,
570                        tu_custom_integer int(11) default NULL,
571                        tu_custom_date date default NULL,
572                        tu_custom_float float default NULL,
573                        KEY editorial_custom_champ (tu_custom_champ),
574                        KEY editorial_custom_origine (tu_custom_origine)) " ;
575                echo traite_rqt($rqt,"create table if not exists tu_custom_values ");
576
577                //NG - Champs perso indexint
578                $rqt = "create table if not exists indexint_custom (
579                        idchamp int(10) unsigned NOT NULL auto_increment,
580                        num_type int unsigned not null default 0,
581                        name varchar(255) NOT NULL default '',
582                        titre varchar(255) default NULL,
583                        type varchar(10) NOT NULL default 'text',
584                        datatype varchar(10) NOT NULL default '',
585                        options text,
586                        multiple int(11) NOT NULL default 0,
587                        obligatoire int(11) NOT NULL default 0,
588                        ordre int(11) default NULL,
589                        search INT(1) unsigned NOT NULL DEFAULT 0,
590                        export INT(1) unsigned NOT NULL DEFAULT 0,
591                        exclusion_obligatoire INT(1) unsigned NOT NULL DEFAULT 0,
592                        pond int not null default 100,
593                        opac_sort INT NOT NULL DEFAULT 0,
594                        PRIMARY KEY  (idchamp)) ";
595                echo traite_rqt($rqt,"create table indexint_custom ");
596
597                $rqt = "create table if not exists indexint_custom_lists (
598                        indexint_custom_champ int(10) unsigned NOT NULL default 0,
599                        indexint_custom_list_value varchar(255) default NULL,
600                        indexint_custom_list_lib varchar(255) default NULL,
601                        ordre int(11) default NULL,
602                        KEY editorial_custom_champ (indexint_custom_champ),
603                        KEY editorial_champ_list_value (indexint_custom_champ,indexint_custom_list_value)) " ;
604                echo traite_rqt($rqt,"create table if not exists indexint_custom_lists ");
605
606                $rqt = "create table if not exists indexint_custom_values (
607                        indexint_custom_champ int(10) unsigned NOT NULL default 0,
608                        indexint_custom_origine int(10) unsigned NOT NULL default 0,
609                        indexint_custom_small_text varchar(255) default NULL,
610                        indexint_custom_text text,
611                        indexint_custom_integer int(11) default NULL,
612                        indexint_custom_date date default NULL,
613                        indexint_custom_float float default NULL,
614                        KEY editorial_custom_champ (indexint_custom_champ),
615                        KEY editorial_custom_origine (indexint_custom_origine)) " ;
616                echo traite_rqt($rqt,"create table if not exists indexint_custom_values ");
617
618                // +-------------------------------------------------+
619                echo "</table>";
620                $rqt = "update parametres set valeur_param='".$action."' where type_param='pmb' and sstype_param='bdd_version' " ;
621                $res = pmb_mysql_query($rqt, $dbh) ;
622                echo "<strong><font color='#FF0000'>".$msg[1807]." ".number_format($action, 2, ',', '.')."%</font></strong><br />";
623                $action=$action+$increment;
624                //echo form_relance ("v5.12");
625                //break;
626
627//case "v5.12":
628                echo "<table ><tr><th>".$msg['admin_misc_action']."</th><th>".$msg['admin_misc_resultat']."</th></tr>";
629                // +-------------------------------------------------+
630
631                //DG - parametre pour forcer l'exécution des procédures
632                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='procs_force_execution' "))==0){
633                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
634                VALUES (0, 'pmb', 'procs_force_execution', '0', 'Permettre le forçage de l\'exécution des procédures', '',0) ";
635                        echo traite_rqt($rqt, "insert pmb_procs_force_execution=0 into parametres");
636                        $rqt = "update users set rights=rights+131072 where rights<131072 and userid=1 ";
637                        echo traite_rqt($rqt, "update users add editions forcing rights where super user ");
638                }
639
640                //NG - ajout facette en dsi
641                $rqt = "ALTER TABLE bannettes ADD group_type int unsigned NOT NULL default 0 AFTER notice_tpl";
642                echo traite_rqt($rqt,"alter table bannettes add group_type");
643
644                $rqt = "CREATE TABLE if not exists bannette_facettes (
645                        num_ban_facette int unsigned NOT NULL default 0,
646                        ban_facette_critere int(5) not null default 0,
647                        ban_facette_ss_critere int(5) not null default 0,
648                        ban_facette_order int(1) not null default 0,
649                        KEY bannette_facettes_key (num_ban_facette,ban_facette_critere,ban_facette_ss_critere)) " ;
650                echo traite_rqt($rqt,"CREATE TABLE bannette_facettes");
651
652                //DB - L'authentification Digest impose une valeur, ce qui n'est pas le cas avec une authentification externe
653                $rqt= "alter table empr add empr_digest varchar(255) not null default '' after empr_password";
654                echo traite_rqt($rqt,"alter table empr add empr_digest");
655
656                //AB
657                $rqt = "UPDATE users SET value_deflt_relation=CONCAT(value_deflt_relation,'-up') WHERE value_deflt_relation!='' AND value_deflt_relation NOT LIKE '%-%'";
658                echo traite_rqt($rqt, 'UPDATE users SET value_deflt_relation=CONCAT(value_deflt_relation,"-up")');
659
660                // +-------------------------------------------------+
661                echo "</table>";
662                $rqt = "update parametres set valeur_param='".$action."' where type_param='pmb' and sstype_param='bdd_version' " ;
663                $res = pmb_mysql_query($rqt, $dbh) ;
664                echo "<strong><font color='#FF0000'>".$msg[1807]." ".number_format($action, 2, ',', '.')."%</font></strong><br />";
665                $action=$action+$increment;
666                //echo form_relance ("v5.13");
667                //break;
668
669//case "v5.13":
670                echo "<table ><tr><th>".$msg['admin_misc_action']."</th><th>".$msg['admin_misc_resultat']."</th></tr>";
671                // +-------------------------------------------------+
672
673                //AB parametre OPAC pour activer ou non le drag and drop si notice_depliable != 2
674                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='draggable' "))==0){
675                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
676                                VALUES (0, 'opac', 'draggable', '1', 'Permet d\'activer le glisser déposer dans le panier pour l\'affichage des notices à l\'OPAC', 'e_aff_notice',0) ";
677                        echo traite_rqt($rqt, "insert opac_draggable=1 into parametres");
678                }
679
680                //DG - Modification de la longueur du champ description de la table opac_liste_lecture
681                $rqt = "ALTER TABLE opac_liste_lecture MODIFY description TEXT ";
682                echo traite_rqt($rqt,"alter table opac_liste_lecture modify description");
683
684                //DB - Ajout d'un champ timestamp dans la table acces_user_2
685                @pmb_mysql_query("describe acces_usr_2",$dbh);
686                if (!pmb_mysql_error($dbh)) {
687                        $rqt = "ALTER IGNORE TABLE acces_usr_2 ADD updated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ";
688                        echo traite_rqt($rqt,"alter table acces_usr_2 add field updated");
689                }
690
691                // +-------------------------------------------------+
692                echo "</table>";
693                $rqt = "update parametres set valeur_param='".$action."' where type_param='pmb' and sstype_param='bdd_version' " ;
694                $res = pmb_mysql_query($rqt, $dbh) ;
695                echo "<strong><font color='#FF0000'>".$msg[1807]." ".number_format($action, 2, ',', '.')."%</font></strong><br />";
696                $action=$action+$increment;
697                //echo form_relance ("v5.14");
698                //break;
699
700//      case "v5.14":
701               
702                echo "<table ><tr><th>".$msg['admin_misc_action']."</th><th>".$msg['admin_misc_resultat']."</th></tr>";
703                // +-------------------------------------------------+
704                // MB - Indexer la colonne num_renvoi_voir de la table noeuds
705                $rqt = "ALTER TABLE noeuds DROP INDEX i_num_renvoi_voir";
706                echo traite_rqt($rqt,"ALTER TABLE noeuds DROP INDEX i_num_renvoi_voir");
707                $rqt = "ALTER TABLE noeuds ADD INDEX i_num_renvoi_voir (num_renvoi_voir)";
708                echo traite_rqt($rqt,"ALTER TABLE noeuds ADD INDEX i_num_renvoi_voir (num_renvoi_voir)");
709
710                $rqt="update parametres set comment_param='Liste des id de template de notice pour ajouter des onglets personnalisés en affichage de notice\nExemple: 1,3,ISBD,PUBLIC\nLe paramètre notices_format doit être à 0 pour placer ISBD et PUBLIC' where type_param='opac' and sstype_param='notices_format_onglets' ";
711                echo traite_rqt($rqt,"update opac notices_format_onglets comments in parametres") ;
712
713                $rqt = "update parametres set comment_param='0 : mode normal de recherche\n1 : Affiche directement le résultat de la recherche tous les champs sans passer par la présentation du niveau 1 de recherche \n2 : Affiche directement le résultat de la recherche tous les champs sans passer par la présentation du niveau 1 de recherche sans faire de recherche intermédaire'  where type_param='opac' and sstype_param='autolevel2' ";
714                echo traite_rqt($rqt,"update opac_autolevel comments in parametres");
715
716
717                //Création des tables pour le portfolio
718                $rqt = "create table cms_collections (
719                        id_collection int unsigned not null auto_increment primary key,
720                        collection_title varchar(255) not null default '',
721                        collection_description text not null,
722                        collection_num_parent int not null default 0,
723                        collection_num_storage int not null default 0,
724                        index i_cms_collection_title(collection_title)
725                )";
726                echo traite_rqt($rqt,"create table cms_collections") ;
727                $rqt = "create table cms_documents (
728                        id_document int unsigned not null auto_increment primary key,
729                        document_title varchar(255) not null default '',
730                        document_description text not null,
731                        document_filename varchar(255) not null default '',
732                        document_mimetype varchar(100) not null default '',
733                        document_filesize int not null default 0,
734                        document_vignette mediumblob not null default '',
735                        document_url text not null,
736                        document_path varchar(255) not null default '',
737                        document_create_date date not null default '0000-00-00',
738                        document_num_storage int not null default 0,
739                        document_type_object varchar(255) not null default '',
740                        document_num_object int not null default 0,
741                        index i_cms_document_title(document_title)
742                )";
743                echo traite_rqt($rqt,"create table cms_documents") ;
744                $rqt = "create table storages (
745                        id_storage int unsigned not null auto_increment primary key,
746                        storage_name varchar(255) not null default '',
747                        storage_class varchar(255) not null default '',
748                        storage_params text not null,
749                        index i_storage_class(storage_class)
750                )";
751                echo traite_rqt($rqt,"create table storages") ;
752                $rqt = "create table cms_documents_links (
753                        document_link_type_object varchar(255) not null default '',
754                        document_link_num_object int not null default 0,
755                        document_link_num_document int not null default 0,
756                        primary key(document_link_type_object,document_link_num_object,document_link_num_document)
757                )";
758                echo traite_rqt($rqt,"create table cms_documents_links") ;
759
760                // FT - Ajout des paramètres pour forcer les tags meta pour les moteurs de recherche
761                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='meta_description' "))==0){
762                        $rqt="insert into parametres(type_param,sstype_param,valeur_param,comment_param,section_param,gestion) values('opac','meta_description','','Contenu du meta tag description pour les moteurs de recherche','b_aff_general',0)";
763                        echo traite_rqt($rqt,"INSERT INTO parametres opac_meta_description");
764                }
765                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='meta_keywords' "))==0){
766                        $rqt="insert into parametres(type_param,sstype_param,valeur_param,comment_param,section_param,gestion) values('opac','meta_keywords','','Contenu du meta tag keywords pour les moteurs de recherche','b_aff_general',0)";
767                        echo traite_rqt($rqt,"INSERT INTO parametres opac_meta_keywords");
768                }
769                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='meta_author' "))==0){
770                        $rqt="insert into parametres(type_param,sstype_param,valeur_param,comment_param,section_param,gestion) values('opac','meta_author','','Contenu du meta tag author pour les moteurs de recherche','b_aff_general',0)";
771                        echo traite_rqt($rqt,"INSERT INTO parametres opac_meta_author");
772                }
773
774                //DG - autoriser le code HTML dans les cotes exemplaires
775                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='html_allow_expl_cote' "))==0){
776                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
777                        VALUES (0, 'pmb', 'html_allow_expl_cote', '0', 'Autoriser le code HTML dans les cotes exemplaires ? \n 0 : non \n 1', '',0) ";
778                        echo traite_rqt($rqt, "insert pmb_html_allow_expl_cote=0 into parametres");
779                }
780
781                //maj valeurs possibles pour empr_sort_rows
782                $rqt = "update parametres set 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 #n : id des champs personnalisés' where type_param= 'empr' and sstype_param='sort_rows' ";
783                echo traite_rqt($rqt,"update empr_sort_rows into parametres");
784
785                //DB - création table index pour le magasin rdf
786                $rqt = "create table rdfstore_index (
787                                        num_triple int(10) unsigned not null default 0,
788                                        subject_uri text not null ,
789                                        predicat_uri text not null ,
790                                        num_object int(10) unsigned not null default 0 primary key,
791                                        object_val text not null ,
792                                        object_index text not null ,
793                                        object_lang char(5) not null default ''
794                ) default charset=utf8 ";
795                echo traite_rqt($rqt,"create table rdfstore_index");
796
797                // MB - Création d'une table de cache pour les cadres du portail pour accélérer l'affichage
798                $rqt = "DROP TABLE IF EXISTS cms_cache_cadres";
799                echo traite_rqt($rqt,"DROP TABLE IF EXISTS cms_cache_cadres");
800                $rqt = "CREATE TABLE  cms_cache_cadres (
801                        cache_cadre_hash VARCHAR( 32 ) NOT NULL,
802                        cache_cadre_type_content VARCHAR(30) NOT NULL,
803                        cache_cadre_create_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
804                        cache_cadre_content MEDIUMTEXT NOT NULL,
805                        PRIMARY KEY (  cache_cadre_hash, cache_cadre_type_content )
806                );";
807                echo traite_rqt($rqt,"CREATE TABLE  cms_cache_cadres");
808
809                $rqt = "ALTER TABLE rdfstore_index ADD subject_type TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL AFTER  subject_uri";
810                echo traite_rqt($rqt,"alter table rdfstore_index add subject_type");
811
812                // Info de réindexation
813                $rqt = " select 1 " ;
814                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 > Réindexer le magasin RDF</a></b> ") ;
815
816                // AP - Ajout de l'ordre dans les rubriques et les articles
817                $rqt = "ALTER TABLE cms_sections ADD section_order INT UNSIGNED default 0";
818                echo traite_rqt($rqt,"alter table cms_sections add section_order");
819
820                $rqt = "ALTER TABLE cms_articles ADD article_order INT UNSIGNED default 0";
821                echo traite_rqt($rqt,"alter table cms_articles add article_order");
822
823                //DG - CSS add on en gestion
824                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='default_style_addon' "))==0){
825                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
826                        VALUES (0, 'pmb', 'default_style_addon', '', 'Ajout de styles CSS aux feuilles déjà incluses ?\n Ne mettre que le code CSS, exemple:  body {background-color: #FF0000;}', '',0) ";
827                        echo traite_rqt($rqt, "insert pmb_default_style_addon into parametres");
828                }
829
830                // NG - circulation sans retour
831                $rqt = "ALTER TABLE serialcirc ADD serialcirc_no_ret INT UNSIGNED not null default 0";
832                echo traite_rqt($rqt,"alter table serialcirc add serialcirc_no_ret");
833
834                // NG - personnalisation d'impression de la liste de circulation des périodiques
835                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='serialcirc_subst' "))==0){
836                        $rqt="insert into parametres(type_param,sstype_param,valeur_param,comment_param,section_param,gestion) values('pmb','serialcirc_subst','','Nom du fichier permettant de personnaliser l\'impression de la liste de circulation des périodiques','',0)";
837                        echo traite_rqt($rqt,"INSERT INTO parametres pmb_serialcirc_subst");
838                }
839
840                //MB - Augmenter la taille du libellé de groupe
841                $rqt = "ALTER TABLE groupe CHANGE libelle_groupe libelle_groupe VARCHAR(255) NOT NULL";
842                echo traite_rqt($rqt,"alter table groupe");
843
844                //AR - Ajout d'un type de cache pour un cadre
845                $rqt = "alter table cms_cadres add cadre_modcache varchar(255) not null default 'get_post_view'";
846                echo traite_rqt($rqt,"alter table cms_cadres add cadre_modcache");
847
848                //DG - Type de relation par défaut en création de périodique
849                $rqt = "ALTER TABLE users ADD value_deflt_relation_serial VARCHAR( 20 ) NOT NULL DEFAULT '' AFTER value_deflt_relation";
850                echo traite_rqt($rqt,"ALTER TABLE users ADD default value_deflt_relation_serial after value_deflt_relation");
851
852                //DG - Type de relation par défaut en création de bulletin
853                $rqt = "ALTER TABLE users ADD value_deflt_relation_bulletin VARCHAR( 20 ) NOT NULL DEFAULT '' AFTER value_deflt_relation_serial";
854                echo traite_rqt($rqt,"ALTER TABLE users ADD default value_deflt_relation_bulletin after value_deflt_relation_serial");
855
856                //DG - Type de relation par défaut en création d'article
857                $rqt = "ALTER TABLE users ADD value_deflt_relation_analysis VARCHAR( 20 ) NOT NULL DEFAULT '' AFTER value_deflt_relation_bulletin";
858                echo traite_rqt($rqt,"ALTER TABLE users ADD default value_deflt_relation_analysis after value_deflt_relation_bulletin");
859
860                //DG - Mise à jour des valeurs en fonction du type de relation par défaut en création de notice, si la valeur est vide !
861                if ($res = pmb_mysql_query("select userid, value_deflt_relation,value_deflt_relation_serial,value_deflt_relation_bulletin,value_deflt_relation_analysis from users")){
862                        while ( $row = pmb_mysql_fetch_object($res)) {
863                                if ($row->value_deflt_relation_serial == '') pmb_mysql_query("update users set value_deflt_relation_serial='".$row->value_deflt_relation."' where userid=".$row->userid);
864                                if ($row->value_deflt_relation_bulletin == '') pmb_mysql_query("update users set value_deflt_relation_bulletin='".$row->value_deflt_relation."' where userid=".$row->userid);
865                                if ($row->value_deflt_relation_analysis == '') pmb_mysql_query("update users set value_deflt_relation_analysis='".$row->value_deflt_relation."' where userid=".$row->userid);
866                        }
867                }
868
869                //DG - Activer le prêt court par défaut
870                $rqt = "ALTER TABLE users ADD deflt_short_loan_activate INT(1) UNSIGNED DEFAULT 0 NOT NULL ";
871                echo traite_rqt($rqt, "ALTER TABLE users ADD deflt_short_loan_activate");
872
873                //DG - Alerter l'utilisateur par mail des nouvelles inscriptions en OPAC ?
874                $rqt = "ALTER TABLE users ADD user_alert_subscribemail INT(1) UNSIGNED NOT NULL DEFAULT 0 after user_alert_demandesmail";
875                echo traite_rqt($rqt,"ALTER TABLE users add user_alert_subscribemail default 0");
876
877                //DB - Modification commentaire autolevel
878                $rqt = "update parametres set comment_param='0 : mode normal de recherche.\n1 : Affiche le résultat de la recherche tous les champs après calcul du niveau 1 de recherche.\n2 : Affiche directement le résultat de la recherche tous les champs sans passer par le calcul du niveau 1 de recherche.' where type_param= 'opac' and sstype_param='autolevel2' ";
879                echo traite_rqt($rqt,"update parameter comment for opac_autolevel2");
880
881                //AR - Ajout du paramètres pour la durée de validité du cache des cadres du potail
882                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'cms' and sstype_param='cache_ttl' "))==0){
883                        $rqt = "insert into parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
884                        VALUES (0, 'cms', 'cache_ttl', '1800', 'durée de vie du cache des cadres du portail (en secondes)', '',0) ";
885                        echo traite_rqt($rqt, "insert cms_caches_ttl into parametres");
886                }
887
888                //DG - Périodicité : Jour du mois
889                $rqt = "ALTER TABLE planificateur ADD perio_jour_mois VARCHAR( 128 ) DEFAULT '*' AFTER perio_minute";
890                echo traite_rqt($rqt,"ALTER TABLE planificateur ADD perio_jour_mois DEFAULT * after perio_minute");
891
892                //DG - Replanifier la tâche en cas d'échec
893                $rqt = "alter table taches_type add restart_on_failure int(1) UNSIGNED DEFAULT 0 NOT NULL";
894                echo traite_rqt($rqt,"alter table taches_type add restart_on_failure");
895
896                //DG - Alerte mail en cas d'échec de la tâche
897                $rqt = "alter table taches_type add alert_mail_on_failure VARCHAR(255) DEFAULT ''";
898                echo traite_rqt($rqt,"alter table taches_type add alert_mail_on_failure");
899
900                //DG - Préremplissage de la vignette des dépouillements
901                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='serial_thumbnail_url_article' "))==0){
902                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
903                        VALUES (0, 'pmb', 'serial_thumbnail_url_article', '0', 'Préremplissage de l\'url de la vignette des dépouillements avec l\'url de la vignette de la notice mère en catalogage des périodiques ? \n 0 : Non \n 1 : Oui', '',0) ";
904                        echo traite_rqt($rqt, "insert pmb_serial_thumbnail_url_article=0 into parametres");
905                }
906
907                //DG - Délai en millisecondes entre les mails envoyés lors d'un envoi groupé
908                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='mail_delay' "))==0){
909                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
910                                        VALUES(0,'pmb','mail_delay','0','Temps d\'attente en millisecondes entre chaque mail envoyé lors d\'un envoi groupé. \n 0 : Pas d\'attente', '',0)" ;
911                        echo traite_rqt($rqt,"insert pmb_mail_delay=0 into parametres") ;
912                }
913
914                //DG - Timeout cURL sur la vérifications des liens
915                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='curl_timeout' "))==0){
916                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
917                                        VALUES(0,'pmb','curl_timeout','5','Timeout cURL (en secondes) pour la vérification des liens', '',1)" ;
918                        echo traite_rqt($rqt,"insert pmb_curl_timeout=0 into parametres") ;
919                }
920
921                //DG - Autoriser la prolongation groupée pour tous les membres
922                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'empr' and sstype_param='allow_prolong_members_group' "))==0){
923                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
924                                        VALUES (0, 'empr', 'allow_prolong_members_group', '0', 'Autoriser la prolongation groupée des adhésions des membres d\'un groupe ? \n 0 : Non \n 1 : Oui', '',0) ";
925                        echo traite_rqt($rqt, "insert empr_allow_prolong_members_group=0 into parametres");
926                }
927
928
929                //DB - ajout d'un index stem+lang sur la table words
930                $rqt = "alter table words add index i_stem_lang(stem, lang)";
931                echo traite_rqt($rqt, "alter table words add index i_stem_lang");
932
933                //NG - Autoindex
934                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'thesaurus' and sstype_param='auto_index_notice_fields' "))==0){
935                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
936                        VALUES (0, 'thesaurus', 'auto_index_notice_fields', '', 'Liste des champs de notice à utiliser pour l\'indexation automatique, séparés par une virgule.\nLes noms des champs sont les identifiants des champs listés dans le fichier XML pmb/notice/notice.xml\nExemple: tit1,n_resume', 'categories',0) ";
937                        echo traite_rqt($rqt, "insert thesaurus_auto_index_notice_fields='' into parametres");
938                }
939
940                //NG - Autoindex: surchage du parametrage de la recherche
941                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'thesaurus' and sstype_param='auto_index_search_param' "))==0){
942                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
943                        VALUES (0, 'thesaurus', 'auto_index_search_param', '', 'Surchage des paramètres de recherche de l\'indexation automatique.\n\nSyntaxe: param=valeur;\n\nListe des paramètres:\nautoindex_max_up_distance,\nautoindex_max_down_distance,\nautoindex_stem_ratio,\nautoindex_see_also_ratio,\nautoindex_max_down_ratio,\nautoindex_max_up_ratio,\nautoindex_deep_ratio,\nautoindex_distance_ratio,\nmax_relevant_words,\nmax_relevant_terms', 'categories',0) ";
944                        echo traite_rqt($rqt, "insert thesaurus_auto_index_search_param='' into parametres");
945                }
946
947                //DG - Choix par défaut pour la prolongation des lecteurs
948                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'empr' and sstype_param='abonnement_default_debit' "))==0){
949                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param) VALUES (0, 'empr', 'abonnement_default_debit', '0', 'Choix par défaut pour la prolongation des lecteurs. \n 0 : Ne pas débiter l\'abonnement \n 1 : Débiter l\'abonnement sans la caution \n 2 : Débiter l\'abonnement et la caution') " ;
950                        echo traite_rqt($rqt,"insert empr_abonnement_default_debit = 0 into parametres");
951                }
952
953                //NG - Ajout indexation_lang dans la table notices
954                $rqt = "ALTER TABLE notices ADD indexation_lang VARCHAR( 20 ) NOT NULL DEFAULT '' ";
955                echo traite_rqt($rqt,"ALTER TABLE notices ADD indexation_lang VARCHAR( 20 ) NOT NULL DEFAULT '' ");
956
957                $rqt = "alter table users add xmlta_indexation_lang varchar(10) NOT NULL DEFAULT '' after deflt_integration_notice_statut";
958                echo traite_rqt($rqt,"alter table users add xmlta_indexation_lang");
959
960                //NG - Ajout ico_notice
961                $rqt = "ALTER TABLE connectors_sources ADD ico_notice VARCHAR( 255 ) NOT NULL DEFAULT '' ";
962                echo traite_rqt($rqt,"ALTER TABLE connectors_sources ADD ico_notice VARCHAR( 255 ) NOT NULL DEFAULT '' ");
963
964                //NG - liste des sources externes d'enrichissements à intégrer dans le a2z
965                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='perio_a2z_enrichissements' "))==0){
966                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
967                        VALUES (0, 'opac', 'perio_a2z_enrichissements', '0', 'Affichage de sources externes d\'enrichissement dans le navigateur de périodiques.\nListe des couples (séparé par une virgule) Id de connecteur, Id de source externe d\'enrichissement, séparé par un point virgule\nExemple:\n6,4;6,5', 'c_recherche',0) ";
968                        echo traite_rqt($rqt, "insert opac_perio_a2z_enrichissements=0 into parametres");
969                }
970
971                //DG - Modification taille du champ empr_msg de la table empr
972                $rqt = "ALTER TABLE empr MODIFY empr_msg TEXT null " ;
973                echo traite_rqt($rqt,"alter table empr modify empr_msg");
974
975                //DG - Identifiant du template de notice par défaut en impression de panier
976                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='print_template_default' "))==0){
977                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
978                        VALUES (0, 'opac', 'print_template_default', '0', 'En impression de panier, identifiant du template de notice utilisé par défaut. Si vide ou à 0, le template classique est utilisé', 'a_general', 0)";
979                        echo traite_rqt($rqt,"insert opac_print_template_default='0' into parametres");
980                }
981
982                //DG - Paramètre pour afficher le permalink de la notice dans le detail de la notice
983                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='show_permalink' "))==0){
984                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
985                        VALUES (0, 'pmb', 'show_permalink', '0', 'Afficher le lien permanent de l\'OPAC en gestion ? \n 0 : Non.\n 1 : Oui.', '',0) ";
986                        echo traite_rqt($rqt, "insert pmb_show_permalink=0 into parameters");
987                }
988
989                //AB - Ajout du champ pour choix d'un template d'export pour les flux RSS
990                $rqt = "ALTER TABLE rss_flux ADD tpl_rss_flux INT(11) UNSIGNED NOT NULL DEFAULT 0";
991                echo traite_rqt($rqt,"ALTER TABLE rss_flux ADD tpl_rss_flux INT(11) UNSIGNED NOT NULL DEFAULT 0 ");
992
993                //DG - Parametre pour afficher ou non l'emprunteur précédent dans la fiche exemplaire
994                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='expl_show_lastempr' "))==0){
995                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion) VALUES (0, 'pmb', 'expl_show_lastempr', '1', 'Afficher l\'emprunteur précédent sur la fiche exemplaire ? \n 0 : Non.\n 1 : Oui.', '',0) ";
996                        echo traite_rqt($rqt, "insert pmb_expl_show_lastempr=1 into parameters");
997                }
998
999                // NG - Gestion de caisses
1000                $rqt = "CREATE TABLE cashdesk (
1001                        cashdesk_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
1002                        cashdesk_name VARCHAR(255) NOT NULL DEFAULT '',
1003                        cashdesk_autorisations VARCHAR(255) NOT NULL DEFAULT '',
1004                        cashdesk_transactypes VARCHAR(255) NOT NULL DEFAULT '',
1005                        cashdesk_cashbox INT UNSIGNED NOT NULL default 0
1006                        )";
1007                echo traite_rqt($rqt,"CREATE TABLE cashdesk");
1008
1009                $rqt = "CREATE TABLE cashdesk_locations (
1010                        cashdesk_loc_cashdesk_num  INT UNSIGNED NOT NULL default 0,
1011                        cashdesk_loc_num  INT UNSIGNED NOT NULL default 0,
1012                        PRIMARY KEY(cashdesk_loc_cashdesk_num,cashdesk_loc_num)
1013                        )";
1014                echo traite_rqt($rqt,"CREATE TABLE cashdesk_locations");
1015
1016                $rqt = "CREATE TABLE cashdesk_sections (
1017                        cashdesk_section_cashdesk_num  INT UNSIGNED NOT NULL default 0,
1018                        cashdesk_section_num  INT UNSIGNED NOT NULL default 0,
1019                        PRIMARY KEY(cashdesk_section_cashdesk_num,cashdesk_section_num)
1020                        )";
1021                echo traite_rqt($rqt,"CREATE TABLE cashdesk_sections");
1022
1023                // NG - Gestion de type de transactions
1024                $rqt = "CREATE TABLE  transactype (
1025                        transactype_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
1026                        transactype_name VARCHAR(255) NOT NULL DEFAULT '',
1027                        transactype_quick_allowed INT UNSIGNED NOT NULL default 0,
1028                        transactype_unit_price FLOAT NOT NULL default 0
1029                        )";
1030                echo traite_rqt($rqt,"CREATE TABLE transactype");
1031
1032                // NG - Mémorisation du payement des transactions
1033                $rqt = "CREATE TABLE transacash (
1034                        transacash_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
1035                        transacash_empr_num INT UNSIGNED NOT NULL default 0,
1036                        transacash_desk_num INT UNSIGNED NOT NULL default 0,
1037                        transacash_user_num INT UNSIGNED NOT NULL default 0,
1038                        transacash_date datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
1039                        transacash_sold FLOAT NOT NULL default 0,
1040                        transacash_collected FLOAT NOT NULL default 0,
1041                        transacash_rendering FLOAT NOT NULL default 0
1042                        )";
1043                echo traite_rqt($rqt,"CREATE TABLE transacash");
1044
1045                // NG - Activer la gestion de caisses en gestion financière
1046                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='gestion_financiere_caisses' "))==0){
1047                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1048                        VALUES (0, 'pmb', 'gestion_financiere_caisses', '0', 'Activer la gestion de caisses en gestion financière? \n 0 : Non.\n 1 : Oui.', '',0) ";
1049                        echo traite_rqt($rqt, "insert pmb_gestion_financiere_caisses=0 into parameters");
1050                }
1051
1052                $rqt = "ALTER TABLE transactions ADD transactype_num INT UNSIGNED NOT NULL DEFAULT 0";
1053                echo traite_rqt($rqt,"ALTER TABLE transactions ADD transactype_num INT UNSIGNED NOT NULL DEFAULT 0 ");
1054
1055                $rqt = "ALTER TABLE transactions ADD cashdesk_num INT UNSIGNED NOT NULL DEFAULT 0";
1056                echo traite_rqt($rqt,"ALTER TABLE transactions ADD cashdesk_num INT UNSIGNED NOT NULL DEFAULT 0 ");
1057
1058                $rqt = "ALTER TABLE transactions ADD transacash_num INT UNSIGNED NOT NULL DEFAULT 0";
1059                echo traite_rqt($rqt,"ALTER TABLE transactions ADD transacash_num INT UNSIGNED NOT NULL DEFAULT 0 ");
1060
1061                $rqt = "alter table users add deflt_cashdesk int NOT NULL DEFAULT 0 ";
1062                echo traite_rqt($rqt,"alter table users add deflt_cashdesk");
1063
1064                $rqt= "alter table sessions add notifications text";
1065                echo traite_rqt($rqt,"alter table sessions add notifications");
1066
1067                // AP - Ajout du paramètre de segmentation des documents numériques
1068                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='diarization_docnum' "))==0){
1069                        $rqt="insert into parametres(type_param,sstype_param,valeur_param,comment_param,section_param,gestion) values('pmb','diarization_docnum',0,'Activer la segmentation des documents numériques vidéo ou audio 0 : non activée 1 : activée','',0)";
1070                        echo traite_rqt($rqt,"INSERT INTO parametres diarization_docnum");
1071                }
1072
1073                // AP - Ajout de la table explnum_speakers
1074                $rqt = "CREATE TABLE explnum_speakers (
1075                        explnum_speaker_id int unsigned not null auto_increment primary key,
1076                        explnum_speaker_explnum_num int unsigned not null default 0,
1077                        explnum_speaker_speaker_num varchar(10) not null default '',
1078                        explnum_speaker_gender varchar(1) default '',
1079                        explnum_speaker_author int unsigned not null default 0
1080                        )";
1081                echo traite_rqt($rqt,"CREATE TABLE explnum_speakers");
1082                $rqt = "alter table explnum_speakers drop index i_ensk_explnum_num";
1083                echo traite_rqt($rqt,"alter table explnum_speakers drop index i_ensk_explnum_num");
1084                $rqt = "alter table explnum_speakers add index i_ensk_explnum_num(explnum_speaker_explnum_num)";
1085                echo traite_rqt($rqt,"alter table explnum_speakers add index i_ensk_explnum_num");
1086                $rqt = "alter table explnum_speakers drop index i_ensk_author";
1087                echo traite_rqt($rqt,"alter table explnum_speakers drop index i_ensk_author");
1088                $rqt = "alter table explnum_speakers add index i_ensk_author(explnum_speaker_author)";
1089                echo traite_rqt($rqt,"alter table explnum_speakers add index i_ensk_author");
1090
1091
1092                // AP - Ajout de la table explnum_segments
1093                $rqt = "CREATE TABLE  explnum_segments (
1094                        explnum_segment_id int unsigned not null auto_increment primary key,
1095                        explnum_segment_explnum_num int unsigned not null default 0,
1096                        explnum_segment_speaker_num int unsigned not null default 0,
1097                        explnum_segment_start double not null default 0,
1098                        explnum_segment_duration double not null default 0,
1099                        explnum_segment_end double not null default 0
1100                        )";
1101                echo traite_rqt($rqt,"CREATE TABLE explnum_segments");
1102                $rqt = "alter table explnum_segments drop index i_ensg_explnum_num";
1103                echo traite_rqt($rqt,"alter table explnum_segments drop index i_ensg_explnum_num");
1104                $rqt = "alter table explnum_segments add index i_ensg_explnum_num(explnum_segment_explnum_num)";
1105                echo traite_rqt($rqt,"alter table explnum_segments add index i_ensg_explnum_num");
1106                $rqt = "alter table explnum_segments drop index i_ensg_speaker";
1107                echo traite_rqt($rqt,"alter table explnum_segments drop index i_ensg_speaker");
1108                $rqt = "alter table explnum_segments add index i_ensg_speaker(explnum_segment_speaker_num)";
1109                echo traite_rqt($rqt,"alter table explnum_segments add index i_ensg_speaker");
1110
1111                //DG - Modification de l'emplacement du paramètre bannette_notices_template dans la zone DSI
1112                $rqt = "update parametres set type_param='dsi',section_param='' where type_param='opac' and sstype_param='bannette_notices_template' ";
1113                echo traite_rqt($rqt,"update parametres set bannette_notices_template");
1114
1115                //DG - Retour à la précédente forme de tri
1116                $rqt = "update parametres set comment_param='Tri par défaut des recherches OPAC.\nDe la forme, c_num_6 (c pour croissant, d pour décroissant, puis num ou text pour numérique ou texte et enfin l\'identifiant du champ (voir fichier xml sort.xml))' WHERE type_param='opac' AND sstype_param='default_sort'";
1117                echo traite_rqt($rqt,"update comment for param opac_default_sort");
1118
1119                //DG - Mode d'application d'un tri - Liste de tris pré-enregistrés
1120                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='default_sort_list' "))==0){
1121                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion) VALUES (0, 'opac', 'default_sort_list', '0 d_num_6,c_text_28;d_text_7', '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)','d_aff_recherche',0) " ;
1122                        echo traite_rqt($rqt,"insert opac_default_sort_list = 0 d_num_6,c_text_28;d_text_7 into parametres");
1123                }
1124
1125                //DG - Afficher le libellé du tri appliqué par défaut en résultat de recherche
1126                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='default_sort_display' "))==0){
1127                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion) VALUES (0, 'opac', 'default_sort_display', '0', 'Afficher le libellé du tri appliqué par défaut en résultat de recherche ? \n 0 : Non \n 1 : Oui','d_aff_recherche',0) " ;
1128                        echo traite_rqt($rqt,"insert opac_default_sort_display = 0 into parametres");
1129                }
1130
1131                // NG - Affichage des bannettes privées en page d'accueil de l'Opac
1132                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='show_bannettes' "))==0){
1133                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1134                        VALUES(0,'opac','show_bannettes','0','Affichage des bannettes en page d\'accueil OPAC.\n 0 : Non.\n 1 : Oui.','f_modules',0)" ;
1135                        echo traite_rqt($rqt,"insert opac_show_bannettes into parametres") ;
1136                }
1137
1138                // AB - Affichage des facettes en AJAX
1139                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='facettes_ajax' "))==0){
1140                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1141                        VALUES(0,'opac','facettes_ajax','1','Charger les facettes en ajax\n0 : non\n1 : oui','c_recherche',0)" ;
1142                        echo traite_rqt($rqt,"insert opac_facettes_ajax into parametres") ;
1143                }
1144
1145                // DB - Modification index sur table notices_mots_global_index
1146                set_time_limit(0);
1147                pmb_mysql_query("set wait_timeout=28800", $dbh);
1148                if (pmb_mysql_result(pmb_mysql_query("select count(*) from notices"),0,0) > 15000){
1149                        $rqt = "truncate table notices_fields_global_index";
1150                        echo traite_rqt($rqt,"truncate table notices_fields_global_index");
1151
1152                        $rqt = "truncate table notices_mots_global_index";
1153                        echo traite_rqt($rqt,"truncate table notices_mots_global_index");
1154
1155                        // Info de réindexation
1156                        $rqt = " select 1 " ;
1157                        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> ") ;
1158                }
1159                $rqt = 'alter table notices_mots_global_index drop primary key';
1160                echo traite_rqt($rqt, 'alter table notices_mots_global_index drop primary key');
1161                $rqt = 'alter table notices_mots_global_index add primary key (id_notice, code_champ, num_word, position, code_ss_champ)';
1162                echo traite_rqt($rqt, 'alter table notices_mots_global_index add primary key');
1163
1164                //AB
1165                $rqt = "ALTER TABLE cms_build drop INDEX cms_build_index";
1166                echo traite_rqt($rqt,"alter cms_build drop index cms_build_index ");
1167                $rqt = "ALTER TABLE cms_build ADD INDEX cms_build_index (build_version_num , build_obj)";
1168                echo traite_rqt($rqt,"alter cms_build add index cms_build_index ON build_version_num , build_obj");
1169
1170                // AR - Paramètres pour ne pas prendre en compte les mots vides en tous les champs à l'OPAC
1171                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='search_all_keep_empty_words' "))==0){
1172                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1173                        VALUES(0,'opac','search_all_keep_empty_words','1','Conserver les mots vides pour les autorités dans la recherche tous les champs\n0 : non\n1 : oui','c_recherche',0)" ;
1174                        echo traite_rqt($rqt,"insert opac_search_all_keep_empty_words into parametres") ;
1175                }
1176
1177                // NG - Paramètre pour activer le piège en prêt si l'emprunteur a déjà emprunté l'exemplaire
1178                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='pret_already_loaned' "))==0){
1179                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1180                        VALUES(0,'pmb','pret_already_loaned','0','Activer le piège en prêt si le document a déjà été emprunté par le lecteur. Nécessite l\'activation de l\'archivage des prêts\n0 : non\n1 : oui','',0)" ;
1181                        echo traite_rqt($rqt,"insert pmb_pret_already_loaned into parametres") ;
1182                }
1183
1184                //DB - Ajout d'index
1185                set_time_limit(0);
1186                pmb_mysql_query("set wait_timeout=28800", $dbh);
1187
1188                $rqt = "alter table abts_abts drop index i_date_fin";
1189                echo traite_rqt($rqt,"alter table abts_abts drop index i_date_fin");
1190                $rqt = "alter table abts_abts add index i_date_fin (date_fin)";
1191                echo traite_rqt($rqt,"alter table abts_abts add index i_date_fin");
1192
1193                $rqt = "alter table cms_editorial_types drop index i_editorial_type_element";
1194                echo traite_rqt($rqt,"alter table cms_editorial_types drop index i_editorial_type_element");
1195                $rqt = "alter table cms_editorial_types add index i_editorial_type_element (editorial_type_element)";
1196                echo traite_rqt($rqt,"alter table cms_editorial_types add index i_editorial_type_element");
1197
1198                $rqt = "alter table cms_editorial_custom drop index i_num_type";
1199                echo traite_rqt($rqt,"alter table cms_editorial_custom drop index i_num_type");
1200                $rqt = "alter table cms_editorial_custom add index i_num_type (num_type)";
1201                echo traite_rqt($rqt,"alter table cms_editorial_custom add index i_num_type");
1202
1203                $rqt = "alter table cms_build drop index i_build_parent_build_version_num";
1204                echo traite_rqt($rqt,"alter table cms_build drop index i_build_parent_build_version_num");
1205                $rqt = "alter table cms_build add index i_build_parent_build_version_num (build_parent,build_version_num)";
1206                echo traite_rqt($rqt,"alter table cms_build add index i_build_parent_build_version_num");
1207
1208                $rqt = "alter table cms_build drop index i_build_type_build_version_num";
1209                echo traite_rqt($rqt,"alter table cms_build drop index i_build_type_build_version_num");
1210                $rqt = "alter table cms_build add index i_build_parent_build_version_num (build_type,build_version_num)";
1211                echo traite_rqt($rqt,"alter table cms_build add index i_build_type_build_version_num");
1212
1213                $rqt = "alter table cms_build drop index i_build_obj_build_version_num";
1214                echo traite_rqt($rqt,"alter table cms_build drop index i_build_obj_build_version_num");
1215                $rqt = "alter table cms_build add index i_build_obj_build_version_num (build_obj,build_version_num)";
1216                echo traite_rqt($rqt,"alter table cms_build add index i_build_obj_build_version_num");
1217
1218                $rqt = "alter table notices_fields_global_index drop index i_code_champ_code_ss_champ";
1219                echo traite_rqt($rqt,"alter table notices_fields_global_index drop index i_code_champ_code_ss_champ");
1220                $rqt = "alter table notices_fields_global_index add index i_code_champ_code_ss_champ (code_champ,code_ss_champ)";
1221                echo traite_rqt($rqt,"alter table notices_fields_global_index add index i_code_champ_code_ss_champ");
1222
1223                $rqt = "alter table notices_mots_global_index drop index i_code_champ_code_ss_champ_num_word";
1224                echo traite_rqt($rqt,"alter table notices_mots_global_index drop index i_code_champ_code_ss_champ_num_word");
1225                $rqt = "alter table notices_mots_global_index add index i_code_champ_code_ss_champ_num_word (code_champ,code_ss_champ,num_word)";
1226                echo traite_rqt($rqt,"alter table notices_mots_global_index add index i_code_champ_code_ss_champ_num_word");
1227
1228                // Activation des recherches exemplaires voisins
1229                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='allow_voisin_search' "))==0){
1230                        $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1231                                        VALUES (NULL, 'opac', 'allow_voisin_search', '0', 'Activer la recherche des exemplaires dont la cote est proche:\n 0 : non \n 1 : oui', 'c_recherche', '0')";
1232                        echo traite_rqt($rqt,"insert opac_allow_voisin_search='0' into parametres ");
1233                }
1234
1235                // MHo - Paramètre pour indiquer le nombre de notices similaires à afficher à l'opac
1236                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='nb_notices_similaires' "))==0){
1237                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
1238                        VALUES (0, 'opac', 'nb_notices_similaires', '6', 'Nombre de notices similaires affichées lors du dépliage d\'une notice.\nValeur max = 6.','e_aff_notice',0)";
1239                        echo traite_rqt($rqt,"insert opac_nb_notices_similaires='6' into parametres");
1240                }
1241                // MHo - Paramètre pour rendre indépendant l'affichage réduit des notices similaires par rapport aux notices pliées
1242                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='notice_reduit_format_similaire' "))==0){
1243                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
1244                        VALUES (0, 'opac', 'notice_reduit_format_similaire', '1', 'Format d\'affichage des réduits de notices similaires :\n 0 = titre+auteur principal\n 1 = titre+auteur principal+date édition\n 2 = titre+auteur principal+date édition + ISBN\n 3 = titre seul\n P 1,2,3 = tit+aut+champs persos id 1 2 3\n E 1,2,3 = tit+aut+édit+champs persos id 1 2 3\n T = tit1+tit4\n 4 = titre+titre parallèle+auteur principal\n H 1 = id d\'un template de notice','e_aff_notice',0)";
1245                        echo traite_rqt($rqt,"insert opac_notice_reduit_format_similaire='0' into parametres");
1246                }
1247
1248                //AR - Paramètres d'écretage des résultats de recherche
1249                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='search_noise_limit_type' "))==0){
1250                        $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1251                                        VALUES (NULL, 'opac', 'search_noise_limit_type', '0', 'Ecrêter les résulats de recherche en fonction de la pertinence. \n0 : Non \n1 : Retirer du résultat tout ce qui est en dessous de la moyenne - l\'écart-type\n2,ratio : Retirer du résultat tout ce qui est en dessous de la moyenne - un ratio de l\'écart-type (ex: 2,1.96)\n3,ratio : Retirer du résultat tout ce qui est dessous d\'un ratio de la pertinence max (ex: 3,0.25 élimine tout ce qui est inférieur à 25% de la plus forte pertinence)' , 'c_recherche', '0')";
1252                        echo traite_rqt($rqt,"insert opac_search_noise_limit_type='0' into parametres ");
1253                }
1254
1255                //AR - Prise en compte de la fréquence d'apparition d'un mot dans le fonds pour le calcul de pertinence
1256                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='search_relevant_with_frequency' "))==0){
1257                        $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1258                                        VALUES (NULL, 'opac', 'search_relevant_with_frequency', '0', 'Utiliser la fréquence d\'apparition des mots dans les notices pour le calcul de la pertinence.\n0 : Non \n1 : Oui' , 'c_recherche', '0')";
1259                        echo traite_rqt($rqt,"insert opac_search_relevant_with_frequency='0' into parametres ");
1260                }
1261
1262                //DG - Calcul de la prolongation d'adhésion à partir de la date de fin d'adhésion ou la date du jour
1263                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'empr' and sstype_param='prolong_calc_date_adhes_depassee' "))==0){
1264                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion) VALUES (0, 'empr', 'prolong_calc_date_adhes_depassee', '0', 'Si la date d\'adhésion est dépassée, le calcul de la prolongation se fait à partir de :\n 0 : la date de fin d\'adhésion\n 1 : la date du jour','',0) " ;
1265                        echo traite_rqt($rqt,"insert empr_prolong_calc_date_adhes_depassee = 0 into parametres");
1266                }
1267
1268                //DG - Modification du commentaire du paramètre pmb_notice_reduit_format pour les améliorations
1269                $rqt = "update parametres set comment_param = 'Format d\'affichage des réduits de notices :\n 0 = titre+auteur principal\n 1 = titre+auteur principal+date édition\n 2 = titre+auteur principal+date édition + ISBN\n 3 = titre seul\n P 1,2,3 = tit+aut+champs persos id 1 2 3\n E 1,2,3 = tit+aut+édit+champs persos id 1 2 3\n T = tit1+tit4\n 4 = titre+titre parallèle+auteur principal\n H 1 = id d\'un template de notice' where type_param='pmb' and sstype_param='notice_reduit_format'";
1270                echo traite_rqt($rqt,"update parametre pmb_notice_reduit_format");
1271
1272                //DG - Périodicité d'envoi par défaut en création de bannette privée (en jours)
1273                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='bannette_priv_periodicite' "))==0){
1274                        $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion) VALUES (0, 'opac', 'bannette_priv_periodicite', '15', 'Périodicité d\'envoi par défaut en création de bannette privée (en jours)','l_dsi',0) " ;
1275                        echo traite_rqt($rqt,"insert opac_bannette_priv_periodicite = 15 into parametres");
1276                }
1277
1278                //DG - Modification du commentaire opac_notices_format
1279                $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 \n 4 : ISBD et Public \n 5 : ISBD et Public avec ISBD en premier \n 8 : Réduit (titre+auteurs) seul' where type_param='opac' and sstype_param='notices_format'" ;
1280                echo traite_rqt($rqt,"UPDATE parametres SET comment_param for opac_notices_format") ;
1281
1282
1283                //DB - Modifications et ajout de commentaires pour les paramètres décrivant l'autoindexation
1284                $rqt = "UPDATE parametres SET valeur_param=replace(valeur_param,',',';'), comment_param = 'Liste des champs de notice à utiliser pour l\'indexation automatique.\n\n";
1285                $rqt.= "Syntaxe: nom_champ=poids_indexation;\n\n";
1286                $rqt.= "Les noms des champs sont ceux précisés dans le fichier XML \"pmb/includes/notice/notice.xml\"\n";
1287                $rqt.= "Le poids de l\'indexation est une valeur de 0.00 à 1. (Si rien n\'est précisé, le poids est de 1)\n\n";
1288                $rqt.= "Exemple :\n\n";
1289                $rqt.= "tit1=1.00;n_resume=0.5;' ";
1290                $rqt.= "WHERE type_param = 'thesaurus' and sstype_param='auto_index_notice_fields' ";
1291                echo traite_rqt($rqt,"UPDATE parametres SET comment_param for thesaurus_auto_index_notice_fields") ;
1292
1293                $rqt = "UPDATE parametres SET comment_param = 'Surchage des paramètres de recherche de l\'indexation automatique.\n";
1294                $rqt.= "Syntaxe: param=valeur;\n\n";
1295                $rqt.= "Listes des parametres:\n\n";
1296                $rqt.= "max_relevant_words = 20 (nombre maximum de mots et de lemmes de la notice à prendre en compte pour le calcul)\n\n";
1297                $rqt.= "autoindex_deep_ratio = 0.05 (ratio sur la profondeur du terme dans le thésaurus)\n";
1298                $rqt.= "autoindex_stem_ratio = 0.80 (ratio de pondération des lemmes / aux mots)\n\n";
1299                $rqt.= "autoindex_max_up_distance = 2 (distance maximum de recherche dans les termes génériques du thésaurus)\n";
1300                $rqt.= "autoindex_max_up_ratio = 0.01 (pondération sur les termes génériques)\n\n";
1301                $rqt.= "autoindex_max_down_distance = 2 (distance maximum de recherche dans les termes spécifiques du thésaurus)\n";
1302                $rqt.= "autoindex_max_down_ratio = 0.01 (pondération sur les termes spécifiques)\n\n";
1303                $rqt.= "autoindex_see_also_ratio = 0.01 (surpondération sur les termes voir aussi du thésaurus)\n\n";
1304                $rqt.= "autoindex_distance_type = 1 (calcul de distance de 1 à 4)\n";
1305                $rqt.= "autoindex_distance_ratio = 0.50 (ratio de pondération sur la distance entre les mots trouvés et les termes d\'une expression du thésaurus)\n\n";
1306                $rqt.= "max_relevant_terms = 10 (nombre maximum de termes retournés)' ";
1307                $rqt.= "WHERE type_param = 'thesaurus' and sstype_param='auto_index_search_param' ";
1308                echo traite_rqt($rqt,"UPDATE parametres SET comment_param for thesaurus_auto_index_search_param") ;
1309
1310                // MHo - Ajout des attributs de l'oeuvre dans la table des titres uniformes
1311                $rqt = "ALTER TABLE titres_uniformes ADD tu_num_author BIGINT(11) UNSIGNED NOT NULL DEFAULT 0 ";
1312                echo traite_rqt($rqt,"alter titres_uniformes add tu_num_author");
1313                $rqt = "ALTER TABLE titres_uniformes ADD tu_forme VARCHAR(255) NOT NULL DEFAULT '' ";
1314                echo traite_rqt($rqt,"alter titres_uniformes add tu_forme");
1315                $rqt = "ALTER TABLE titres_uniformes ADD tu_date VARCHAR(50) NOT NULL DEFAULT '' ";
1316                echo traite_rqt($rqt,"alter titres_uniformes add tu_date");
1317                $rqt = "ALTER TABLE titres_uniformes ADD tu_date_date DATE NOT NULL DEFAULT '0000-00-00' ";
1318                echo traite_rqt($rqt,"alter titres_uniformes add tu_date_date");
1319                $rqt = "ALTER TABLE titres_uniformes ADD tu_sujet VARCHAR(255) NOT NULL DEFAULT '' ";
1320                echo traite_rqt($rqt,"alter titres_uniformes add tu_sujet");
1321                $rqt = "ALTER TABLE titres_uniformes ADD tu_lieu VARCHAR(255) NOT NULL DEFAULT '' ";
1322                echo traite_rqt($rqt,"alter titres_uniformes add tu_lieu");
1323                $rqt = "ALTER TABLE titres_uniformes ADD tu_histoire TEXT NULL ";
1324                echo traite_rqt($rqt,"alter titres_uniformes add tu_histoire");
1325                $rqt = "ALTER TABLE titres_uniformes ADD tu_caracteristique TEXT NULL ";
1326                echo traite_rqt($rqt,"alter titres_uniformes add tu_caracteristique");
1327                $rqt = "ALTER TABLE titres_uniformes ADD tu_public VARCHAR(255) NOT NULL DEFAULT '' ";
1328                echo traite_rqt($rqt,"alter titres_uniformes add tu_public");
1329                $rqt = "ALTER TABLE titres_uniformes ADD tu_contexte TEXT NULL ";
1330                echo traite_rqt($rqt,"alter titres_uniformes add tu_contexte");
1331                $rqt = "ALTER TABLE titres_uniformes ADD tu_coordonnees VARCHAR(255) NOT NULL DEFAULT '' ";
1332                echo traite_rqt($rqt,"alter titres_uniformes add tu_coordonnees");
1333                $rqt = "ALTER TABLE titres_uniformes ADD tu_equinoxe VARCHAR(255) NOT NULL DEFAULT '' ";
1334                echo traite_rqt($rqt,"alter titres_uniformes add tu_equinoxe");
1335                $rqt = "ALTER TABLE titres_uniformes ADD tu_completude INT(2) UNSIGNED NOT NULL DEFAULT 0 ";
1336                echo traite_rqt($rqt,"alter titres_uniformes add tu_completude");
1337
1338                // AR - Retrait du paramètres juste commité : Activation des recherches exemplaires voisins
1339                $rqt="delete from parametres where type_param= 'opac' and sstype_param='allow_voisin_search'";
1340                echo traite_rqt($rqt,"delete from parametres opac_allow_voisin_search");
1341
1342                // AR - Modification du paramètre opac_allow_simili
1343                $rqt="update parametres set comment_param = 'Activer les recherches similaires sur une notice :\n0 : Non\n1 : Activer la recherche \"Dans le même rayon\" et \"Peut-être aimerez-vous\"\n2 : Activer seulement la recherche \"Dans le même rayon\"\n3 : Activer seulement la recherche \"Peut-être aimerez-vous\"', section_param = 'e_aff_notice' where type_param='opac' and sstype_param='allow_simili_search'";
1344                echo traite_rqt($rqt,"update parametres set opac_allow_simili_search");
1345
1346                // NG - Affichage des bannettes en page d'accueil de l'Opac     selon la banette
1347                $rqt = "ALTER TABLE bannettes ADD bannette_opac_accueil INT UNSIGNED NOT NULL default 0 ";
1348                echo traite_rqt($rqt,"alter table bannettes add bannette_opac_accueil");
1349
1350                // AR - DSI abonné en page d'accueil
1351                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='show_subscribed_bannettes' "))==0){
1352                        $rqt = "insert into parametres ( type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1353                        VALUES('opac','show_subscribed_bannettes',0,'Affichage des bannettes auxquelles le lecteur est abonné en page d\'accueil OPAC :\n0 : Non.\n1 : Oui.','f_modules',0)" ;
1354                        echo traite_rqt($rqt,"insert opac_show_subscribed_bannettes=0 into parametres") ;
1355                }
1356
1357                // AR - DSI publique sélectionné en page d'accueil
1358                if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='show_public_bannettes' "))==0){
1359                        $rqt = "insert into parametres ( type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1360                        VALUES('opac','show_public_bannettes',0,'Affichage des bannettes sélectionnées en page d\'accueil OPAC :\n0 : Non.\n1 : Oui.','f_modules',0)" ;
1361                        echo traite_rqt($rqt,"insert show_public_bannettes=0 into parametres") ;
1362                }
1363
1364                // AR - Retrait du paramètre perio_a2z_enrichissements, on ne l'a jamais utilisé car on a finalement ramené le paramétrage par un connecteur
1365                $rqt="delete from parametres where type_param= 'opac' and sstype_param='perio_a2z_enrichissements'";
1366                echo traite_rqt($rqt,"delete from parametres opac_perio_a2z_enrichissements");
1367
1368                //DG - Paramètre non utilisé
1369                $rqt = "delete from parametres where sstype_param='confirm_resa' and type_param='opac' " ;
1370                $res = pmb_mysql_query($rqt, $dbh) ;
1371
1372                //DG - Paramètre non utilisé
1373                $rqt = "delete from parametres where sstype_param='authors_aut_rec_per_page' and type_param='opac' " ;
1374                $res = pmb_mysql_query($rqt, $dbh) ;
1375
1376                // +-------------------------------------------------+
1377                echo "</table>";
1378                $rqt = "update parametres set valeur_param='".$action."' where type_param='pmb' and sstype_param='bdd_version' " ;
1379                $res = pmb_mysql_query($rqt, $dbh) ;
1380                echo "<strong><font color='#FF0000'>".$msg[1807]." ".number_format($action, 2, ',', '.')."%</font></strong><br />";
1381                $action=$action+$increment;
1382                //echo form_relance ("v5.15");
1383
1384        //break;
1385        //case "v.5.15":       
1386                echo "<table ><tr><th>".$msg['admin_misc_action']."</th><th>".$msg['admin_misc_resultat']."</th></tr>";
1387                        // +-------------------------------------------------+
1388                        // AB - Paramètre de modification du workflow d'une demande
1389                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'demandes' and sstype_param='init_workflow' "))==0){
1390                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1391                                VALUES('demandes','init_workflow',0,'Initialisation du workflow de la demande.\n 0 : Validation avant tout\n 1 : Validation avant tout et attribution au validateur\n 2 : Attribution avant tout','',0)";
1392                                echo traite_rqt($rqt,"insert demandes_init_workflow=0 into parametres") ;
1393                        }
1394
1395                        // MHo - Paramètre pour automatiser ou non la création de notice lors de l'enregistrement d'une demande
1396                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'demandes' and sstype_param='notice_auto' "))==0){
1397                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
1398                                VALUES (0, 'demandes', 'notice_auto', '0', 'Création automatique de la notice de demande :\n0 : Non\n1 : Oui','',0)";
1399                                echo traite_rqt($rqt,"insert demandes_notice_auto='0' into parametres");
1400                        }
1401
1402                        // MHo - Paramètre pour la création par défaut d'une action lors de la validation d'une demande
1403                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'demandes' and sstype_param='default_action' "))==0){
1404                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
1405                                VALUES (0, 'demandes', 'default_action', '1', 'Création par défaut d\'une action lors de la validation de la demande :\n0 : Non\n1 : Oui','',0)";
1406                                echo traite_rqt($rqt,"insert demandes_default_action='1' into parametres");
1407                        }
1408
1409                        // MHo - Ajout d'une colonne "origine" de l'utilisateur dans la table audit : 0 = gestion, 1 = opac
1410                        $rqt = "ALTER TABLE audit ADD type_user INT(1) UNSIGNED NOT NULL DEFAULT 0 ";
1411                        echo traite_rqt($rqt,"alter audit add type_user");
1412
1413                        // AR - Ajout d'une colonne pour stocker les actions autorisées par type de demande
1414                        $rqt = "alter table demandes_type add allowed_actions text not null";
1415                        echo traite_rqt($rqt,"alter table demandes_type add allowed_actions");
1416
1417                        //DG - Optimisation
1418                        $rqt = "show fields from notices_fields_global_index";
1419                        $res = pmb_mysql_query($rqt);
1420                        $exists = false;
1421                        if(pmb_mysql_num_rows($res)){
1422                                while($row = pmb_mysql_fetch_object($res)){
1423                                        if($row->Field == "authority_num"){
1424                                                $exists = true;
1425                                                break;
1426                                        }
1427                                }
1428                        }
1429                        if(!$exists){
1430                                if (pmb_mysql_result(pmb_mysql_query("select count(*) from notices"),0,0) > 15000){
1431                                        $rqt = "truncate table notices_fields_global_index";
1432                                        echo traite_rqt($rqt,"truncate table notices_fields_global_index");
1433
1434                                        // Info de réindexation
1435                                        $rqt = " select 1 " ;
1436                                        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> ") ;
1437                                }
1438
1439                                // JP - Synchronisation RDF
1440                                $rqt = "ALTER TABLE notices_fields_global_index ADD authority_num VARCHAR(50) NOT NULL DEFAULT '0'";
1441                                echo traite_rqt($rqt,"alter table notices_fields_global_index add authority_num");
1442                        }
1443
1444                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='synchro_rdf' "))==0){
1445                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1446                                                VALUES (0, 'pmb', 'synchro_rdf', '0', 'Activer la synchronisation rdf\n 0 : non \n 1 : oui (l\'activation de ce paramètre nécessite une ré-indexation)','',0) " ;
1447                                echo traite_rqt($rqt,"insert pmb_synchro_rdf = 0 into parametres");
1448                        }
1449
1450                        // AB Modification de la valeur par défaut du parametre init_workflow
1451                        $rqt="UPDATE parametres SET valeur_param='1' WHERE type_param='demandes' AND sstype_param='init_workflow'";
1452                        echo traite_rqt($rqt,"update parametres set demandes_init_workflow=1");
1453                        // AB Changement du type de champ pour date_note
1454                        $rqt = "ALTER TABLE demandes_notes CHANGE date_note date_note DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'";
1455                        echo traite_rqt($rqt,"alter demandes_notes CHANGE date_note");
1456                        // MHo - Ajout d'une colonne "notes_read_gestion" pour indiquer si une note a été lue en gestion ou pas : 0 = lue, 1 = non lue
1457                        $rqt = "ALTER TABLE demandes_notes ADD notes_read_gestion INT(1) UNSIGNED NOT NULL DEFAULT 0 ";
1458                        echo traite_rqt($rqt,"alter demandes_notes add note_read_gestion");
1459                        // MHo - Ajout d'une colonne "actions_read_gestion" pour indiquer si une action a été lue en gestion ou pas : 0 = lue, 1 = non lue
1460                        $rqt = "ALTER TABLE demandes_actions ADD actions_read_gestion INT(1) UNSIGNED NOT NULL DEFAULT 0 ";
1461                        echo traite_rqt($rqt,"alter demandes_actions add actions_read_gestion");
1462                        // MHo - Ajout d'une colonne "dmde_read_gestion" pour indiquer si une demande contient des éléments nouveaux (actions, notes) ou pas : 0 = lue, 1 = non lue
1463                        $rqt = "ALTER TABLE demandes ADD dmde_read_gestion INT(1) UNSIGNED NOT NULL DEFAULT 0 ";
1464                        echo traite_rqt($rqt,"alter demandes add dmde_read_gestion");
1465
1466                        // MHo - Ajout d'une colonne "reponse_finale" contenant la réponse finale qui sera intégrée à la faq
1467                        $rqt = "ALTER TABLE demandes ADD reponse_finale TEXT NULL";
1468                        echo traite_rqt($rqt,"alter demandes add reponse_finale");
1469
1470                        // DG - Le super user doit avoir accès à tous les établissements
1471                        $rqt = "UPDATE entites SET autorisations=CONCAT(' 1', autorisations) WHERE type_entite='1' AND autorisations NOT LIKE '% 1 %'";
1472                        echo traite_rqt($rqt, 'UPDATE entites SET autorisations=CONCAT(" 1",autorisations) for super user');
1473
1474                        // AR - Module FAQ - Paramètre d'activation
1475                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'faq' and sstype_param='active' "))==0){
1476                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1477                                        VALUES (0, 'faq', 'active', '0', 'Module \'FAQ\' activé.\n 0 : Non.\n 1 : Oui.', '',0) ";
1478                                echo traite_rqt($rqt, "insert faq_active=0 into parameters");
1479                        }
1480
1481                        // AR - Création de la table des types pour la FAQ
1482                        $rqt = " CREATE TABLE faq_types(
1483                                id_type int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
1484                                libelle_type varchar(255) NOT NULL default '',
1485                        PRIMARY KEY  (id_type) )";
1486                        echo traite_rqt($rqt,"CREATE TABLE faq_types") ;
1487
1488                        // AR - Création de la table des thèmes pour la FAQ
1489                        $rqt = " CREATE TABLE faq_themes(
1490                                id_theme int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
1491                                libelle_theme varchar(255) NOT NULL default '',
1492                    PRIMARY KEY  (id_theme))";
1493                        echo traite_rqt($rqt,"CREATE TABLE faq_themes") ;
1494
1495                        // AR - Création de la table pour la FAQ
1496                        $rqt = "create table faq_questions(
1497                                id_faq_question int(10) unsigned not null auto_increment primary key,
1498                                faq_question_num_type int(10) unsigned not null default 0,
1499                                faq_question_num_theme int(10) unsigned not null default 0,
1500                                faq_question_num_demande int(10) unsigned not null default 0,
1501                                faq_question_question text not null,
1502                                faq_question_question_userdate varchar(255) not null default '',
1503                                faq_question_question_date datetime not null default '0000-00-00 00:00:00',
1504                                faq_question_answer text not null,
1505                                faq_question_answer_userdate varchar(255) not null default '',
1506                                faq_question_answer_date datetime not null default '0000-00-00 00:00:00')";
1507                        echo traite_rqt($rqt,"create table faq_questions");
1508
1509                        // AR - Création de la table de descripteurs pour la FAQ
1510                        $rqt = "create table faq_questions_categories(
1511                                num_faq_question int(10) unsigned not null default 0,
1512                                num_categ int(10) unsigned not null default 0,
1513                                index i_faq_categ(num_faq_question,num_categ))";
1514                        echo traite_rqt($rqt,"create table faq_categories");
1515
1516                        // AR - Ajout de l'ordre dans la table de descripteurs pour la FAQ
1517                        $rqt = "alter table faq_questions_categories add categ_order int(10) unsigned not null default 0";
1518                        echo traite_rqt($rqt,"alter table faq_questions_categories add categ_order");
1519
1520                        // AR - Ajout d'un statut pour les questions de la FAQ (statut de publication 0/1)
1521                        $rqt = "alter table faq_questions add faq_question_statut int(10) unsigned not null default 0";
1522                        echo traite_rqt($rqt,"alter table faq_questions add faq_question_statut");
1523
1524                        // AR indexons correctement la FAQ - Table de mots
1525                        $rqt = "create table if not exists faq_questions_words_global_index(
1526                                id_faq_question int unsigned not null default 0,
1527                                code_champ int unsigned not null default 0,
1528                                code_ss_champ int unsigned not null default 0,
1529                                num_word int unsigned not null default 0,
1530                                pond int unsigned not null default 100,
1531                                position int unsigned not null default 1,
1532                                field_position int unsigned not null default 1,
1533                                primary key (id_faq_question,code_champ,num_word,position,code_ss_champ),
1534                                index code_champ(code_champ),
1535                                index i_id_mot(num_word,id_faq_question),
1536                                index i_code_champ_code_ss_champ_num_word(code_champ,code_ss_champ,num_word))";
1537                        echo traite_rqt($rqt,"create table faq_questions_words_global_index");
1538
1539                        // AR indexons correctement la FAQ - Table de champs
1540                        $rqt = "create table if not exists faq_questions_fields_global_index(
1541                                id_faq_question int unsigned not null default 0,
1542                                code_champ int(3) unsigned not null default 0,
1543                                code_ss_champ int(3) unsigned not null default 0,
1544                                ordre int(4) unsigned not null default 0,
1545                                value text not null,
1546                                pond int(4) unsigned not null default 100,
1547                                lang varchar(10) not null default '',
1548                                authority_num varchar(50) not null default 0,
1549                                primary key(id_faq_question,code_champ,code_ss_champ,lang,ordre),
1550                                index i_value(value(300)),
1551                                index i_code_champ_code_ss_champ(code_champ,code_ss_champ))";
1552                        echo traite_rqt($rqt,"create table faq_questions_fields_global_index ");
1553
1554                        // MHo - Renommage de la colonne "action_read" en "action_read_opac" : 0 = lue, 1 = non lue
1555                        $rqt = "ALTER TABLE demandes_actions CHANGE actions_read actions_read_opac INT not null default 0";
1556                        echo traite_rqt($rqt,"alter demandes_actions change actions_read actions_read_opac");
1557
1558                        // MHo - Ajout d'une colonne "dmde_read_opac" pour alerter à l'opac en cas d'éléments nouveaux (actions, notes) ou pas : 0 = lue, 1 = non lue
1559                        $rqt = "ALTER TABLE demandes ADD dmde_read_opac INT(1) UNSIGNED NOT NULL DEFAULT 0 ";
1560                        echo traite_rqt($rqt,"alter demandes add dmde_read_opac");
1561
1562                        // MHo - Ajout d'une colonne "notes_read_opac" pour alerter à l'opac en cas de nouveauté : 0 = lue, 1 = non lue
1563                        $rqt = "ALTER TABLE demandes_notes ADD notes_read_opac INT(1) UNSIGNED NOT NULL DEFAULT 0 ";
1564                        echo traite_rqt($rqt,"alter demandes_notes add notes_read_opac");
1565
1566                        // DB -Ajout d'une fonction spécifique pour génération de code-barres lecteurs
1567                        $rqt = "update parametres set comment_param='Numéro de carte de lecteur automatique ?\n 0: Non (si utilisation de cartes pré-imprimées)\n";
1568                        $rqt.= " 1: Oui, entièrement numérique\n 2,a,b,c: Oui, avec préfixe: a=longueur du préfixe, b=nombre de chiffres de la partie numérique, c=préfixe fixé (facultatif)\n";
1569                        $rqt.= " 3,fonction: fonction de génération spécifique dans fichier nommé de la même façon, à placer dans pmb/circ/empr' ";
1570                        $rqt.= " where type_param='pmb' and sstype_param='num_carte_auto'";
1571                        echo traite_rqt($rqt,"update parametre pmb_num_carte_auto ");
1572
1573                        // AB On augmente la taille des champs pour le num demandeur ....
1574                        $rqt = "ALTER TABLE demandes CHANGE num_demandeur num_demandeur INT( 10 ) UNSIGNED NOT NULL DEFAULT 0";
1575                        echo traite_rqt($rqt,"alter demandes change num_demandeur");
1576                        $rqt = "ALTER TABLE demandes_actions CHANGE actions_num_user actions_num_user INT( 10 ) UNSIGNED NOT NULL DEFAULT 0";
1577                        echo traite_rqt($rqt,"alter demandes_actions change actions_num_user");
1578                        $rqt = "ALTER TABLE demandes_notes CHANGE notes_num_user notes_num_user INT( 10 ) UNSIGNED NOT NULL DEFAULT 0";
1579                        echo traite_rqt($rqt,"alter demandes_notes change notes_num_user");
1580
1581                        //DB - Génération code-barres pour les inscritions Web
1582                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='websubscribe_num_carte_auto' "))==0){
1583                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion) ";
1584                                $rqt.= "VALUES (NULL, 'opac', 'websubscribe_num_carte_auto', '', 'Numéro de carte de lecteur automatique ?\n 2,a,b,c: Oui avec préfixe: a=longueur du préfixe, b=nombre de chiffres de la partie numérique, c=préfixe fixé (facultatif)\n 3,fonction: fonction de génération spécifique dans fichier nommé de la même façon, à placer dans pmb/opac_css/circ/empr', 'f_modules', '0')" ;
1585                                echo traite_rqt($rqt,"insert opac_websubscribe_num_carte_auto into parametres") ;
1586                        }
1587
1588                        // AB
1589                        $rqt = "CREATE TABLE IF NOT EXISTS onto_uri (
1590                                        uri_id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
1591                                        uri VARCHAR(255) NOT NULL UNIQUE DEFAULT '' )";
1592                        echo traite_rqt($rqt,"create table onto_uri") ;
1593
1594                        //DB - Génération de cartes lecteurs sur imprimante ticket
1595                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pdfcartelecteur' and sstype_param='printer_card_handler' "))==0){
1596                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion) VALUES (0, 'pdfcartelecteur', 'printer_card_handler', '', 'Gestionnaire d\'impression :\n\n 1 = script \"print_cb.php\"\n 2 = applet jzebra\n 3 = requête ajax','',0)";
1597                                echo traite_rqt($rqt,"insert pmb_printer_card_handler into parametres");
1598                        }
1599                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pdfcartelecteur' and sstype_param='printer_card_name' "))==0){
1600                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion) VALUES (0, 'pdfcartelecteur', 'printer_card_name', '', 'Nom de l\'imprimante.','',0)";
1601                                echo traite_rqt($rqt,"insert pmb_printer_card_options into parametres");
1602                        }
1603                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pdfcartelecteur' and sstype_param='printer_card_url' "))==0){
1604                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion) VALUES (0, 'pdfcartelecteur', 'printer_card_url', '', 'Adresse de l\'imprimante.','',0)";
1605                                echo traite_rqt($rqt,"insert pmb_printer_card_url into parametres");
1606                        }
1607
1608                        // NG - Vignette de la notice
1609                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='notice_img_folder_id' "))==0){
1610                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion) ";
1611                                $rqt.= "VALUES (NULL, 'pmb', 'notice_img_folder_id', '0', 'Identifiant du répertoire d\'upload des vignettes de notices', '', '0')" ;
1612                                echo traite_rqt($rqt,"insert pmb_notice_img_folder_id into parametres") ;
1613                        }
1614
1615                        //AR - On ajoute une colonne pour l'inscription en ligne à l'OPAC (pour conserver ce que l'on faisait)
1616                        $rqt = "alter table empr add empr_subscription_action text";
1617                        echo traite_rqt($rqt,"alter table empr add empr_subscription_action");
1618
1619                        //AR - Modification du paramètre opac_websubscribe_show
1620                        $rqt = "update parametres set comment_param = 'Afficher la possibilité de s\'inscrire en ligne ?\n0: Non\n1: Oui\n2: Oui + proposition s\'incription sur les réservations/abonnements' where type_param='opac' and sstype_param = 'websubscribe_show'";
1621                        echo traite_rqt($rqt,"update parametres opac_websubscribe_show");
1622
1623                        //AB parametre du template d'affichage des notices pour le comparateur.
1624                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='compare_notice_template' "))==0){
1625                                $rqt = "INSERT INTO parametres (type_param,sstype_param,valeur_param,comment_param,section_param,gestion) VALUES ('pmb','compare_notice_template',0,'Choix du template d\'affichage des notices en mode comparaison.','',1)";
1626                                echo traite_rqt($rqt,"insert pmb_compare_notice_template into parametres");
1627                        }
1628
1629                        //AB comparateur.
1630                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='compare_notice_nb' "))==0){
1631                                $rqt = "INSERT INTO parametres (type_param,sstype_param,valeur_param,comment_param,section_param,gestion) VALUES ('pmb','compare_notice_nb',5,'Nombre de notices à afficher et à raffraichir en mode comparaison.','',1)";
1632                                echo traite_rqt($rqt,"insert pmb_compare_notice_nb into parametres");
1633                        }
1634
1635                        //AB parametre du template d'affichage des notices pour le comparateur.
1636                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='compare_notice_active' "))==0){
1637                                $rqt = "INSERT INTO parametres (type_param,sstype_param,valeur_param,comment_param,section_param,gestion) VALUES ('opac','compare_notice_active',1,'Activer le comparateur de notices','c_recherche',0)";
1638                                echo traite_rqt($rqt,"insert opac_compare_notice_active into parametres");
1639                        }
1640                        // NG - Transfert: mémorisation de la loc d'origine des exemplaires en transfert
1641                        $rqt = "CREATE TABLE if not exists transferts_source (
1642                                trans_source_numexpl INT UNSIGNED NOT NULL default 0 ,
1643                                trans_source_numloc INT UNSIGNED NOT NULL default 0 ,
1644                                PRIMARY KEY(trans_source_numexpl))";
1645                        echo traite_rqt($rqt,"CREATE TABLE transferts_source ") ;
1646
1647                        // NG - Ajout dans les archives de prêt les localisations du pret et de la loc d'origine de l'exemplaire
1648                        $rqt = "alter table pret_archive add arc_expl_location_retour INT UNSIGNED NOT NULL default 0 AFTER arc_expl_location";
1649                        echo traite_rqt($rqt,"alter table pret_archive add arc_expl_location_retour");
1650                        $rqt = "alter table pret_archive add arc_expl_location_origine INT UNSIGNED NOT NULL default 0 AFTER arc_expl_location";
1651                        echo traite_rqt($rqt,"alter table pret_archive add arc_expl_location_origine");
1652
1653                        //DG - Augmentation de la taille du champ pour les équations
1654                        $rqt = "ALTER TABLE equations MODIFY nom_equation TEXT NOT NULL";
1655                        echo traite_rqt($rqt,"ALTER TABLE equations MODIFY nom_equation TEXT");
1656
1657                        // +-------------------------------------------------+
1658                        echo "</table>";
1659                        $rqt = "update parametres set valeur_param='".$action."' where type_param='pmb' and sstype_param='bdd_version' " ;
1660                        $res = pmb_mysql_query($rqt, $dbh) ;
1661                        echo "<strong><font color='#FF0000'>".$msg[1807]." ".number_format($action, 2, ',', '.')."%</font></strong><br />";
1662                        $action=$action+$increment;
1663                //      echo form_relance ("v5.16");
1664                //      break;
1665
1666//case "v5.16":
1667                        echo "<table ><tr><th>".$msg['admin_misc_action']."</th><th>".$msg['admin_misc_resultat']."</th></tr>";
1668                        // +-------------------------------------------------+
1669
1670                        // AR indexons correctement SKOS - Table de mots
1671                        $rqt = "create table if not exists skos_words_global_index(
1672                                id_item int unsigned not null default 0,
1673                                code_champ int unsigned not null default 0,
1674                                code_ss_champ int unsigned not null default 0,
1675                                num_word int unsigned not null default 0,
1676                                pond int unsigned not null default 100,
1677                                position int unsigned not null default 1,
1678                                field_position int unsigned not null default 1,
1679                                primary key (id_item,code_champ,num_word,position,code_ss_champ),
1680                                index code_champ(code_champ),
1681                                index i_id_mot(num_word,id_item),
1682                                index i_code_champ_code_ss_champ_num_word(code_champ,code_ss_champ,num_word))";
1683                        echo traite_rqt($rqt,"create table skos_words_global_index");
1684
1685                        // AR indexons correctement  SKOS - Table de champs
1686                        $rqt = "create table if not exists skos_fields_global_index(
1687                                id_item int unsigned not null default 0,
1688                                code_champ int(3) unsigned not null default 0,
1689                                code_ss_champ int(3) unsigned not null default 0,
1690                                ordre int(4) unsigned not null default 0,
1691                                value text not null,
1692                                pond int(4) unsigned not null default 100,
1693                                lang varchar(10) not null default '',
1694                                authority_num varchar(50) not null default 0,
1695                                primary key(id_item,code_champ,code_ss_champ,lang,ordre),
1696                                index i_value(value(300)),
1697                                index i_code_champ_code_ss_champ(code_champ,code_ss_champ))";
1698                        echo traite_rqt($rqt,"create table skos_fields_global_index ");
1699
1700                        //AB table de construction d'une vedette composée
1701                        $rqt = "CREATE TABLE IF NOT EXISTS vedette_object (
1702                                                object_type int(3) unsigned NOT NULL DEFAULT 0,
1703                                                object_id int(11) unsigned NOT NULL DEFAULT 0,
1704                                                num_vedette int(11) unsigned NOT NULL DEFAULT 0,
1705                                                subdivision varchar(50) NOT NULL default '',
1706                                                position int(3) unsigned NOT NULL DEFAULT 0,
1707                                                PRIMARY KEY (object_type, object_id, num_vedette, subdivision, position),
1708                                                INDEX i_vedette_object_object (object_type,object_id),
1709                                                INDEX i_vedette_object_vedette (num_vedette)
1710                                        ) ";
1711                        echo traite_rqt($rqt,"CREATE TABLE vedette_object") ;
1712
1713                        //AB table des identifiants de vedettes
1714                        $rqt = "CREATE TABLE IF NOT EXISTS vedette (
1715                                                id_vedette int(11) unsigned NOT NULL AUTO_INCREMENT,
1716                                                label varchar(255) NOT NULL default '',
1717                                                PRIMARY KEY (id_vedette)
1718                                        ) ";
1719                        echo traite_rqt($rqt,"CREATE TABLE vedette") ;
1720
1721                        //AP ajout de la table index_concept
1722                        $rqt = "CREATE TABLE IF NOT EXISTS index_concept (
1723                                        num_object INT UNSIGNED NOT NULL ,
1724                                        type_object INT UNSIGNED NOT NULL ,
1725                                        num_concept INT UNSIGNED NOT NULL ,
1726                                        order_concept INT UNSIGNED NOT NULL default 0 ,
1727                                        PRIMARY KEY(num_object, type_object, num_concept))";
1728                        echo traite_rqt($rqt,"create table index_concept");
1729
1730                        //AP création de la table de lien entre vedettes et autorités
1731                        $rqt = "CREATE TABLE if not exists vedette_link (
1732                                num_vedette INT UNSIGNED NOT NULL ,
1733                                num_object INT UNSIGNED NOT NULL ,
1734                                type_object INT UNSIGNED NOT NULL ,
1735                                PRIMARY KEY (num_vedette, num_object, type_object))";
1736                        echo traite_rqt($rqt,"create table vedette_link");
1737
1738                        // AP script de vérification de saisie des autorités
1739                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='autorites_verif_js' "))==0){
1740                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
1741                                                VALUES ( 'pmb', 'autorites_verif_js', '', 'Script de vérification de saisie des autorités','', 0)";
1742                                echo traite_rqt($rqt,"insert autorites_verif_js into parametres");
1743                        }
1744
1745                        //AB paramètre pour masquer/afficher la reservation par panier
1746                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='resa_cart' "))==0){
1747                                $rqt = "INSERT INTO parametres (type_param,sstype_param,valeur_param,comment_param,section_param,gestion) VALUES ('opac','resa_cart',1,'Paramètre pour masquer/afficher la reservation par panier\n0 : Non \n1 : Oui','a_general',0)";
1748                                echo traite_rqt($rqt,"insert opac_resa_cart into parametres");
1749                        }
1750
1751                        // AR - Report du paramètre activant le stemming en gestion
1752                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='search_stemming_active' "))==0){
1753                                $rqt = "insert into parametres ( type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1754                                        VALUES('pmb','search_stemming_active',0,'Activer le stemming dans la recherche\n0 : Désactiver\n1 : Activer','search',0)" ;
1755                                echo traite_rqt($rqt,"insert pmb_search_stemming_active=0 into parametres") ;
1756                        }
1757
1758                        // AR - Report du paramètre excluant des champ dans la recherche tous les champs en gestion
1759                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='search_exclude_fields' "))==0){
1760                                $rqt = "insert into parametres ( type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1761                                        VALUES('pmb','search_exclude_fields','','Identifiants des champs à exclure de la recherche tous les champs (liste dispo dans le fichier includes/indexation/champ_base.xml)','search',0)" ;
1762                                echo traite_rqt($rqt,"insert pmb_search_exclude_fields into parametres") ;
1763                        }
1764
1765                        //AR - Report du paramètre d'écretage des résultats de recherche en gestion
1766                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='search_noise_limit_type' "))==0){
1767                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1768                                        VALUES (NULL, 'pmb', 'search_noise_limit_type', '0', 'Ecrêter les résulats de recherche en fonction de la pertinence. \n0 : Non \n1 : Retirer du résultat tout ce qui est en dessous de la moyenne - l\'écart-type\n2,ratio : Retirer du résultat tout ce qui est en dessous de la moyenne - un ratio de l\'écart-type (ex: 2,1.96)\n3,ratio : Retirer du résultat tout ce qui est dessous d\'un ratio de la pertinence max (ex: 3,0.25 élimine tout ce qui est inférieur à 25% de la plus forte pertinence)' , 'search', '0')";
1769                                echo traite_rqt($rqt,"insert pmb_search_search_noise_limit_type='0' into parametres ");
1770                        }
1771
1772                        //AR - Report de la prise en compte de la fréquence d'apparition d'un mot dans le fonds pour le calcul de pertinence en gestion
1773                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='search_relevant_with_frequency' "))==0){
1774                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1775                                        VALUES (NULL, 'pmb', 'search_relevant_with_frequency', '0', 'Utiliser la fréquence d\'apparition des mots dans les notices pour le calcul de la pertinence.\n0 : Non \n1 : Oui' , 'search', '0')";
1776                                echo traite_rqt($rqt,"insert pmb_search_relevant_with_frequency='0' into parametres ");
1777                        }
1778
1779                        //AR - Report du paramètre gérant la troncature À droite automatique
1780                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='allow_term_troncat_search' "))==0){
1781                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1782                                        VALUES (NULL, 'pmb', 'allow_term_troncat_search', '0', 'Troncature à droite automatique :\n0 : Non \n1 : Oui' , 'search', '0')";
1783                                echo traite_rqt($rqt,"insert pmb_allow_term_troncat_search='0' into parametres ");
1784                        }
1785
1786                        //AR - Report du paramètre gérant la durée du cache des recherches
1787                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='search_cache_duration' "))==0){
1788                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1789                                        VALUES (NULL, 'pmb', 'search_cache_duration', '0', 'Durée de validité (en secondes) du cache des recherches' , 'search', '0')";
1790                                echo traite_rqt($rqt,"insert pmb_search_cache_duration='0' into parametres ");
1791                        }
1792
1793                        //DG - En impression de panier, imprimer les exemplaires est coché par défaut
1794                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='print_expl_default' "))==0){
1795                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion) VALUES (0, 'pmb', 'print_expl_default', '0', 'En impression de panier, imprimer les exemplaires est coché par défaut \n 0 : Non \n 1 : Oui','',0) " ;
1796                                echo traite_rqt($rqt,"insert pmb_print_expl_default = 0 into parametres");
1797                        }
1798
1799
1800                        //AR - Activation des concepts ou non
1801                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'thesaurus' and sstype_param='concepts_active' "))==0){
1802                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1803                                        VALUES (NULL, 'thesaurus', 'concepts_active', '0', 'Active ou non l\'utilisation des concepts:\n0 : Non\n1 : Oui', 'concepts', '0')";
1804                                echo traite_rqt($rqt,"insert thesaurus_concepts_active='0' into parametres ");
1805                        }
1806
1807                        //AP - Paramétrage de l'ordre d'affichage des concepts d'une notice
1808                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'thesaurus' and sstype_param='concepts_affichage_ordre' "))==0){
1809                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1810                                        VALUES (NULL, 'thesaurus', 'concepts_affichage_ordre', '0', 'Paramétrage de l\'ordre d\'affichage des catégories d\'une notice.\nPar ordre alphabétique: 0(par défaut)\nPar ordre de saisie: 1', 'concepts', '0')";
1811                                echo traite_rqt($rqt,"insert concepts_affichage_ordre into parametres ");
1812                        }
1813
1814                        //AP - Paramétrage du mode d'affichage des concepts d'une notice (en ligne ou pas)
1815                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'thesaurus' and sstype_param='concepts_concept_in_line' "))==0){
1816                                $rqt="INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1817                                        VALUES (NULL, 'thesaurus', 'concepts_concept_in_line', '0', 'Affichage des catégories en ligne.\n 0 : Non.\n 1 : Oui.', 'concepts', '0')";
1818                                echo traite_rqt($rqt,"insert concepts_concept_in_line into parametres ");
1819                        }
1820
1821                        //AB Checkbox pour réafficher les notices dans chaque groupement ou pas
1822                        $rqt = "ALTER TABLE bannettes ADD display_notice_in_every_group INT(10) UNSIGNED NOT NULL DEFAULT '0' AFTER group_pperso";
1823                        echo traite_rqt($rqt,"alter table bannettes add display_notice_in_every_group");
1824
1825                        //NG - Autorités personalisées
1826                        $rqt = "create table if not exists authperso (
1827                                id_authperso int(10) unsigned NOT NULL auto_increment,
1828                                authperso_name varchar(255) NOT NULL default '',
1829                                authperso_notice_onglet_num  int unsigned not null default 0,
1830                                authperso_isbd_script text not null,
1831                                authperso_view_script text not null,
1832                                authperso_opac_search int unsigned not null default 0,
1833                                authperso_opac_multi_search int unsigned not null default 0,
1834                                authperso_gestion_search int unsigned not null default 0,
1835                                authperso_gestion_multi_search int unsigned not null default 0,
1836                                authperso_comment text not null,
1837                                PRIMARY KEY  (id_authperso)) ";
1838                        echo traite_rqt($rqt,"create table authperso ");
1839
1840                        //NG - Champs perso des autorités personalisées
1841                        $rqt = "create table if not exists authperso_custom (
1842                                idchamp int(10) unsigned NOT NULL auto_increment,
1843                                custom_prefixe varchar(255) NOT NULL default '',
1844                                num_type int unsigned not null default 0,
1845                                name varchar(255) NOT NULL default '',
1846                                titre varchar(255) default NULL,
1847                                type varchar(10) NOT NULL default 'text',
1848                                datatype varchar(10) NOT NULL default '',
1849                                options text,
1850                                multiple int(11) NOT NULL default 0,
1851                                obligatoire int(11) NOT NULL default 0,
1852                                ordre int(11) default NULL,
1853                                search INT(1) unsigned NOT NULL DEFAULT 0,
1854                                export INT(1) unsigned NOT NULL DEFAULT 0,
1855                                exclusion_obligatoire INT(1) unsigned NOT NULL DEFAULT 0,
1856                                pond int not null default 100,
1857                                opac_sort INT NOT NULL DEFAULT 0,
1858                        PRIMARY KEY  (idchamp)) ";
1859                        echo traite_rqt($rqt,"create table authperso_custom ");
1860
1861                        $rqt = "create table if not exists authperso_custom_lists (
1862                                authperso_custom_champ int(10) unsigned NOT NULL default 0,
1863                                authperso_custom_list_value varchar(255) default NULL,
1864                                authperso_custom_list_lib varchar(255) default NULL,
1865                                ordre int(11) default NULL,
1866                                KEY editorial_custom_champ (authperso_custom_champ),
1867                                KEY editorial_champ_list_value (authperso_custom_champ,authperso_custom_list_value)) " ;
1868                        echo traite_rqt($rqt,"create table if not exists authperso_custom_lists ");
1869
1870                        $rqt = "create table if not exists authperso_custom_values (
1871                                authperso_custom_champ int(10) unsigned NOT NULL default 0,
1872                                authperso_custom_origine int(10) unsigned NOT NULL default 0,
1873                                authperso_custom_small_text varchar(255) default NULL,
1874                                authperso_custom_text text,
1875                                authperso_custom_integer int(11) default NULL,
1876                                authperso_custom_date date default NULL,
1877                                authperso_custom_float float default NULL,
1878                                KEY editorial_custom_champ (authperso_custom_champ),
1879                                KEY editorial_custom_origine (authperso_custom_origine)) " ;
1880                        echo traite_rqt($rqt,"create table if not exists authperso_custom_values ");
1881
1882                        $rqt = "create table if not exists authperso_authorities (
1883                                id_authperso_authority int(10) unsigned NOT NULL auto_increment,
1884                                authperso_authority_authperso_num int(10) unsigned NOT NULL default 0 ,
1885                                authperso_infos_global text not null,
1886                                authperso_index_infos_global text not null,
1887                                PRIMARY KEY  (id_authperso_authority))  " ;
1888                        echo traite_rqt($rqt,"create table if not exists authperso_authorities ");
1889
1890                        $rqt = "create table if not exists notices_authperso (
1891                                notice_authperso_notice_num int(10) unsigned NOT NULL default 0,
1892                                notice_authperso_authority_num int(10) unsigned NOT NULL default 0,
1893                                notice_authperso_order int(10) unsigned NOT NULL default 0,
1894                                PRIMARY KEY  (notice_authperso_notice_num,notice_authperso_authority_num))  " ;
1895                        echo traite_rqt($rqt,"create table if not exists notices_authperso ");
1896
1897                        // NG : Onglet personalisé de notice
1898                        $rqt = "create table if not exists notice_onglet (
1899                                id_onglet int(10) unsigned NOT NULL auto_increment,
1900                                onglet_name varchar(255) default NULL,
1901                                PRIMARY KEY  (id_onglet)) ";
1902                        echo traite_rqt($rqt,"create table if not exists notice_onglet ");
1903
1904                        //DG - Personnalisation des colonnes pour l'affichage des états des collections
1905                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='collstate_data' "))==0){
1906                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1907                                        VALUES (0, 'opac', '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\nLes valeurs possibles sont les propriétés de la classe PHP \"pmb/opac_css/classes/collstate.class.php\".','e_aff_notice',0)";
1908                                echo traite_rqt($rqt,"insert opac_collstate_data = 0 into parametres");
1909                        }
1910
1911                        //AB ajout d'un schema SKOS par défaut
1912                        $rqt = "ALTER TABLE users ADD deflt_concept_scheme INT(3) UNSIGNED NOT NULL DEFAULT 0 AFTER deflt_thesaurus";
1913                        echo traite_rqt($rqt,"alter table users add deflt_concept_scheme");
1914
1915                        //AB paramètre caché pour conservation de la date de dernière modification de l'ontologie
1916                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'thesaurus' and sstype_param='ontology_filemtime' "))==0){
1917                                $rqt = "INSERT INTO parametres (type_param,sstype_param,valeur_param,comment_param,section_param,gestion)
1918                                        VALUES ('thesaurus','ontology_filemtime',0,'Paramètre caché pour conservation de la date de dernière modification de l\'ontologie','ontologie',1)";
1919                                echo traite_rqt($rqt,"insert thesaurus_ontology_filemtime into parametres");
1920                        }
1921
1922                        // NG - Ajout du champ resa_arc_trans pour associer un transfert à une archive résa
1923                        $rqt = "ALTER TABLE transferts_demande ADD resa_arc_trans int(8) UNSIGNED NOT NULL DEFAULT 0 ";
1924                        echo traite_rqt($rqt,"alter table transferts_demande add resa_arc_trans ");
1925
1926                        // NG - Ajout champ info dans les audits
1927                        $rqt = "ALTER TABLE audit ADD info text NOT NULL";
1928                        echo traite_rqt($rqt,"alter table audit add info ");
1929
1930                        // AP modification du paramètre de schema SKOS par défaut
1931                        $rqt = "ALTER TABLE users CHANGE deflt_concept_scheme deflt_concept_scheme INT(3) NOT NULL DEFAULT -1";
1932                        echo traite_rqt($rqt,"alter table users change deflt_concept_scheme");
1933
1934                        //DG - Statuts sur les documents numériques
1935                        $rqt = "create table if not exists explnum_statut (
1936                                id_explnum_statut smallint(5) unsigned not null auto_increment,
1937                                gestion_libelle varchar(255) not NULL default '',
1938                                opac_libelle varchar(255)  not NULL default '',
1939                                class_html VARCHAR( 255 )  not NULL default '',
1940                                explnum_visible_opac tinyint(1) NOT NULL default 1,
1941                                explnum_visible_opac_abon tinyint(1) NOT NULL default 0,
1942                                explnum_consult_opac tinyint(1) NOT NULL default 1,
1943                                explnum_consult_opac_abon tinyint(1) NOT NULL default 0,
1944                                explnum_download_opac tinyint(1) NOT NULL default 1,
1945                                explnum_download_opac_abon tinyint(1) NOT NULL default 0,
1946                                primary key(id_explnum_statut))";
1947                        echo traite_rqt($rqt,"create table explnum_statut ");
1948
1949                        //DG - Statut "Sans statut particulier" ajouté par défaut
1950                        $rqt = "insert into explnum_statut SET id_explnum_statut=1, gestion_libelle='Sans statut particulier',opac_libelle='', explnum_visible_opac='1' ";
1951                        echo traite_rqt($rqt,"insert minimum into explnum_statut");
1952
1953                        //DG - Ajout d'un champ statut sur les documents numériques
1954                        $rqt = "ALTER TABLE explnum ADD explnum_docnum_statut smallint(5) UNSIGNED NOT NULL DEFAULT 1 ";
1955                        echo traite_rqt($rqt,"alter table explnum add explnum_docnum_statut ");
1956
1957                        //DG - Statut de document numérique par défaut en création de document numérique
1958                        $rqt = "ALTER TABLE users ADD deflt_explnum_statut INT(6) UNSIGNED DEFAULT 1 NOT NULL " ;
1959                        echo traite_rqt($rqt,"ALTER users ADD deflt_explnum_statut ");
1960
1961                        //AR - paramétrages des droits d'accès sur les documents numériques
1962                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'gestion_acces' and sstype_param='empr_docnum' "))==0){
1963                        $rqt = "INSERT INTO parametres (type_param,sstype_param,valeur_param,comment_param,section_param,gestion)
1964                                        VALUES ('gestion_acces','empr_docnum',0,'Gestion des droits d\'accès des emprunteurs aux documents numériques\n0 : Non.\n1 : Oui.','',0)";
1965                                echo traite_rqt($rqt,"insert gestion_acces_empr_docnum into parametres");
1966                        }
1967                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'gestion_acces' and sstype_param='empr_docnum_def' "))==0){
1968                                $rqt = "INSERT INTO parametres (type_param,sstype_param,valeur_param,comment_param,section_param,gestion)
1969                                        VALUES ('gestion_acces','empr_docnum_def',0,'Valeur par défaut en modification de document numérique pour les droits d\'accès emprunteurs - documents numériques\n0 : Recalculer.\n1 : Choisir.','',0)";
1970                                echo traite_rqt($rqt,"insert gestion_acces_empr_docnum_def into parametres");
1971                        }
1972
1973                        // NG - Ajout param transferts_retour_action_resa
1974                        if (pmb_mysql_num_rows(pmb_mysql_query("SELECT 1 FROM parametres WHERE type_param= 'transferts' and sstype_param='retour_action_resa' "))==0){
1975                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, gestion, comment_param)
1976                                VALUES (0, 'transferts', 'retour_action_resa', '1', '1', 'Génére un transfert pour répondre à une réservation lors du retour de l\'exemplaire\n 0: Non\n 1: Oui') ";
1977                                echo traite_rqt($rqt,"INSERT transferts_retour_action_resa INTO parametres") ;
1978                        }
1979
1980                        //DG - Logs OPAC - Exclusion possible des robots et de certaines adresses IP
1981                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='logs_exclude_robots' "))==0){
1982                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
1983                                        VALUES (0, 'pmb', 'logs_exclude_robots', '1', 'Exclure les robots dans les logs OPAC ?\n 0: Non\n 1: Oui. \nFaire suivre d\'une virgule pour éventuellement exclure les logs OPAC provenant de certaines adresses IP, elles-mêmes séparées par des virgules (ex : 1,127.0.0.1,192.168.0.1).','',0)";
1984                                echo traite_rqt($rqt,"insert pmb_logs_exclude_robots = 1 into parametres");
1985                        }
1986
1987                        // NG - Auteurs répétables dans les titres uniformes
1988                        $rqt = "CREATE TABLE if not exists responsability_tu (
1989                                        responsability_tu_author_num int unsigned NOT NULL default 0,
1990                                        responsability_tu_num int unsigned NOT NULL default 0,
1991                                        responsability_tu_fonction char(4) NOT NULL default '',
1992                                        responsability_tu_type int unsigned NOT NULL default 0,
1993                                        responsability_tu_ordre smallint(2) unsigned NOT NULL default 0,
1994                                        PRIMARY KEY  (responsability_tu_author_num, responsability_tu_num, responsability_tu_fonction),
1995                                        KEY responsability_tu_author (responsability_tu_author_num),
1996                                        KEY responsability_tu_num (responsability_tu_num) )";
1997                        echo traite_rqt($rqt,"CREATE TABLE responsability_tu ");
1998                        // NG - migration de l'auteur de titre uniforme dans la table responsability_tu
1999                        if ($res = pmb_mysql_query("select tu_num_author, tu_id from titres_uniformes where tu_num_author>0")){
2000                                while ( $row = pmb_mysql_fetch_object($res)) {
2001                                        $rqt = "INSERT INTO responsability_tu set responsability_tu_author_num=".$row->tu_num_author.", responsability_tu_num= ".$row->tu_id."  ";
2002                                        pmb_mysql_query($rqt, $dbh);
2003                                }
2004                        }
2005
2006                        //NG - ajout pied de page dans la fiche de circulation
2007                        $rqt = "ALTER TABLE serialcirc ADD serialcirc_piedpage text NOT NULL AFTER serialcirc_tpl";
2008                        echo traite_rqt($rqt,"alter table serialcirc add serialcirc_piedpage");
2009
2010                        //DG - Templates de listes de circulation
2011                        $rqt = "CREATE TABLE serialcirc_tpl (
2012                                        serialcirctpl_id int(10) unsigned NOT NULL auto_increment,
2013                                        serialcirctpl_name varchar(255) NOT NULL DEFAULT '',
2014                                        serialcirctpl_comment varchar(255) NOT NULL DEFAULT '',
2015                                        serialcirctpl_tpl text NOT NULL,
2016                                        PRIMARY KEY  (serialcirctpl_id))";
2017                        echo traite_rqt($rqt,"CREATE TABLE serialcirc_tpl") ;
2018                        $rqt = "insert into serialcirc_tpl SET serialcirctpl_id=1, serialcirctpl_name='Template PMB', serialcirctpl_comment='', serialcirctpl_tpl='a:3:{i:0;a:3:{s:4:\"type\";s:4:\"name\";s:2:\"id\";s:1:\"0\";s:5:\"label\";N;}i:1;a:3:{s:4:\"type\";s:5:\"ville\";s:2:\"id\";s:1:\"0\";s:5:\"label\";N;}i:2;a:3:{s:4:\"type\";s:5:\"libre\";s:2:\"id\";s:1:\"0\";s:5:\"label\";s:9:\"SIGNATURE\";}}' ";
2019                        echo traite_rqt($rqt,"insert minimum into serialcirc_tpl");
2020
2021                        //DG - Circulation des périodiques : Tri sur les destinataires
2022                        $rqt = "ALTER TABLE serialcirc ADD serialcirc_sort_diff text NOT NULL";
2023                        echo traite_rqt($rqt,"alter table serialcirc add serialcirc_sort_diff");
2024
2025                        //NG - Templates de bannettes
2026                        $rqt = "CREATE TABLE bannette_tpl (
2027                                        bannettetpl_id int(10) unsigned NOT NULL auto_increment,
2028                                        bannettetpl_name varchar(255) NOT NULL DEFAULT '',
2029                                        bannettetpl_comment varchar(255) NOT NULL DEFAULT '',
2030                                        bannettetpl_tpl text NOT NULL,
2031                                        PRIMARY KEY  (bannettetpl_id))";
2032                        echo traite_rqt($rqt,"CREATE TABLE bannette_tpl") ;
2033                        $rqt = "insert into bannette_tpl SET bannettetpl_id=1, bannettetpl_name='Template PMB', bannettetpl_comment='', bannettetpl_tpl='a:3:{i:0;a:3:{s:4:\"type\";s:4:\"name\";s:2:\"id\";s:1:\"0\";s:5:\"label\";N;}i:1;a:3:{s:4:\"type\";s:5:\"ville\";s:2:\"id\";s:1:\"0\";s:5:\"label\";N;}i:2;a:3:{s:4:\"type\";s:5:\"libre\";s:2:\"id\";s:1:\"0\";s:5:\"label\";s:9:\"SIGNATURE\";}}' ";
2034                        echo traite_rqt($rqt,"insert minimum into bannette_tpl");
2035
2036                        //NG - Templates de bannettes
2037                        $rqt = "ALTER TABLE bannettes ADD bannette_tpl_num INT(6) UNSIGNED DEFAULT 0 NOT NULL " ;
2038                        echo traite_rqt($rqt,"ALTER bannettes ADD bannette_tpl_num ");
2039
2040
2041                        // +-------------------------------------------------+
2042                        echo "</table>";
2043                        $rqt = "update parametres set valeur_param='".$action."' where type_param='pmb' and sstype_param='bdd_version' " ;
2044                        $res = pmb_mysql_query($rqt, $dbh) ;
2045                        echo "<strong><font color='#FF0000'>".$msg[1807]." ".number_format($action, 2, ',', '.')."%</font></strong><br />";
2046                        $action=$action+$increment;
2047                        //echo form_relance ("v5.17");
2048                        //break;
2049
2050//case "v5.17":
2051                        echo "<table ><tr><th>".$msg['admin_misc_action']."</th><th>".$msg['admin_misc_resultat']."</th></tr>";
2052                        // +-------------------------------------------------+
2053
2054                        // NG - Ajout paramètre pour activer la géolocalisation
2055                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='map_activate' "))==0){
2056                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2057                                VALUES ( 'pmb', 'map_activate', '0', 'Activation de la géolocalisation:\n 0 : non \n 1 : oui','', 0)";
2058                                echo traite_rqt($rqt,"insert pmb_map_activate into parametres");
2059                        }
2060
2061                        //MB + CB - Renseigner les champs d'exemplaires transfert_location_origine et transfert_statut_origine pour les statistiques et si ils ne le sont pas déjà (lié aux améliorations pour les transferts)
2062                        $rqt = "UPDATE exemplaires SET transfert_location_origine=expl_location, transfert_statut_origine=expl_statut, update_date=update_date WHERE transfert_location_origine=0 AND 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))";
2063                        echo traite_rqt($rqt,"update exemplaires transfert_location_origine transfert_statut_origine");
2064                        //NG - géolocalisation
2065                        $rqt = "ALTER TABLE notices ADD map_echelle_num int(10) unsigned NOT NULL default 0" ;
2066                        echo traite_rqt($rqt,"ALTER notices ADD map_echelle_num ");
2067
2068                        $rqt = "ALTER TABLE notices ADD map_projection_num int(10) unsigned NOT NULL default 0" ;
2069                        echo traite_rqt($rqt,"ALTER notices ADD map_projection_num ");
2070
2071                        $rqt = "ALTER TABLE notices ADD map_ref_num int(10) unsigned NOT NULL default 0" ;
2072                        echo traite_rqt($rqt,"ALTER notices ADD map_ref_num ");
2073
2074                        $rqt = "ALTER TABLE notices ADD map_equinoxe varchar(255) NOT NULL DEFAULT ''" ;
2075                        echo traite_rqt($rqt,"ALTER notices ADD map_equinoxe ");
2076
2077
2078
2079                        //NG - géolocalisation: Memo des emprises
2080                        $rqt = "CREATE TABLE if not exists map_emprises (
2081                                        map_emprise_id int(10) unsigned NOT NULL auto_increment,
2082                                        map_emprise_type int(10) unsigned NOT NULL default 0,
2083                                        map_emprise_obj_num int(10) unsigned NOT NULL default 0,
2084                                        map_emprise_data GEOMETRY NOT NULL,
2085                                        map_emprise_order int(10) unsigned NOT NULL default 0,
2086                                        PRIMARY KEY  (map_emprise_id))";
2087                        echo traite_rqt($rqt,"CREATE TABLE map_emprises") ;
2088
2089                        //NG - géolocalisation: Echelles
2090                        $rqt = "CREATE TABLE if not exists map_echelles (
2091                                        map_echelle_id int(10) unsigned NOT NULL auto_increment,
2092                                        map_echelle_name varchar(255) NOT NULL DEFAULT '',
2093                                        PRIMARY KEY  (map_echelle_id))";
2094                        echo traite_rqt($rqt,"CREATE TABLE map_echelles") ;
2095
2096                        //NG - géolocalisation: Système de projection du document
2097                        $rqt = "CREATE TABLE if not exists map_projections (
2098                                        map_projection_id int(10) unsigned NOT NULL auto_increment,
2099                                        map_projection_name varchar(255) NOT NULL DEFAULT '',
2100                                        PRIMARY KEY  (map_projection_id))";
2101                        echo traite_rqt($rqt,"CREATE TABLE map_projections") ;
2102
2103                        //NG - géolocalisation: Systeme de référence de coord de la carte
2104                        $rqt = "CREATE TABLE if not exists map_refs (
2105                                        map_ref_id int(10) unsigned NOT NULL auto_increment,
2106                                        map_ref_name varchar(255) NOT NULL DEFAULT '',
2107                                        PRIMARY KEY  (map_ref_id))";
2108                        echo traite_rqt($rqt,"CREATE TABLE map_refs") ;
2109
2110                        // AR - Ajout paramètre pour limiter le nombre d'emprises sur une carte !
2111                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='map_max_holds' "))==0){
2112                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2113                                VALUES ( 'pmb', 'map_max_holds', '250', 'Nombre d\'emprise maximum souhaité par type d\'emprise','map', 0)";
2114                                echo traite_rqt($rqt,"insert pmb_map_max_holds into parametres");
2115                        }
2116
2117                        // AR - Les paramètres de cartes sont rangés ensemble !
2118                        $rqt = "update parametres set section_param= 'map' where type_param like 'pmb' and sstype_param like 'map_activate'";
2119                        echo traite_rqt($rqt,"update pmb_map_max_holds");
2120
2121                        // AR - Définition de la couleur d'une emprise de notice
2122                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='map_holds_record_color' "))==0){
2123                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2124                                VALUES ( 'pmb', 'map_holds_record_color', '#D6A40F', 'Couleur des emprises associées à des notices','map', 0)";
2125                                echo traite_rqt($rqt,"insert pmb_map_holds_record_color into parametres");
2126                        }
2127
2128                        // AR - Définition de la couleur d'une emprise d'autorité
2129                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='map_holds_authority_color' "))==0){
2130                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2131                                VALUES ( 'pmb', 'map_holds_authority_color', '#D60F0F', 'Couleur des emprises associées à des autorités','map', 0)";
2132                                echo traite_rqt($rqt,"insert pmb_map_holds_authority_color into parametres");
2133                        }
2134
2135
2136                        // AR - Définition du fond de carte
2137                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='map_base_layer_type' "))==0){
2138                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2139                                VALUES ( 'pmb', 'map_base_layer_type', 'OSM', 'Fonds de carte à utiliser.\nValeurs possibles :\nOSM           => Open Street Map\nWMS           => The Web Map Server base layer type selector.\nGOOGLE        => Google\nARCGIS        =>The ESRI ARCGis base layer selector.\n','map', 0)";
2140                                echo traite_rqt($rqt,"insert pmb_map_base_layer_type into parametres");
2141                        }
2142                        // AR - Définition des paramètres du fond de carte
2143                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='map_base_layer_params' "))==0){
2144                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2145                                VALUES ( 'pmb', 'map_base_layer_params', '', 'Structure JSON à passer au fond de carte\nexemple :\n{\n \"name\": \"Nom du fond de carte\",\n \"url\": \"url du fond de carte\",\n \"options\":{\n  \"layers\": \"MONDE_MOD1\"\n }\n}','map', 0)";
2146                                echo traite_rqt($rqt,"insert pmb_map_base_layer_params into parametres");
2147                        }
2148
2149                        // NG - Ajout paramètre de la taille de la carte en saisie de recherche
2150                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='map_size_search_edition' "))==0){
2151                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2152                                VALUES ( 'pmb', 'map_size_search_edition', '800*480', 'Taille de la carte en saisie de recherche','map', 0)";
2153                                echo traite_rqt($rqt,"insert pmb_map_size_search_edition into parametres");
2154                        }
2155
2156                        // NG - Ajout paramètre de la taille de la carte en résultat de recherche
2157                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='map_size_search_result' "))==0){
2158                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2159                                VALUES ( 'pmb', 'map_size_search_result', '800*480', 'Taille de la carte en résultat de recherche','map', 0)";
2160                                echo traite_rqt($rqt,"insert pmb_map_size_search_result into parametres");
2161                        }
2162                        // NG - Ajout paramètre de la taille de la carte en visualisation de notice
2163                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='map_size_notice_view' "))==0){
2164                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2165                                VALUES ( 'pmb', 'map_size_notice_view', '800*480', 'Taille de la carte en visualisation de notice','map', 0)";
2166                                echo traite_rqt($rqt,"insert pmb_map_size_notice_view into parametres");
2167                        }
2168
2169                        // NG - Ajout paramètre de la taille de la carte en édition de notice
2170                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='map_size_notice_edition' "))==0){
2171                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2172                                VALUES ( 'pmb', 'map_size_notice_edition', '800*480', 'Taille de la carte en édition de notice','map', 0)";
2173                                echo traite_rqt($rqt,"insert pmb_map_size_notice_edition into parametres");
2174                        }
2175
2176                        // NG - cms: Ajout des vues opac
2177                        $rqt = "ALTER TABLE cms ADD cms_opac_view_num int(10) unsigned NOT NULL default 0" ;
2178                        echo traite_rqt($rqt,"ALTER cms ADD cms_opac_view_num ");
2179
2180                        //DG - Modification taille du champ article_resume de la table cms_articles
2181                        $rqt ="alter table cms_articles MODIFY article_resume MEDIUMTEXT NOT NULL";
2182                        echo traite_rqt($rqt,"alter table cms_articles modify article_resume mediumtext");
2183
2184                        //DG - Modification taille du champ article_contenu de la table cms_articles
2185                        $rqt ="alter table cms_articles MODIFY article_contenu MEDIUMTEXT NOT NULL";
2186                        echo traite_rqt($rqt,"alter table cms_articles modify article_contenu mediumtext");
2187
2188                        //DG - Modification taille du champ section_resume de la table cms_sections
2189                        $rqt ="alter table cms_sections MODIFY section_resume MEDIUMTEXT NOT NULL";
2190                        echo traite_rqt($rqt,"alter table cms_sections modify section_resume mediumtext");
2191
2192                        //MB - Définition de la taille maximum des vignettes des notices
2193                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='notice_img_pics_max_size' "))==0){
2194                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param) VALUES (0, 'pmb', 'notice_img_pics_max_size', '150', 'Taille maximale des vignettes uploadées dans les notices, en largeur ou en hauteur')";
2195                                echo traite_rqt($rqt,"insert pmb_notice_img_pics_max_size='150' into parametres");
2196                        }
2197
2198                        //DG - Vues OPAC dans les facettes
2199                        $rqt = "show fields from facettes";
2200                        $res = pmb_mysql_query($rqt);
2201                        $exists = false;
2202                        if(pmb_mysql_num_rows($res)){
2203                                while($row = pmb_mysql_fetch_object($res)){
2204                                        if($row->Field == "facette_opac_views_num"){
2205                                                $exists = true;
2206                                                break;
2207                                        }
2208                                }
2209                        }
2210                        if(!$exists){
2211                                $rqt = "ALTER TABLE facettes ADD facette_opac_views_num text NOT NULL";
2212                                echo traite_rqt($rqt,"alter table facettes add facette_opac_views_num");
2213
2214                                $req = "select id_facette, facette_opac_views_num from facettes";
2215                                $res = pmb_mysql_query($req,$dbh);
2216                                if ($res) {
2217                                        $facettes = array();
2218                                        while($row = pmb_mysql_fetch_object($res)) {
2219                                                $facettes[] = $row->id_facette;
2220                                        }
2221                                        if (count($facettes)) {
2222                                                $req = "select opac_view_id, opac_view_name from opac_views";
2223                                                $myQuery = pmb_mysql_query($req, $dbh);
2224                                                if ($myQuery) {
2225                                                        $views = array();
2226                                                        while ($row = pmb_mysql_fetch_object($myQuery)) {
2227                                                                $v = array();
2228                                                                $v["id"] = $row->opac_view_id;
2229                                                                $v["name"] = $row->opac_view_name;
2230                                                                $views[] = $v;
2231                                                        }
2232                                                        $param["selected"] = $facettes;
2233                                                        $param=addslashes(serialize($param));
2234                                                        foreach ($views as $view) {
2235                                                                //Dans le cas où une modification a été faite avant le passage de la MAJ..
2236                                                                $req = "delete from opac_filters where opac_filter_view_num=".$view["id"]." and opac_filter_path='facettes'";
2237                                                                $res = pmb_mysql_query($req,$dbh);
2238                                                                //Insertion..
2239                                                                $rqt="insert into opac_filters set opac_filter_view_num=".$view["id"].",opac_filter_path='facettes', opac_filter_param='$param' ";
2240                                                                echo traite_rqt($rqt,"insert authorization facettes into opac_filters view ".$view["name"]);
2241                                                        }
2242                                                }
2243                                        }
2244                                }
2245                        }
2246
2247                        // NG - Ajout paramètre pour activer la géolocalisation en Opac
2248                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='map_activate' "))==0){
2249                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2250                                VALUES ( 'opac', 'map_activate', '0', 'Activation de la géolocalisation:\n 0 : non \n 1 : oui','a_general', 0)";
2251                                echo traite_rqt($rqt,"insert opac_map_activate into parametres");
2252                        }
2253
2254                        //DB - commande psexec (planificateur sous windows)
2255                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='psexec_cmd' "))==0){
2256                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2257                                VALUES (0, 'pmb', 'psexec_cmd', 'psexec -d', 'Paramètres de lancement de psexec (planificateur sous windows)\r\n\nAjouter l\'option -accepteula sur les versions les plus récentes. ', '',0) ";
2258                                echo traite_rqt($rqt, "insert pmb_psexec_cmd into parameters");
2259                        }
2260
2261                        // AR - Ajout paramètre pour activer l'éditeur Dojo
2262                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='editorial_dojo_editor' "))==0){
2263                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2264                                VALUES ( 'pmb', 'editorial_dojo_editor', '1', 'Activation de l\'éditeur DoJo dans le contenu éditorial:\n 0 : non \n 1 : oui','', 0)";
2265                                echo traite_rqt($rqt,"insert pmb_editorial_dojo_editor into parametres");
2266                        }
2267
2268                        // DG - Module "Surcharge de méta-données" : Groupes de méta-données par défaut
2269                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from cms_managed_modules where managed_module_name= 'cms_module_metadatas' "))==0){
2270                                $struct = array();
2271                                $struct["metadatas1"] = array(
2272                                                'prefix' => "og",
2273                                                'name' => "Open Graph Protocol",
2274                                                'items' => array(
2275                                                                'title' => array(
2276                                                                                'label' => "titre",
2277                                                                                'desc' => "Titre",
2278                                                                                'default_template' => "{{title}}"
2279                                                                ),
2280                                                                'type' => array(
2281                                                                                'label' => "type",
2282                                                                                'desc' => "Type",
2283                                                                                'default_template' => "{{type}}"
2284                                                                ),
2285                                                                'image' => array(
2286                                                                                'label' => "logo",
2287                                                                                'desc' => "Lien vers le logo",
2288                                                                                'default_template' => "{{logo_url}}"
2289                                                                ),
2290                                                                'url' => array(
2291                                                                                'label' => "lien",
2292                                                                                'desc' => "Lien",
2293                                                                                'default_template' => "{{link}}"
2294                                                                ),
2295                                                                'description' => array(
2296                                                                                'label' => "description",
2297                                                                                'desc' => "Résumé",
2298                                                                                'default_template' => "{{resume}}"
2299                                                                ),
2300                                                                'locale' => array(
2301                                                                                'label' => "locale",
2302                                                                                'desc' => "Langue",
2303                                                                                'default_template' => ""
2304                                                                ),
2305                                                                'site_name' => array(
2306                                                                                'label' => "site_name",
2307                                                                                'desc' => "Nom du site",
2308                                                                                'default_template' => ""
2309                                                                ),
2310                                                ),
2311                                                'separator' => ":",
2312                                                'group_template' => "<meta property='{{key_metadata}}' content='{{value_metadata}}' />"
2313                                );
2314
2315                                $struct["metadatas2"] = array(
2316                                                'prefix' => "twitter",
2317                                                'name' => "Twitter Cards",
2318                                                'items' => array(
2319                                                                'title' => array(
2320                                                                                'label' => "titre",
2321                                                                                'desc' => "Titre",
2322                                                                                'default_template' => "{{title}}"
2323                                                                ),
2324                                                                'card' => array(
2325                                                                                'label' => "card",
2326                                                                                'desc' => "Résumé",
2327                                                                                'default_template' => ""
2328                                                                ),
2329                                                                'description' => array(
2330                                                                                'label' => "description",
2331                                                                                'desc' => "Description",
2332                                                                                'default_template' => "{{resume}}"
2333                                                                ),
2334                                                                'image' => array(
2335                                                                                'label' => "logo",
2336                                                                                'desc' => "Lien vers le logo",
2337                                                                                'default_template' => "{{logo_url}}"
2338                                                                ),
2339                                                                'site' => array(
2340                                                                                'label' => "site",
2341                                                                                'desc' => "Site",
2342                                                                                'default_template' => ""
2343                                                                ),
2344                                                ),
2345                                                'separator' => ":",
2346                                                'group_template' => "<meta name='{{key_metadata}}' content='{{value_metadata}}' />"
2347                                );
2348                                $managed_datas = array();
2349                                $managed_datas["module"]["metadatas"] = $struct;
2350                                $managed_datas=addslashes(serialize($managed_datas));
2351                                $rqt = "INSERT INTO cms_managed_modules ( managed_module_name, managed_module_box)
2352                                VALUES ('cms_module_metadatas', '$managed_datas')";
2353                                echo traite_rqt($rqt,"insert cms_module_metadatas into cms_managed_modules");
2354                        }
2355
2356                        //DB Ajout vignette etageres (SDN)
2357                        $rqt = "ALTER TABLE etagere ADD thumbnail_url MEDIUMBLOB NOT NULL " ;
2358                        echo traite_rqt($rqt,"ALTER TABLE etagere ADD thumbnail_url ");
2359
2360                        // AR - Ajout paramètre pour limiter le nombre d'emprises sur une carte à l'OPAC!
2361                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='map_max_holds' "))==0){
2362                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2363                                VALUES ( 'opac', 'map_max_holds', '250', 'Nombre d\'emprise maximum souhaité par type d\'emprise','map', 0)";
2364                                echo traite_rqt($rqt,"insert opac_map_max_holds into parametres");
2365                        }
2366
2367                        // AR - Les paramètres de cartes sont rangés ensemble !
2368                        $rqt = "update parametres set section_param= 'map', comment_param='Activation du géoréférencement' where type_param like 'opac' and sstype_param like 'map_activate'";
2369                        echo traite_rqt($rqt,"update opac_map_activate");
2370
2371                        // AR - Changement de nom !
2372                        $rqt = "update parametres set comment_param='Activation du géoréférencement' where type_param like 'pmb' and sstype_param like 'map_activate'";
2373                        echo traite_rqt($rqt,"update pmb_map_activate");
2374
2375                        // AR - Définition de la couleur d'une emprise de notice à l'OPAC
2376                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='map_holds_record_color' "))==0){
2377                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2378                                VALUES ( 'opac', 'map_holds_record_color', '#D6A40F', 'Couleur des emprises associées à des notices','map', 0)";
2379                                echo traite_rqt($rqt,"insert opac_map_holds_record_color into parametres");
2380                        }
2381
2382                        // AR - Définition de la couleur d'une emprise d'autorité à l'OPAC
2383                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='map_holds_authority_color' "))==0){
2384                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2385                                VALUES ( 'opac', 'map_holds_authority_color', '#D60F0F', 'Couleur des emprises associées à des autorités','map', 0)";
2386                                echo traite_rqt($rqt,"insert opac_map_holds_authority_color into parametres");
2387                        }
2388
2389                        // AR - Ajout paramètre de la taille de la carte en saisie de recherche à l'OPAC
2390                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='map_size_search_edition' "))==0){
2391                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2392                                VALUES ( 'opac', 'map_size_search_edition', '800*480', 'Taille de la carte en saisie de recherche','map', 0)";
2393                                echo traite_rqt($rqt,"insert opac_map_size_search_edition into parametres");
2394                        }
2395
2396                        // AR - Ajout paramètre de la taille de la carte en résultat de recherche à l'OPAC
2397                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='map_size_search_result' "))==0){
2398                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2399                                VALUES ( 'opac', 'map_size_search_result', '800*480', 'Taille de la carte en résultat de recherche','map', 0)";
2400                                echo traite_rqt($rqt,"insert opac_map_size_search_result into parametres");
2401                        }
2402                        // AR - Ajout paramètre de la taille de la carte en visualisation de notice à l'OPAC
2403                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='map_size_notice_view' "))==0){
2404                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2405                                VALUES ( 'opac', 'map_size_notice_view', '800*480', 'Taille de la carte en visualisation de notice','map', 0)";
2406                                echo traite_rqt($rqt,"insert opac_map_size_notice_view into parametres");
2407                        }
2408
2409                        // AR - Définition du fond de carte à l'OPAC
2410                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='map_base_layer_type' "))==0){
2411                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2412                                VALUES ( 'opac', 'map_base_layer_type', 'OSM', 'Fonds de carte à utiliser.\nValeurs possibles :\nOSM           => Open Street Map\nWMS           => The Web Map Server base layer type selector.\nGOOGLE        => Google\nARCGIS        =>The ESRI ARCGis base layer selector.\n','map', 0)";
2413                                echo traite_rqt($rqt,"insert opac_map_base_layer_type into parametres");
2414                        }
2415                        // AR - Définition des paramètres du fond de carte à l'OPAC
2416                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='map_base_layer_params' "))==0){
2417                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2418                                VALUES ( 'opac', 'map_base_layer_params', '', 'Structure JSON à passer au fond de carte\nexemple :\n{\n \"name\": \"Nom du fond de carte\",\n \"url\": \"url du fond de carte\",\n \"options\":{\n  \"layers\": \"MONDE_MOD1\"\n }\n}','map', 0)";
2419                                echo traite_rqt($rqt,"insert opac_map_base_layer_params into parametres");
2420                        }
2421
2422                        // JP - Suggestions - Utilisateur : pouvoir être alerté en cas de nouvelle suggestion à l'OPAC
2423                        $rqt = "ALTER TABLE users ADD user_alert_suggmail int(1) UNSIGNED NOT NULL DEFAULT 0";
2424                        echo traite_rqt($rqt,"alter table users add user_alert_suggmail");
2425
2426                        // JP - Acquisitions - Sélection rubrique budgétaire en commande : pouvoir toutes les afficher
2427                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'acquisition' and sstype_param='budget_show_all' "))==0){
2428                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2429                                        VALUES (0, 'acquisition', 'budget_show_all', '0', 'Sélection d\'une rubrique budgétaire en commande : toutes les afficher ?\n 0: Non (par pagination)\n 1: Oui.','',0)";
2430                                echo traite_rqt($rqt,"insert budget_show_all = 0 into parametres");
2431                        }
2432
2433
2434                        // +-------------------------------------------------+
2435                        echo "</table>";
2436                        $rqt = "update parametres set valeur_param='".$action."' where type_param='pmb' and sstype_param='bdd_version' " ;
2437                        $res = pmb_mysql_query($rqt, $dbh) ;
2438                        echo "<strong><font color='#FF0000'>".$msg[1807]." ".number_format($action, 2, ',', '.')."%</font></strong><br />";
2439                        $action=$action+$increment;
2440                        //echo form_relance ("v5.18");
2441                        //break;
2442
2443//case "v5.18":
2444                        echo "<table ><tr><th>".$msg['admin_misc_action']."</th><th>".$msg['admin_misc_resultat']."</th></tr>";
2445                        // +-------------------------------------------------+
2446
2447                        //MB - Ajout index sur le nom des fichiers numériques pour accélérer la recherche
2448                        $add_index=true;
2449                        $req="SHOW INDEX FROM explnum";
2450                        $res=pmb_mysql_query($req);
2451                        if($res && pmb_mysql_num_rows($res)){
2452                                while ($ligne = pmb_mysql_fetch_object($res)){
2453                                        if($ligne->Column_name == "explnum_nomfichier"){
2454                                                $add_index=false;
2455                                                break;
2456                                        }
2457                                }
2458                        }
2459                        if($add_index){
2460                                @set_time_limit(0);
2461                                pmb_mysql_query("set wait_timeout=28800", $dbh);
2462                                $rqt = "alter table explnum add index i_explnum_nomfichier(explnum_nomfichier(30))";
2463                                echo traite_rqt($rqt,"alter table explnum add index i_explnum_nomfichier");
2464                        }
2465
2466                        //JP - Ajout deux index sur les liens entre actes pour accélérer la recherche
2467                        $rqt = "alter table liens_actes drop index i_num_acte";
2468                        echo traite_rqt($rqt,"alter table liens_actes drop index i_num_acte");
2469                        $rqt = "alter table liens_actes add index i_num_acte(num_acte)";
2470                        echo traite_rqt($rqt,"alter table liens_actes add index i_num_acte");
2471
2472                        $rqt = "alter table liens_actes drop index i_num_acte_lie";
2473                        echo traite_rqt($rqt,"alter table liens_actes drop index i_num_acte_lie");
2474                        $rqt = "alter table liens_actes add index i_num_acte_lie(num_acte_lie)";
2475                        echo traite_rqt($rqt,"alter table liens_actes add index i_num_acte_lie");
2476
2477                        //JP - Modification taille du champ mailtpl_tpl de la table mailtpl
2478                        $rqt ="alter table mailtpl MODIFY mailtpl_tpl MEDIUMTEXT NOT NULL";
2479                        echo traite_rqt($rqt,"alter table mailtpl modify mailtpl_tpl mediumtext");
2480
2481                        //JP - Nettoyage des catégories sans libellé
2482                        $rqt ="DELETE FROM categories WHERE libelle_categorie=''";
2483                        echo traite_rqt($rqt,"Delete categories sans libellé");
2484
2485                        // JP - Abonnements - nom du périodique par défaut en création d'abonnement
2486                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='abt_label_perio' "))==0){
2487                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2488                                                        VALUES (0, 'pmb', 'abt_label_perio', '0', 'Création d\'un abonnement : reprendre le nom du périodique ?\n 0: Non \n 1: Oui.','',0)";
2489                                echo traite_rqt($rqt,"insert pmb_abt_label_perio = 0 into parametres");
2490                        }
2491
2492                        // JP - Acquisitions - afficher le nom de l'abonnement dans les lignes de la commande
2493                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'acquisition' and sstype_param='show_abt_in_cmde' "))==0){
2494                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2495                                                VALUES (0, 'acquisition', 'show_abt_in_cmde', '0', 'Afficher l\'abonnement dans les lignes de la commande ?\n 0: Non \n 1: Oui.','',0)";
2496                                echo traite_rqt($rqt,"insert acquisition_show_abt_in_cmde = 0 into parametres");
2497                        }
2498
2499                        // NG - Nomenclature: Familles
2500                        $rqt = "CREATE TABLE if not exists nomenclature_families (
2501                                        id_family int unsigned NOT NULL auto_increment,
2502                                        family_name varchar(255) NOT NULL DEFAULT '',
2503                                        family_order int unsigned NOT NULL DEFAULT 0,
2504                                        PRIMARY KEY (id_family))";
2505                        echo traite_rqt($rqt,"CREATE TABLE nomenclature_families");
2506
2507                        // NG - Nomenclature: pupitres
2508                        $rqt = "CREATE TABLE if not exists nomenclature_musicstands (
2509                                        id_musicstand int unsigned NOT NULL auto_increment,
2510                                        musicstand_name varchar(255) NOT NULL DEFAULT '',
2511                                        musicstand_famille_num int unsigned NOT NULL DEFAULT 0,
2512                                        musicstand_division int unsigned NOT NULL DEFAULT 0,
2513                                        musicstand_order int unsigned NOT NULL DEFAULT 0,
2514                                        musicstand_workshop int unsigned NOT NULL DEFAULT 0,
2515                                        PRIMARY KEY (id_musicstand))";
2516                        echo traite_rqt($rqt,"CREATE TABLE nomenclature_musicstands");
2517
2518                        // NG - Nomenclature: instruments
2519                        $rqt = "CREATE TABLE if not exists nomenclature_instruments (
2520                                        id_instrument int unsigned NOT NULL auto_increment,
2521                                        instrument_code varchar(255) NOT NULL DEFAULT '',
2522                                        instrument_name varchar(255) NOT NULL DEFAULT '',
2523                                        instrument_musicstand_num int unsigned NOT NULL DEFAULT 0,
2524                                        instrument_standard int unsigned NOT NULL DEFAULT 0,
2525                                        PRIMARY KEY (id_instrument))";
2526                        echo traite_rqt($rqt,"CREATE TABLE nomenclature_instruments");
2527
2528                        //NG - Nomenclature: Formations
2529                        $rqt = "CREATE TABLE if not exists nomenclature_formations (
2530                                        id_formation int unsigned NOT NULL auto_increment,
2531                                        formation_name varchar(255) NOT NULL DEFAULT '',
2532                                        formation_nature int unsigned NOT NULL DEFAULT 0,
2533                                        formation_order int unsigned NOT NULL DEFAULT 0,
2534                                        PRIMARY KEY (id_formation))";
2535                        echo traite_rqt($rqt,"CREATE TABLE nomenclature_formations");
2536
2537                        // NG - Nomenclature: Types
2538                        $rqt = "CREATE TABLE if not exists nomenclature_types (
2539                                        id_type int unsigned NOT NULL auto_increment,
2540                                        type_name varchar(255) NOT NULL DEFAULT '',
2541                                        type_formation_num int unsigned NOT NULL DEFAULT 0,
2542                                        type_order int unsigned NOT NULL DEFAULT 0,
2543                                        PRIMARY KEY (id_type))";
2544                        echo traite_rqt($rqt,"CREATE TABLE nomenclature_types");
2545
2546                        // NG - Nomenclature: voix
2547                        $rqt = "CREATE TABLE if not exists nomenclature_voices (
2548                                id_voice int unsigned NOT NULL auto_increment,
2549                                voice_code varchar(255) NOT NULL DEFAULT '',
2550                                voice_name varchar(255) NOT NULL DEFAULT '',
2551                                voice_order int unsigned NOT NULL DEFAULT 0,
2552                                PRIMARY KEY (id_voice))";
2553                        echo traite_rqt($rqt,"CREATE TABLE nomenclature_voices");
2554
2555                        // NG - Nomenclature: Formations dans les notices
2556                        $rqt = "CREATE TABLE if not exists nomenclature_notices_nomenclatures (
2557                                id_notice_nomenclature int unsigned NOT NULL auto_increment,
2558                                notice_nomenclature_num_notice int unsigned NOT NULL DEFAULT 0,
2559                                notice_nomenclature_num_formation int unsigned NOT NULL DEFAULT 0,
2560                                notice_nomenclature_num_type int unsigned NOT NULL DEFAULT 0,
2561                                notice_nomenclature_label varchar(255) NOT NULL DEFAULT '',
2562                                notice_nomenclature_abbreviation TEXT NOT NULL ,
2563                                notice_nomenclature_notes TEXT NOT NULL,
2564                                notice_nomenclature_order int unsigned NOT NULL DEFAULT 0,
2565                                PRIMARY KEY (id_notice_nomenclature))";
2566                        echo traite_rqt($rqt,"CREATE TABLE nomenclature_notices_nomenclatures");
2567
2568                        // NG - Nomenclature: Ateliers des formations de la notice
2569                        $rqt = "CREATE TABLE if not exists nomenclature_workshops (
2570                                id_workshop int unsigned NOT NULL auto_increment,
2571                                workshop_label varchar(255) NOT NULL DEFAULT '',
2572                                workshop_num_nomenclature int unsigned NOT NULL DEFAULT 0,
2573                                workshop_order int unsigned NOT NULL DEFAULT 0,
2574                                PRIMARY KEY (id_workshop))";
2575                        echo traite_rqt($rqt,"CREATE TABLE nomenclature_workshops");
2576
2577                        // NG - Nomenclature: Instruments des ateliers de la notice
2578                        $rqt = "CREATE TABLE if not exists nomenclature_workshops_instruments (
2579                                id_workshop_instrument int unsigned NOT NULL auto_increment,
2580                                workshop_instrument_num_workshop int unsigned NOT NULL DEFAULT 0,
2581                                workshop_instrument_num_instrument int unsigned NOT NULL DEFAULT 0,
2582                                workshop_instrument_number int unsigned NOT NULL DEFAULT 0,
2583                                workshop_instrument_order int unsigned NOT NULL DEFAULT 0,
2584                                PRIMARY KEY (id_workshop_instrument))";
2585                        echo traite_rqt($rqt,"CREATE TABLE nomenclature_workshops_instruments");
2586
2587                        // NG - Nomenclature: Instruments non standards de la formation de la notice
2588                        $rqt = "CREATE TABLE if not exists nomenclature_exotic_instruments (
2589                                id_exotic_instrument int unsigned NOT NULL auto_increment,
2590                                exotic_instrument_num_nomenclature int unsigned NOT NULL DEFAULT 0,
2591                                exotic_instrument_num_instrument int unsigned NOT NULL DEFAULT 0,
2592                                exotic_instrument_number int unsigned NOT NULL DEFAULT 0,
2593                                exotic_instrument_order int unsigned NOT NULL DEFAULT 0,
2594                                PRIMARY KEY (id_exotic_instrument))";
2595                        echo traite_rqt($rqt,"CREATE TABLE nomenclature_exotic_instruments");
2596
2597
2598                        // NG - Nomenclature: Instruments non standards autres de la formation de la notice
2599                        $rqt = "CREATE TABLE if not exists nomenclature_exotic_other_instruments (
2600                                id_exotic_other_instrument int unsigned NOT NULL auto_increment,
2601                                exotic_other_instrument_num_exotic_instrument int unsigned NOT NULL DEFAULT 0,
2602                                exotic_other_instrument_num_instrument int unsigned NOT NULL DEFAULT 0,
2603                                exotic_other_instrument_order int unsigned NOT NULL DEFAULT 0,
2604                                PRIMARY KEY (id_exotic_other_instrument))";
2605                        echo traite_rqt($rqt,"CREATE TABLE nomenclature_exotic_other_instruments");
2606
2607                        // NG - Nomenclature: notices filles
2608                        $rqt = "CREATE TABLE if not exists nomenclature_children_records (
2609                                child_record_num_record int unsigned NOT NULL DEFAULT 0,
2610                                child_record_num_formation int unsigned NOT NULL DEFAULT 0,
2611                                child_record_num_type int unsigned NOT NULL DEFAULT 0,
2612                                child_record_num_musicstand int unsigned NOT NULL DEFAULT 0,
2613                                child_record_num_instrument int unsigned NOT NULL DEFAULT 0,
2614                                child_record_effective int unsigned NOT NULL DEFAULT 0,
2615                                child_record_order int unsigned NOT NULL DEFAULT 0,
2616                                child_record_other varchar(255) NOT NULL DEFAULT '',
2617                                child_record_num_voice int unsigned NOT NULL DEFAULT 0,
2618                                child_record_num_workshop int unsigned NOT NULL DEFAULT 0,
2619                                PRIMARY KEY (child_record_num_record))";
2620                        echo traite_rqt($rqt,"CREATE TABLE nomenclature_children_records");
2621
2622                        // NG - Ajout paramètre pour identifier le type de relation entre une notice de nomenclature et ses notices filles
2623                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='nomenclature_record_children_link' "))==0){
2624                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2625                                VALUES ( 'pmb', 'nomenclature_record_children_link', '', 'Type de relation entre une notice de nomenclature et ses notices filles.','', 0)";
2626                                echo traite_rqt($rqt,"insert pmb_nomenclature_record_children_link");
2627                        }
2628
2629                        // NG - Ajout paramètre pour activer les nomenclatures
2630                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='nomenclature_activate' "))==0){
2631                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2632                                VALUES ( 'pmb', 'nomenclature_activate', '0', 'Activation des nomenclatures:\n 0 : non \n 1 : oui','', 0)";
2633                                echo traite_rqt($rqt,"insert pmb_nomenclature_activate into parametres");
2634                        }
2635
2636                        //MHo - Augmentation de la taille du champ pour les titres_uniformes
2637                        $rqt = "ALTER TABLE titres_uniformes MODIFY tu_sujet TEXT NOT NULL";
2638                        echo traite_rqt($rqt,"ALTER TABLE titres_uniformes MODIFY tu_sujet TEXT NOT NULL");
2639
2640                        // MB - Affichage liste des bulletins - Modification explication du paramètre
2641                        $rqt = "UPDATE parametres SET comment_param='Fonction d\'affichage de la liste des bulletins d\'un périodique\nValeurs possibles:\naffichage_liste_bulletins_normale (Si paramètre vide)\naffichage_liste_bulletins_tableau\naffichage_liste_bulletins_depliable' WHERE type_param= 'opac' and sstype_param='fonction_affichage_liste_bull'";
2642                        echo traite_rqt($rqt,"UPDATE parametres opac_fonction_affichage_liste_bull");
2643
2644                        // VT & DG - Création des tables de veilles
2645                        $rqt="create table if not exists docwatch_watches(
2646                                id_watch int unsigned not null auto_increment primary key,
2647                                watch_title varchar(255) not null default '',
2648                                watch_owner int unsigned not null default 0,
2649                                watch_allowed_users varchar(255) not null default '',
2650                                watch_num_category int unsigned not null default 0,
2651                                watch_last_date datetime,
2652                                watch_ttl int unsigned not null default 0,
2653                                index i_docwatch_watch_title(watch_title)
2654                                )";
2655                        echo traite_rqt($rqt, "create table docwatch_watches");
2656
2657                        $rqt="create table if not exists docwatch_datasources(
2658                                id_datasource int unsigned not null auto_increment primary key,
2659                                datasource_type varchar(255) not null default '',
2660                                datasource_title varchar(255) not null default '',
2661                                datasource_ttl int unsigned not null default 0,
2662                                datasource_last_date datetime,
2663                                datasource_parameters mediumtext not null,
2664                                datasource_num_category int unsigned not null default 0,
2665                                datasource_default_interesting int unsigned not null default 0,
2666                                datasource_num_watch int unsigned not null default 0,
2667                                index i_docwatch_datasource_title(datasource_title)
2668                                )";
2669                        echo traite_rqt($rqt, "create table docwatch_datasources");
2670
2671                        $rqt="create table if not exists docwatch_selectors (
2672                                id_selector int unsigned not null auto_increment primary key,
2673                                selector_type varchar(255) not null default '',
2674                                selector_num_datasource int unsigned not null default 0,
2675                                selector_parameters mediumtext not null
2676                                )";
2677                        echo traite_rqt($rqt, "create table docwatch_selectors");
2678
2679                        $rqt="create table if not exists docwatch_items(
2680                                id_item int unsigned not null auto_increment primary key,
2681                                item_type varchar(255) not null default '',
2682                                item_title varchar(255) not null default '',
2683                                item_summary mediumtext not null,
2684                                item_content mediumtext not null,
2685                                item_added_date datetime,
2686                                item_publication_date datetime,
2687                                item_hash varchar(255) not null default '',
2688                                item_url varchar(255) not null default '',
2689                                item_logo_url varchar(255) not null default '',
2690                                item_status int unsigned not null default 0,
2691                                item_interesting int unsigned not null default 0,
2692                                item_num_article int unsigned not null default 0,
2693                                item_num_section int unsigned not null default 0,
2694                                item_num_notice int unsigned not null default 0,
2695                                item_num_datasource int unsigned not null default 0,
2696                                item_num_watch int unsigned not null default 0,
2697                                index i_docwatch_item_type(item_type),
2698                                index i_docwatch_item_title(item_title),
2699                                index i_docwatch_item_num_article(item_num_article),
2700                                index i_docwatch_item_num_section(item_num_section),
2701                                index i_docwatch_item_num_notice(item_num_notice),
2702                                index i_docwatch_item_num_watch(item_num_watch)
2703                                )";
2704                        echo traite_rqt($rqt, "create table docwatch_items");
2705
2706                        $rqt="create table if not exists docwatch_items_descriptors(
2707                                num_item int unsigned not null default 0,
2708                                num_noeud int unsigned not null default 0,
2709                                primary key (num_item, num_noeud)
2710                                )";
2711                        echo traite_rqt($rqt, "create table docwatch_items_descriptors");
2712
2713                        $rqt="create table if not exists docwatch_categories(
2714                                id_category int unsigned not null auto_increment primary key,
2715                                category_title varchar(255) not null default '',
2716                                category_num_parent int unsigned not null default 0
2717                                )";
2718                        echo traite_rqt($rqt, "create table docwatch_categories");
2719
2720                        $rqt="create table if not exists docwatch_items_tags(
2721                                num_item int unsigned not null default 0,
2722                                num_tag int unsigned not null default 0,
2723                                primary key (num_item, num_tag)
2724                                )";
2725                        echo traite_rqt($rqt, "create table docwatch_items_tags");
2726
2727                        $rqt="create table if not exists docwatch_tags(
2728                                id_tag int unsigned not null auto_increment primary key,
2729                                tag_title varchar(255) not null default ''
2730                                )";
2731                        echo traite_rqt($rqt, "create table docwatch_tags");
2732
2733                        $rqt = "ALTER TABLE docwatch_watches ADD watch_desc text NOT NULL" ;
2734                        echo traite_rqt($rqt,"ALTER TABLE docwatch_watches ADD watch_desc ");
2735
2736                        $rqt = "ALTER TABLE docwatch_watches ADD watch_logo_url varchar(255) NOT NULL default ''" ;
2737                        echo traite_rqt($rqt,"ALTER TABLE docwatch_watches ADD watch_logo_url ");
2738
2739                        $rqt = "ALTER TABLE docwatch_watches ADD watch_record_default_type char(2) not null default 'a'" ;
2740                        echo traite_rqt($rqt,"ALTER TABLE docwatch_watches ADD watch_record_default_type ");
2741
2742                        $rqt = "ALTER TABLE docwatch_watches ADD watch_record_default_status int unsigned not null default 0" ;
2743                        echo traite_rqt($rqt,"ALTER TABLE docwatch_watches ADD watch_record_default_status ");
2744
2745                        $rqt = "ALTER TABLE docwatch_watches ADD watch_article_default_parent int unsigned not null default 0" ;
2746                        echo traite_rqt($rqt,"ALTER TABLE docwatch_watches ADD watch_article_default_parent");
2747
2748                        $rqt = "ALTER TABLE docwatch_watches ADD watch_article_default_content_type int unsigned not null default 0" ;
2749                        echo traite_rqt($rqt,"ALTER TABLE docwatch_watches ADD watch_article_default_content_type ");
2750
2751                        $rqt = "ALTER TABLE docwatch_watches ADD watch_article_default_publication_status int unsigned not null default 0" ;
2752                        echo traite_rqt($rqt,"ALTER TABLE docwatch_watches ADD watch_article_default_content_publication_status ");
2753
2754                        $rqt = "ALTER TABLE docwatch_watches ADD watch_section_default_parent int unsigned not null default 0" ;
2755                        echo traite_rqt($rqt,"ALTER TABLE docwatch_watches ADD watch_section_default_parent");
2756
2757                        $rqt = "ALTER TABLE docwatch_watches ADD watch_section_default_content_type int unsigned not null default 0" ;
2758                        echo traite_rqt($rqt,"ALTER TABLE docwatch_watches ADD watch_section_default_content_type ");
2759
2760                        $rqt = "ALTER TABLE docwatch_watches ADD watch_section_default_publication_status int unsigned not null default 0" ;
2761                        echo traite_rqt($rqt,"ALTER TABLE docwatch_watches ADD watch_section_default_content_publication_status ");
2762
2763                        // NG - Demandes: Ajout d'un paramètre permettant de saisir un email générique pour la gestion des demanades
2764                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'demandes' and sstype_param='email_generic' "))==0){
2765                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2766                                VALUES (0, 'demandes', 'email_generic', '',
2767                                'Information par un email générique de l\'évolution des demandes.\n 1,adrmail@mail.fr : Envoi une copie uniquement pour toutes les nouvelles demandes\n 2,adrmail@mail.fr : Envoi une copie uniquement des mails envoyés aux personnes affectées\n 3,adrmail@mail.fr : Envoi une copie dans les 2 cas précédents\n ',
2768                                '',0) ";
2769                                echo traite_rqt($rqt, "insert demandes_email_generic into parameters");
2770                        }
2771
2772                        // NG - Demandes: Ajout d'un paramètre permettant d'afficher le format simplifié en Opac
2773                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='demandes_affichage_simplifie' "))==0){
2774                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2775                                VALUES (0, 'opac', 'demandes_affichage_simplifie', '0',
2776                                'Active le format simplifié des demandes en Opac:\n 0 : non \n 1 : oui',
2777                                'a_general',0) ";
2778                                echo traite_rqt($rqt, "insert opac_demandes_affichage_simplifie into parameters");
2779                        }
2780
2781                        // NG - Demandes: Ajout d'un paramètre permettant d'interdire l'ajout d'une action en Opac
2782                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='demandes_no_action' "))==0){
2783                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2784                                VALUES (0, 'opac', 'demandes_no_action', '0',
2785                                'Interdire l\'ajout d\'une action en Opac:\n 0 : non \n 1 : oui',
2786                                'a_general',0) ";
2787                                echo traite_rqt($rqt, "insert opac_demandes_no_action into parameters");
2788                        }
2789
2790                        // NG - Demandes: lien entre la note générant la réponse finale d'une demande
2791                        $rqt = "ALTER TABLE demandes ADD demande_note_num int unsigned not null default 0" ;
2792                        echo traite_rqt($rqt,"ALTER TABLE demandes ADD demande_note_num ");
2793
2794                        //JP - Modification de la longueur du champ email de la table coordonnees
2795                        $rqt = "ALTER TABLE coordonnees MODIFY email varchar(255) NOT NULL default '' ";
2796                        echo traite_rqt($rqt,"alter table coordonnees modify email");
2797
2798                        // DG - Veilles : Option pour nettoyer le contenu HTML des nouveaux éléments
2799                        $rqt = "ALTER TABLE docwatch_datasources ADD datasource_clean_html int unsigned not null default 1 after datasource_default_interesting" ;
2800                        echo traite_rqt($rqt,"ALTER TABLE docwatch_datasources ADD datasource_clean_html ");
2801
2802                        // VT - Ajout paramètre pour definir le ratio minimum d'une emprise pour qu'elle s'affiche
2803                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='map_hold_ratio_min' "))==0){
2804                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2805                                VALUES ( 'pmb', 'map_hold_ratio_min', '4', 'Ratio minimum d\'occupation en pourcentage d\'une emprise pour s\'afficher','map', 0)";
2806                                echo traite_rqt($rqt,"insert pmb_map_hold_ratio_min into parametres");
2807                        }
2808
2809                        // VT - Ajout paramètre pour definir le ratio maximum d'une emprise pour qu'elle s'affiche
2810                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='map_hold_ratio_max' "))==0){
2811                        $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2812                                VALUES ( 'pmb', 'map_hold_ratio_max', '75', 'Ratio maximum d\'occupation en pourcentage d\'une emprise pour s\'afficher','map', 0)";
2813                                echo traite_rqt($rqt,"insert pmb_map_hold_ratio_max into parametres");
2814                        }
2815
2816                        // VT - Ajout paramètre pour definir le rapport de distance entre deux points pour qu'ils soit aggrégés ensembles
2817                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='map_hold_distance' "))==0){
2818                                        $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2819                                VALUES ( 'pmb', 'map_hold_distance', '10', 'Rapport de distance entre deux points pour les agréger','map', 0)";
2820                                echo traite_rqt($rqt,"insert pmb_map_hold_distance into parametres");
2821                        }
2822
2823                        // VT - Creation table de correspondance contenant les aires des différentes emprises de la base
2824                        $rqt="create table if not exists map_hold_areas as (select map_emprise_id as id_obj, map_emprise_type as type_obj, Area(map_emprise_data) as area, Area(envelope(map_emprise_data)) as bbox_area, AsText(Centroid(envelope(map_emprise_data))) as center from map_emprises)";
2825                        echo traite_rqt($rqt, "create table map_hold_areas");
2826
2827                        //VT - Verification de l'existance de la clé primaire (création si non-existante)
2828                        if (pmb_mysql_num_rows(pmb_mysql_query("show keys from map_hold_areas where column_name = 'id_obj' "))==0){
2829                                $rqt="alter table map_hold_areas add primary key(id_obj)";
2830                                echo traite_rqt($rqt, "alter table map_hold_areas add primary key");
2831                        }
2832
2833                        //NG - ajout pied de page dans template de la fiche de circulation
2834                        $rqt = "ALTER TABLE serialcirc_tpl ADD serialcirctpl_piedpage text NOT NULL ";
2835                        echo traite_rqt($rqt,"alter table serialcirc_tpl add serialcirctpl_piedpage");
2836
2837                        // AP - Ajout de la recherche dans les concepts
2838                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='modules_search_concept' "))==0) {
2839                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2840                                VALUES (0, 'opac', 'modules_search_concept', '0', 'Recherche dans les concepts : \n 0 : interdite, \n 1 : autorisée, \n 2 : autorisée et validée par défaut', 'c_recherche', 0) ";
2841                                echo traite_rqt($rqt, "insert opac_modules_search_concept into parameters");
2842                        }
2843
2844                        // VT - Ajout paramètre pour definir le ratio minimum d'une emprise pour qu'elle s'affiche (opac)
2845                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='map_hold_ratio_min' "))==0) {
2846                                $rqt = "INSERT INTO parametres (type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2847                                VALUES ('opac', 'map_hold_ratio_min', '4', 'Ratio minimum d\'occupation en pourcentage d\'une emprise pour s\'afficher', 'map', 0) ";
2848                                echo traite_rqt($rqt, "insert opac_map_hold_ratio_min into parametres");
2849                        }
2850
2851                        // VT - Ajout paramètre pour definir le ratio maximum d'une emprise pour qu'elle s'affiche (opac)
2852                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='map_hold_ratio_max' "))==0){
2853                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2854                                VALUES ( 'opac', 'map_hold_ratio_max', '75', 'Ratio maximum d\'occupation en pourcentage d\'une emprise pour s\'afficher','map', 0)";
2855                                echo traite_rqt($rqt,"insert opac_map_hold_ratio_max into parametres");
2856                        }
2857
2858                        // VT - Ajout paramètre pour definir le rapport de distance entre deux points pour qu'ils soit aggrégés ensembles (opac)
2859                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='map_hold_distance' "))==0){
2860                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2861                                VALUES ( 'opac', 'map_hold_distance', '10', 'Rapport de distance entre deux points pour les agréger','map', 0)";
2862                                echo traite_rqt($rqt,"insert opac_map_hold_distance into parametres");
2863                        }
2864
2865                        // VT - Ajout d'un index sur la colonne map_emprise_obj_num de la table map_emprises
2866                        $rqt="alter table map_emprises add index i_map_emprise_obj_num(map_emprise_obj_num)";
2867                        echo traite_rqt($rqt, "alter table map_emprises add index i_map_emprise_obj_num");
2868
2869                        // JP - Ajout champ de classement sur étagères et paniers
2870                        $rqt = "ALTER TABLE caddie ADD caddie_classement varchar(255) NOT NULL default ''" ;
2871                        echo traite_rqt($rqt,"ALTER TABLE caddie ADD caddie_classement ");
2872
2873                        $rqt = "ALTER TABLE empr_caddie ADD empr_caddie_classement varchar(255) NOT NULL default ''" ;
2874                        echo traite_rqt($rqt,"ALTER TABLE empr_caddie ADD empr_caddie_classement ");
2875
2876                        $rqt = "ALTER TABLE etagere ADD etagere_classement varchar(255) NOT NULL default ''" ;
2877                        echo traite_rqt($rqt,"ALTER TABLE etagere ADD etagere_classement ");
2878
2879                        // MB - LDAP gestion de l'encodage lors de l'import
2880                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'ldap' and sstype_param='encoding_utf8' "))==0){
2881                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2882                                        VALUES (0, 'ldap', 'encoding_utf8', '0', 'Les informations du LDAP sont en utf-8 ?\n 0: Non \n 1: Oui.','',0)";
2883                                echo traite_rqt($rqt,"insert ldap_encoding_utf8 = 0 into parametres");
2884                        }
2885
2886                        // +-------------------------------------------------+
2887                        echo "</table>";
2888                        $rqt = "update parametres set valeur_param='".$action."' where type_param='pmb' and sstype_param='bdd_version' " ;
2889                        $res = pmb_mysql_query($rqt, $dbh) ;
2890                        echo "<strong><font color='#FF0000'>".$msg[1807]." ".number_format($action, 2, ',', '.')."%</font></strong><br />";
2891                        $action=$action+$increment;
2892                        //echo form_relance ("v5.19");
2893                        //break;
2894
2895//case "v5.19":
2896                        echo "<table ><tr><th>".$msg['admin_misc_action']."</th><th>".$msg['admin_misc_resultat']."</th></tr>";
2897                        // +-------------------------------------------------+
2898
2899                        //DG - Code Javascript d'analyse d'audience
2900                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='script_analytics' "))==0){
2901                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2902                                        VALUES (0, 'opac', 'script_analytics', '', 'Code Javascript d\'analyse d\'audience (Par exemple pour Google Analytics, XiTi,..).','a_general',0)";
2903                                echo traite_rqt($rqt,"insert opac_script_analytics into parametres");
2904                        }
2905
2906                        //DG - Accessibilité OPAC : Paramètre d'activation
2907                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='accessibility' "))==0){
2908                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2909                                        VALUES (0, 'opac', 'accessibility', '1', 'Accessibilité activée.\n 0 : Non.\n 1 : Oui.','a_general',0)";
2910                                echo traite_rqt($rqt,"insert opac_accessibility = 1 into parametres");
2911                        }
2912
2913                        //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)
2914                        $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))";
2915                        echo traite_rqt($rqt,"update exemplaires transfert_location_origine");
2916
2917                        $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))";
2918                        echo traite_rqt($rqt,"update exemplaires transfert_statut_origine");
2919
2920                        // NG - Ajout paramètre indiquant la durée en jours de conservation des notices en tant que nouveauté
2921                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='newrecord_timeshift' "))==0){
2922                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2923                                VALUES ( 'pmb', 'newrecord_timeshift', '0', 'Nombre de jours de conservation des notices en tant que nouveauté.','', 0)";
2924                                echo traite_rqt($rqt,"insert pmb_newrecord_timeshift");
2925                        }
2926
2927                        // Création shorturls
2928                        $rqt="create table if not exists shorturls (
2929                                id_shorturl int unsigned not null auto_increment primary key,
2930                                shorturl_hash varchar(255) not null default '',
2931                                shorturl_last_access datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
2932                                shorturl_context text not null,
2933                                shorturl_type varchar(255) not null default '',
2934                                shorturl_action varchar(255) not null default ''
2935                        )";
2936                        echo traite_rqt($rqt,"create table shorturls");
2937
2938                        // NG - Nouveautés
2939                        $rqt = "ALTER TABLE notices ADD notice_is_new int unsigned not null default 0" ;
2940                        echo traite_rqt($rqt,"ALTER TABLE notices ADD notice_is_new ");
2941
2942                        $rqt = "ALTER TABLE notices ADD notice_date_is_new  datetime NOT NULL DEFAULT '0000-00-00 00:00:00'" ;
2943                        echo traite_rqt($rqt,"ALTER TABLE notices ADD notice_date_is_new ");
2944
2945                        // 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
2946                        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){
2947                                $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'";
2948                                echo traite_rqt($rqt, "update parametres map_max_holds gestion");
2949                        }
2950
2951                        // 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
2952                        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){
2953                                $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'";
2954                                echo traite_rqt($rqt, "update parametres map_max_holds opac");
2955                        }
2956
2957                        // DB - Modification de la table resa_planning (ajout de previsions sur bulletins)
2958                        $rqt = "alter table resa_planning add resa_idbulletin int(8) unsigned default '0' not null after resa_idnotice";
2959                        echo traite_rqt($rqt,"alter resa_planning add resa_idbulletin ");
2960
2961                        //JP - Section origine pour les transferts
2962                        $rqt = "ALTER TABLE exemplaires ADD transfert_section_origine SMALLINT(5) NOT NULL default '0'" ;
2963                        echo traite_rqt($rqt,"ALTER TABLE exemplaires ADD transfert_section_origine ");
2964
2965                        $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))";
2966                        echo traite_rqt($rqt,"update exemplaires transfert_section_origine");
2967
2968                        //AP Modification du commentaire d'opac_notices_format : Ajout des templates django
2969                        $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' ";
2970                        echo traite_rqt($rqt,"update opac_notices_format into parametres");
2971
2972                        // AP - Ajout paramètre indiquant le nom du répertoire des templates django à utiliser en affichage de notice
2973                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='notices_format_django_directory' "))==0){
2974                                $rqt = "INSERT INTO parametres ( type_param, sstype_param, valeur_param, comment_param,section_param,gestion)
2975                                        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)";
2976                                echo traite_rqt($rqt,"insert notices_format_django_directory into parametres");
2977                        }
2978
2979                        //MB: Ajouter une PK aux tables de vue
2980                        $res=pmb_mysql_query("SHOW TABLES LIKE 'opac_view_notices_%'");
2981                        if($res && pmb_mysql_num_rows($res)){
2982                                while ($r=pmb_mysql_fetch_array($res)){
2983                                        $rqt = "ALTER TABLE ".$r[0]." DROP INDEX opac_view_num_notice" ;
2984                                        echo traite_rqt($rqt,"ALTER TABLE ".$r[0]." DROP INDEX opac_view_num_notice ");
2985
2986                                        $rqt = "ALTER TABLE ".$r[0]." DROP PRIMARY KEY";
2987                                        echo traite_rqt($rqt, "ALTER TABLE ".$r[0]." DROP PRIMARY KEY");
2988
2989                                        $rqt = "ALTER TABLE ".$r[0]." ADD PRIMARY KEY (opac_view_num_notice)";
2990                                        echo traite_rqt($rqt, "ALTER TABLE ".$r[0]." ADD PRIMARY KEY");
2991                                }
2992                        }
2993
2994                        //DG - Paramètre OPAC : Autoriser le téléchargement des documents numériques
2995                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='allow_download_docnums' "))==0){
2996                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
2997                                        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)";
2998                                echo traite_rqt($rqt,"insert opac_allow_download_docnums = 1 into parametres");
2999                        }
3000
3001                        //AB - Le nom du fichier de paramétrage du selecteur d'affichage de notice
3002                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='notices_display_modes' "))==0){
3003                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
3004                                        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)";
3005                                echo traite_rqt($rqt,"insert opac_notices_display_modes='' into parametres");
3006                        }
3007
3008                        //DG - Lien pour en savoir plus sur l'utilisation des cookies et des traceurs
3009                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='url_more_about_cookies' "))==0){
3010                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
3011                                        VALUES (0, 'opac', 'url_more_about_cookies', '', 'Lien pour en savoir plus sur l\'utilisation des cookies et des traceurs','a_general',0)";
3012                                echo traite_rqt($rqt,"insert opac_url_more_about_cookies into parametres");
3013                        }
3014
3015                        //DG - MAJ du template de bannettes par défaut (identifiant 1)
3016                        $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}}'
3017                                        WHERE bannettetpl_id=1";
3018                        echo traite_rqt($rqt,"ALTER minimum into bannette_tpl");
3019
3020                        // DB - Modification de la table resa_planning (prévisions localisées)
3021                        $rqt = "alter table resa_planning add resa_loc_retrait int(5) unsigned not null default 0 ";
3022                        echo traite_rqt($rqt,"alter resa_planning add resa_loc_retrait ");
3023
3024                        // JP - Ajout champ demande abonnement sur périodique
3025                        $rqt = "ALTER TABLE notices ADD opac_serialcirc_demande TINYINT UNSIGNED NOT NULL DEFAULT 1";
3026                        echo traite_rqt($rqt,"ALTER TABLE notices ADD opac_serialcirc_demande") ;
3027
3028                        // JP - Ajout champ de classement sur infopages
3029                        $rqt = "ALTER TABLE infopages ADD infopage_classement varchar(255) NOT NULL default ''" ;
3030                        echo traite_rqt($rqt,"ALTER TABLE infopages ADD infopage_classement ");
3031
3032                        // JP - Ajout autorisations sur recherches prédéfinies gestion
3033                        $rqt = "ALTER TABLE search_perso ADD autorisations MEDIUMTEXT NULL DEFAULT NULL ";
3034                        echo traite_rqt($rqt,"ALTER TABLE search_perso ADD autorisations") ;
3035
3036                        $rqt = "UPDATE search_perso SET autorisations=num_user ";
3037                        echo traite_rqt($rqt,"UPDATE autorisations INTO search_perso");
3038
3039                        //VT - Paramètre OPAC : Definition du chemin des templates d'autorités en OPAC
3040                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='authorities_templates_folder' "))==0){
3041                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
3042                                        VALUES (0, 'opac', 'authorities_templates_folder', './includes/templates/authorities/common', 'Repertoire des templates utilisés pour l\'affichage des autorités en OPAC','',1)";
3043                                echo traite_rqt($rqt,"insert opac_authorities_templates_folder = ./includes/templates/authorities/common into parametres");
3044                        }
3045
3046                        // JP - template par défaut pour les bannettes privées
3047                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'dsi' and sstype_param='private_bannette_notices_template' "))==0){
3048                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
3049                        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)";
3050                                echo traite_rqt($rqt, "insert private_bannette_notices_template into parameters");
3051                        }
3052
3053                        // JP - ajout index manquants sur tables de champs persos
3054                        $rqt = "ALTER TABLE author_custom_values DROP INDEX i_acv_st " ;
3055                        echo traite_rqt($rqt,"DROP INDEX i_acv_st");
3056                        $rqt = "ALTER TABLE author_custom_values ADD INDEX i_acv_st(author_custom_small_text)" ;
3057                        echo traite_rqt($rqt,"ALTER TABLE author_custom_values ADD INDEX i_acv_st");
3058
3059                        $rqt = "ALTER TABLE author_custom_values DROP INDEX i_acv_t " ;
3060                        echo traite_rqt($rqt,"DROP INDEX i_acv_t");
3061                        $rqt = "ALTER TABLE author_custom_values ADD INDEX i_acv_t(author_custom_text(255))" ;
3062                        echo traite_rqt($rqt,"ALTER TABLE author_custom_values ADD INDEX i_acv_t");
3063
3064                        $rqt = "ALTER TABLE author_custom_values DROP INDEX i_acv_i " ;
3065                        echo traite_rqt($rqt,"DROP INDEX i_acv_i");
3066                        $rqt = "ALTER TABLE author_custom_values ADD INDEX i_acv_i(author_custom_integer)" ;
3067                        echo traite_rqt($rqt,"ALTER TABLE author_custom_values ADD INDEX i_acv_i");
3068
3069                        $rqt = "ALTER TABLE author_custom_values DROP INDEX i_acv_d " ;
3070                        echo traite_rqt($rqt,"DROP INDEX i_acv_d");
3071                        $rqt = "ALTER TABLE author_custom_values ADD INDEX i_acv_d(author_custom_date)" ;
3072                        echo traite_rqt($rqt,"ALTER TABLE author_custom_values ADD INDEX i_acv_d");
3073
3074                        $rqt = "ALTER TABLE author_custom_values DROP INDEX i_acv_f " ;
3075                        echo traite_rqt($rqt,"DROP INDEX i_acv_f");
3076                        $rqt = "ALTER TABLE author_custom_values ADD INDEX i_acv_f(author_custom_float)" ;
3077                        echo traite_rqt($rqt,"ALTER TABLE author_custom_values ADD INDEX i_acv_f");
3078
3079                        $rqt = "ALTER TABLE authperso_custom_values DROP INDEX i_acv_st " ;
3080                        echo traite_rqt($rqt,"DROP INDEX i_acv_st");
3081                        $rqt = "ALTER TABLE authperso_custom_values ADD INDEX i_acv_st(authperso_custom_small_text)" ;
3082                        echo traite_rqt($rqt,"ALTER TABLE authperso_custom_values ADD INDEX i_acv_st");
3083
3084                        $rqt = "ALTER TABLE authperso_custom_values DROP INDEX i_acv_t " ;
3085                        echo traite_rqt($rqt,"DROP INDEX i_acv_t");
3086                        $rqt = "ALTER TABLE authperso_custom_values ADD INDEX i_acv_t(authperso_custom_text(255))" ;
3087                        echo traite_rqt($rqt,"ALTER TABLE authperso_custom_values ADD INDEX i_acv_t");
3088
3089                        $rqt = "ALTER TABLE authperso_custom_values DROP INDEX i_acv_i " ;
3090                        echo traite_rqt($rqt,"DROP INDEX i_acv_i");
3091                        $rqt = "ALTER TABLE authperso_custom_values ADD INDEX i_acv_i(authperso_custom_integer)" ;
3092                        echo traite_rqt($rqt,"ALTER TABLE authperso_custom_values ADD INDEX i_acv_i");
3093
3094                        $rqt = "ALTER TABLE authperso_custom_values DROP INDEX i_acv_d " ;
3095                        echo traite_rqt($rqt,"DROP INDEX i_acv_d");
3096                        $rqt = "ALTER TABLE authperso_custom_values ADD INDEX i_acv_d(authperso_custom_date)" ;
3097                        echo traite_rqt($rqt,"ALTER TABLE authperso_custom_values ADD INDEX i_acv_d");
3098
3099                        $rqt = "ALTER TABLE authperso_custom_values DROP INDEX i_acv_f " ;
3100                        echo traite_rqt($rqt,"DROP INDEX i_acv_f");
3101                        $rqt = "ALTER TABLE authperso_custom_values ADD INDEX i_acv_f(authperso_custom_float)" ;
3102                        echo traite_rqt($rqt,"ALTER TABLE authperso_custom_values ADD INDEX i_acv_f");
3103
3104                        $rqt = "ALTER TABLE categ_custom_values DROP INDEX i_ccv_st " ;
3105                        echo traite_rqt($rqt,"DROP INDEX i_ccv_st");
3106                        $rqt = "ALTER TABLE categ_custom_values ADD INDEX i_ccv_st(categ_custom_small_text)" ;
3107                        echo traite_rqt($rqt,"ALTER TABLE categ_custom_values ADD INDEX i_ccv_st");
3108
3109                        $rqt = "ALTER TABLE categ_custom_values DROP INDEX i_ccv_t " ;
3110                        echo traite_rqt($rqt,"DROP INDEX i_ccv_t");
3111                        $rqt = "ALTER TABLE categ_custom_values ADD INDEX i_ccv_t(categ_custom_text(255))" ;
3112                        echo traite_rqt($rqt,"ALTER TABLE categ_custom_values ADD INDEX i_ccv_t");
3113
3114                        $rqt = "ALTER TABLE categ_custom_values DROP INDEX i_ccv_i " ;
3115                        echo traite_rqt($rqt,"DROP INDEX i_ccv_i");
3116                        $rqt = "ALTER TABLE categ_custom_values ADD INDEX i_ccv_i(categ_custom_integer)" ;
3117                        echo traite_rqt($rqt,"ALTER TABLE categ_custom_values ADD INDEX i_ccv_i");
3118
3119                        $rqt = "ALTER TABLE categ_custom_values DROP INDEX i_ccv_d " ;
3120                        echo traite_rqt($rqt,"DROP INDEX i_ccv_d");
3121                        $rqt = "ALTER TABLE categ_custom_values ADD INDEX i_ccv_d(categ_custom_date)" ;
3122                        echo traite_rqt($rqt,"ALTER TABLE categ_custom_values ADD INDEX i_ccv_d");
3123
3124                        $rqt = "ALTER TABLE categ_custom_values DROP INDEX i_ccv_f " ;
3125                        echo traite_rqt($rqt,"DROP INDEX i_ccv_f");
3126                        $rqt = "ALTER TABLE categ_custom_values ADD INDEX i_ccv_f(categ_custom_float)" ;
3127                        echo traite_rqt($rqt,"ALTER TABLE categ_custom_values ADD INDEX i_ccv_f");
3128
3129                        $rqt = "ALTER TABLE cms_editorial_custom_values DROP INDEX i_ccv_st " ;
3130                        echo traite_rqt($rqt,"DROP INDEX i_ccv_st");
3131                        $rqt = "ALTER TABLE cms_editorial_custom_values ADD INDEX i_ccv_st(cms_editorial_custom_small_text)" ;
3132                        echo traite_rqt($rqt,"ALTER TABLE cms_editorial_custom_values ADD INDEX i_ccv_st");
3133
3134                        $rqt = "ALTER TABLE cms_editorial_custom_values DROP INDEX i_ccv_t " ;
3135                        echo traite_rqt($rqt,"DROP INDEX i_ccv_t");
3136                        $rqt = "ALTER TABLE cms_editorial_custom_values ADD INDEX i_ccv_t(cms_editorial_custom_text(255))" ;
3137                        echo traite_rqt($rqt,"ALTER TABLE cms_editorial_custom_values ADD INDEX i_ccv_t");
3138
3139                        $rqt = "ALTER TABLE cms_editorial_custom_values DROP INDEX i_ccv_i " ;
3140                        echo traite_rqt($rqt,"DROP INDEX i_ccv_i");
3141                        $rqt = "ALTER TABLE cms_editorial_custom_values ADD INDEX i_ccv_i(cms_editorial_custom_integer)" ;
3142                        echo traite_rqt($rqt,"ALTER TABLE cms_editorial_custom_values ADD INDEX i_ccv_i");
3143
3144                        $rqt = "ALTER TABLE cms_editorial_custom_values DROP INDEX i_ccv_d " ;
3145                        echo traite_rqt($rqt,"DROP INDEX i_ccv_d");
3146                        $rqt = "ALTER TABLE cms_editorial_custom_values ADD INDEX i_ccv_d(cms_editorial_custom_date)" ;
3147                        echo traite_rqt($rqt,"ALTER TABLE cms_editorial_custom_values ADD INDEX i_ccv_d");
3148
3149                        $rqt = "ALTER TABLE cms_editorial_custom_values DROP INDEX i_ccv_f " ;
3150                        echo traite_rqt($rqt,"DROP INDEX i_ccv_f");
3151                        $rqt = "ALTER TABLE cms_editorial_custom_values ADD INDEX i_ccv_f(cms_editorial_custom_float)" ;
3152                        echo traite_rqt($rqt,"ALTER TABLE cms_editorial_custom_values ADD INDEX i_ccv_f");
3153
3154                        $rqt = "ALTER TABLE collection_custom_values DROP INDEX i_ccv_st " ;
3155                        echo traite_rqt($rqt,"DROP INDEX i_ccv_st");
3156                        $rqt = "ALTER TABLE collection_custom_values ADD INDEX i_ccv_st(collection_custom_small_text)" ;
3157                        echo traite_rqt($rqt,"ALTER TABLE collection_custom_values ADD INDEX i_ccv_st");
3158
3159                        $rqt = "ALTER TABLE collection_custom_values DROP INDEX i_ccv_t " ;
3160                        echo traite_rqt($rqt,"DROP INDEX i_ccv_t");
3161                        $rqt = "ALTER TABLE collection_custom_values ADD INDEX i_ccv_t(collection_custom_text(255))" ;
3162                        echo traite_rqt($rqt,"ALTER TABLE collection_custom_values ADD INDEX i_ccv_t");
3163
3164                        $rqt = "ALTER TABLE collection_custom_values DROP INDEX i_ccv_i " ;
3165                        echo traite_rqt($rqt,"DROP INDEX i_ccv_i");
3166                        $rqt = "ALTER TABLE collection_custom_values ADD INDEX i_ccv_i(collection_custom_integer)" ;
3167                        echo traite_rqt($rqt,"ALTER TABLE collection_custom_values ADD INDEX i_ccv_i");
3168
3169                        $rqt = "ALTER TABLE collection_custom_values DROP INDEX i_ccv_d " ;
3170                        echo traite_rqt($rqt,"DROP INDEX i_ccv_d");
3171                        $rqt = "ALTER TABLE collection_custom_values ADD INDEX i_ccv_d(collection_custom_date)" ;
3172                        echo traite_rqt($rqt,"ALTER TABLE collection_custom_values ADD INDEX i_ccv_d");
3173
3174                        $rqt = "ALTER TABLE collection_custom_values DROP INDEX i_ccv_f " ;
3175                        echo traite_rqt($rqt,"DROP INDEX i_ccv_f");
3176                        $rqt = "ALTER TABLE collection_custom_values ADD INDEX i_ccv_f(collection_custom_float)" ;
3177                        echo traite_rqt($rqt,"ALTER TABLE collection_custom_values ADD INDEX i_ccv_f");
3178
3179                        $rqt = "ALTER TABLE gestfic0_custom_values DROP INDEX i_gcv_st " ;
3180                        echo traite_rqt($rqt,"DROP INDEX i_gcv_st");
3181                        $rqt = "ALTER TABLE gestfic0_custom_values ADD INDEX i_gcv_st(gestfic0_custom_small_text)" ;
3182                        echo traite_rqt($rqt,"ALTER TABLE gestfic0_custom_values ADD INDEX i_gcv_st");
3183
3184                        $rqt = "ALTER TABLE gestfic0_custom_values DROP INDEX i_gcv_t " ;
3185                        echo traite_rqt($rqt,"DROP INDEX i_gcv_t");
3186                        $rqt = "ALTER TABLE gestfic0_custom_values ADD INDEX i_gcv_t(gestfic0_custom_text(255))" ;
3187                        echo traite_rqt($rqt,"ALTER TABLE gestfic0_custom_values ADD INDEX i_gcv_t");
3188
3189                        $rqt = "ALTER TABLE gestfic0_custom_values DROP INDEX i_gcv_i " ;
3190                        echo traite_rqt($rqt,"DROP INDEX i_gcv_i");
3191                        $rqt = "ALTER TABLE gestfic0_custom_values ADD INDEX i_gcv_i(gestfic0_custom_integer)" ;
3192                        echo traite_rqt($rqt,"ALTER TABLE gestfic0_custom_values ADD INDEX i_gcv_i");
3193
3194                        $rqt = "ALTER TABLE gestfic0_custom_values DROP INDEX i_gcv_d " ;
3195                        echo traite_rqt($rqt,"DROP INDEX i_gcv_d");
3196                        $rqt = "ALTER TABLE gestfic0_custom_values ADD INDEX i_gcv_d(gestfic0_custom_date)" ;
3197                        echo traite_rqt($rqt,"ALTER TABLE gestfic0_custom_values ADD INDEX i_gcv_d");
3198
3199                        $rqt = "ALTER TABLE gestfic0_custom_values DROP INDEX i_gcv_f " ;
3200                        echo traite_rqt($rqt,"DROP INDEX i_gcv_f");
3201                        $rqt = "ALTER TABLE gestfic0_custom_values ADD INDEX i_gcv_f(gestfic0_custom_float)" ;
3202                        echo traite_rqt($rqt,"ALTER TABLE gestfic0_custom_values ADD INDEX i_gcv_f");
3203
3204                        $rqt = "ALTER TABLE indexint_custom_values DROP INDEX i_icv_st " ;
3205                        echo traite_rqt($rqt,"DROP INDEX i_icv_st");
3206                        $rqt = "ALTER TABLE indexint_custom_values ADD INDEX i_icv_st(indexint_custom_small_text)" ;
3207                        echo traite_rqt($rqt,"ALTER TABLE indexint_custom_values ADD INDEX i_icv_st");
3208
3209                        $rqt = "ALTER TABLE indexint_custom_values DROP INDEX i_icv_t " ;
3210                        echo traite_rqt($rqt,"DROP INDEX i_icv_t");
3211                        $rqt = "ALTER TABLE indexint_custom_values ADD INDEX i_icv_t(indexint_custom_text(255))" ;
3212                        echo traite_rqt($rqt,"ALTER TABLE indexint_custom_values ADD INDEX i_icv_t");
3213
3214                        $rqt = "ALTER TABLE indexint_custom_values DROP INDEX i_icv_i " ;
3215                        echo traite_rqt($rqt,"DROP INDEX i_icv_i");
3216                        $rqt = "ALTER TABLE indexint_custom_values ADD INDEX i_icv_i(indexint_custom_integer)" ;
3217                        echo traite_rqt($rqt,"ALTER TABLE indexint_custom_values ADD INDEX i_icv_i");
3218
3219                        $rqt = "ALTER TABLE indexint_custom_values DROP INDEX i_icv_d " ;
3220                        echo traite_rqt($rqt,"DROP INDEX i_icv_d");
3221                        $rqt = "ALTER TABLE indexint_custom_values ADD INDEX i_icv_d(indexint_custom_date)" ;
3222                        echo traite_rqt($rqt,"ALTER TABLE indexint_custom_values ADD INDEX i_icv_d");
3223
3224                        $rqt = "ALTER TABLE indexint_custom_values DROP INDEX i_icv_f " ;
3225                        echo traite_rqt($rqt,"DROP INDEX i_icv_f");
3226                        $rqt = "ALTER TABLE indexint_custom_values ADD INDEX i_icv_f(indexint_custom_float)" ;
3227                        echo traite_rqt($rqt,"ALTER TABLE indexint_custom_values ADD INDEX i_icv_f");
3228
3229                        $rqt = "ALTER TABLE publisher_custom_values DROP INDEX i_pcv_st " ;
3230                        echo traite_rqt($rqt,"DROP INDEX i_pcv_st");
3231                        $rqt = "ALTER TABLE publisher_custom_values ADD INDEX i_pcv_st(publisher_custom_small_text)" ;
3232                        echo traite_rqt($rqt,"ALTER TABLE publisher_custom_values ADD INDEX i_pcv_st");
3233
3234                        $rqt = "ALTER TABLE publisher_custom_values DROP INDEX i_pcv_t " ;
3235                        echo traite_rqt($rqt,"DROP INDEX i_pcv_t");
3236                        $rqt = "ALTER TABLE publisher_custom_values ADD INDEX i_pcv_t(publisher_custom_text(255))" ;
3237                        echo traite_rqt($rqt,"ALTER TABLE publisher_custom_values ADD INDEX i_pcv_t");
3238
3239                        $rqt = "ALTER TABLE publisher_custom_values DROP INDEX i_pcv_i " ;
3240                        echo traite_rqt($rqt,"DROP INDEX i_pcv_i");
3241                        $rqt = "ALTER TABLE publisher_custom_values ADD INDEX i_pcv_i(publisher_custom_integer)" ;
3242                        echo traite_rqt($rqt,"ALTER TABLE publisher_custom_values ADD INDEX i_pcv_i");
3243
3244                        $rqt = "ALTER TABLE publisher_custom_values DROP INDEX i_pcv_d " ;
3245                        echo traite_rqt($rqt,"DROP INDEX i_pcv_d");
3246                        $rqt = "ALTER TABLE publisher_custom_values ADD INDEX i_pcv_d(publisher_custom_date)" ;
3247                        echo traite_rqt($rqt,"ALTER TABLE publisher_custom_values ADD INDEX i_pcv_d");
3248
3249                        $rqt = "ALTER TABLE publisher_custom_values DROP INDEX i_pcv_f " ;
3250                        echo traite_rqt($rqt,"DROP INDEX i_pcv_f");
3251                        $rqt = "ALTER TABLE publisher_custom_values ADD INDEX i_pcv_f(publisher_custom_float)" ;
3252                        echo traite_rqt($rqt,"ALTER TABLE publisher_custom_values ADD INDEX i_pcv_f");
3253
3254                        $rqt = "ALTER TABLE serie_custom_values DROP INDEX i_scv_st " ;
3255                        echo traite_rqt($rqt,"DROP INDEX i_scv_st");
3256                        $rqt = "ALTER TABLE serie_custom_values ADD INDEX i_scv_st(serie_custom_small_text)" ;
3257                        echo traite_rqt($rqt,"ALTER TABLE serie_custom_values ADD INDEX i_scv_st");
3258
3259                        $rqt = "ALTER TABLE serie_custom_values DROP INDEX i_scv_t " ;
3260                        echo traite_rqt($rqt,"DROP INDEX i_scv_t");
3261                        $rqt = "ALTER TABLE serie_custom_values ADD INDEX i_scv_t(serie_custom_text(255))" ;
3262                        echo traite_rqt($rqt,"ALTER TABLE serie_custom_values ADD INDEX i_scv_t");
3263
3264                        $rqt = "ALTER TABLE serie_custom_values DROP INDEX i_scv_i " ;
3265                        echo traite_rqt($rqt,"DROP INDEX i_scv_i");
3266                        $rqt = "ALTER TABLE serie_custom_values ADD INDEX i_scv_i(serie_custom_integer)" ;
3267                        echo traite_rqt($rqt,"ALTER TABLE serie_custom_values ADD INDEX i_scv_i");
3268
3269                        $rqt = "ALTER TABLE serie_custom_values DROP INDEX i_scv_d " ;
3270                        echo traite_rqt($rqt,"DROP INDEX i_scv_d");
3271                        $rqt = "ALTER TABLE serie_custom_values ADD INDEX i_scv_d(serie_custom_date)" ;
3272                        echo traite_rqt($rqt,"ALTER TABLE serie_custom_values ADD INDEX i_scv_d");
3273
3274                        $rqt = "ALTER TABLE serie_custom_values DROP INDEX i_scv_f " ;
3275                        echo traite_rqt($rqt,"DROP INDEX i_scv_f");
3276                        $rqt = "ALTER TABLE serie_custom_values ADD INDEX i_scv_f(serie_custom_float)" ;
3277                        echo traite_rqt($rqt,"ALTER TABLE serie_custom_values ADD INDEX i_scv_f");
3278
3279                        $rqt = "ALTER TABLE subcollection_custom_values DROP INDEX i_scv_st " ;
3280                        echo traite_rqt($rqt,"DROP INDEX i_scv_st");
3281                        $rqt = "ALTER TABLE subcollection_custom_values ADD INDEX i_scv_st(subcollection_custom_small_text)" ;
3282                        echo traite_rqt($rqt,"ALTER TABLE subcollection_custom_values ADD INDEX i_scv_st");
3283
3284                        $rqt = "ALTER TABLE subcollection_custom_values DROP INDEX i_scv_t " ;
3285                        echo traite_rqt($rqt,"DROP INDEX i_scv_t");
3286                        $rqt = "ALTER TABLE subcollection_custom_values ADD INDEX i_scv_t(subcollection_custom_text(255))" ;
3287                        echo traite_rqt($rqt,"ALTER TABLE subcollection_custom_values ADD INDEX i_scv_t");
3288
3289                        $rqt = "ALTER TABLE subcollection_custom_values DROP INDEX i_scv_i " ;
3290                        echo traite_rqt($rqt,"DROP INDEX i_scv_i");
3291                        $rqt = "ALTER TABLE subcollection_custom_values ADD INDEX i_scv_i(subcollection_custom_integer)" ;
3292                        echo traite_rqt($rqt,"ALTER TABLE subcollection_custom_values ADD INDEX i_scv_i");
3293
3294                        $rqt = "ALTER TABLE subcollection_custom_values DROP INDEX i_scv_d " ;
3295                        echo traite_rqt($rqt,"DROP INDEX i_scv_d");
3296                        $rqt = "ALTER TABLE subcollection_custom_values ADD INDEX i_scv_d(subcollection_custom_date)" ;
3297                        echo traite_rqt($rqt,"ALTER TABLE subcollection_custom_values ADD INDEX i_scv_d");
3298
3299                        $rqt = "ALTER TABLE subcollection_custom_values DROP INDEX i_scv_f " ;
3300                        echo traite_rqt($rqt,"DROP INDEX i_scv_f");
3301                        $rqt = "ALTER TABLE subcollection_custom_values ADD INDEX i_scv_f(subcollection_custom_float)" ;
3302                        echo traite_rqt($rqt,"ALTER TABLE subcollection_custom_values ADD INDEX i_scv_f");
3303
3304                        $rqt = "ALTER TABLE tu_custom_values DROP INDEX i_tcv_st " ;
3305                        echo traite_rqt($rqt,"DROP INDEX i_tcv_st");
3306                        $rqt = "ALTER TABLE tu_custom_values ADD INDEX i_tcv_st(tu_custom_small_text)" ;
3307                        echo traite_rqt($rqt,"ALTER TABLE tu_custom_values ADD INDEX i_tcv_st");
3308
3309                        $rqt = "ALTER TABLE tu_custom_values DROP INDEX i_tcv_t " ;
3310                        echo traite_rqt($rqt,"DROP INDEX i_tcv_t");
3311                        $rqt = "ALTER TABLE tu_custom_values ADD INDEX i_tcv_t(tu_custom_text(255))" ;
3312                        echo traite_rqt($rqt,"ALTER TABLE tu_custom_values ADD INDEX i_tcv_t");
3313
3314                        $rqt = "ALTER TABLE tu_custom_values DROP INDEX i_tcv_i " ;
3315                        echo traite_rqt($rqt,"DROP INDEX i_tcv_i");
3316                        $rqt = "ALTER TABLE tu_custom_values ADD INDEX i_tcv_i(tu_custom_integer)" ;
3317                        echo traite_rqt($rqt,"ALTER TABLE tu_custom_values ADD INDEX i_tcv_i");
3318
3319                        $rqt = "ALTER TABLE tu_custom_values DROP INDEX i_tcv_d " ;
3320                        echo traite_rqt($rqt,"DROP INDEX i_tcv_d");
3321                        $rqt = "ALTER TABLE tu_custom_values ADD INDEX i_tcv_d(tu_custom_date)" ;
3322                        echo traite_rqt($rqt,"ALTER TABLE tu_custom_values ADD INDEX i_tcv_d");
3323
3324                        $rqt = "ALTER TABLE tu_custom_values DROP INDEX i_tcv_f " ;
3325                        echo traite_rqt($rqt,"DROP INDEX i_tcv_f");
3326                        $rqt = "ALTER TABLE tu_custom_values ADD INDEX i_tcv_f(tu_custom_float)" ;
3327                        echo traite_rqt($rqt,"ALTER TABLE tu_custom_values ADD INDEX i_tcv_f");
3328
3329
3330                        //AR - Paramètre Portail : Activer la mise en cache des images
3331                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'cms' and sstype_param='active_image_cache' "))==0){
3332                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
3333                                        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)";
3334                                echo traite_rqt($rqt,"insert cms_active_image_cache into parametres");
3335                        }
3336
3337                        // 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")
3338                        $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'
3339                                WHERE type_param='thesaurus' AND sstype_param='concepts_affichage_ordre' AND section_param='concepts'";
3340                        echo traite_rqt($rqt,"update comment_param de concepts_affichage_ordre into parametres ");
3341
3342                        $rqt="UPDATE parametres SET comment_param='Affichage des concepts en ligne.\n 0 : Non.\n 1 : Oui.'
3343                                WHERE type_param='thesaurus' AND sstype_param='concepts_concept_in_line' AND section_param='concepts'";
3344                        echo traite_rqt($rqt,"update comment_param de concepts_concept_in_line into parametres ");
3345
3346                        //DG - Flag pour savoir si le mot de passe est déjà encrypté
3347                        $rqt= "alter table empr add empr_password_is_encrypted int(1) not null default 0 after empr_password";
3348                        echo traite_rqt($rqt,"alter table empr add empr_password_is_encrypted");
3349
3350                        //DG - Phrase pour le hashage des mots de passe emprunteurs (paramètre invisible)
3351                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='empr_password_salt' "))==0){
3352                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
3353                                        VALUES (0, 'opac', 'empr_password_salt', '', 'Phrase pour le hashage des mots de passe emprunteurs','a_general',1)";
3354                                echo traite_rqt($rqt,"insert opac_empr_password_salt into parametres");
3355                        }
3356
3357                        //DG - Info d'encodage des mots de passe lecteurs pour la connexion à l'Opac
3358                        $res=pmb_mysql_query("SELECT count(*) FROM empr");
3359                        if($res && pmb_mysql_result($res,0,0)){
3360                                $rqt = " select 1 " ;
3361                                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> ") ;
3362                        }
3363
3364                        // JP - Parametre affichage des dates de creation et modification notices
3365                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='notices_show_dates' "))==0){
3366                                $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) ";
3367                                echo traite_rqt($rqt, "insert expl_show_dates=0 into parameters");
3368                        }
3369
3370                        // AR - Paramètre pour activer la compression des CSS
3371                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'opac' and sstype_param='compress_css' "))==0){
3372                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
3373                                        VALUES (0, 'opac', 'compress_css', '0', 'Activer la compilation et la compression des feuilles de styles.\n0: Non\n1: Oui','a_general',0)";
3374                                echo traite_rqt($rqt,"insert opac_compress_css into parametres");
3375                        }
3376
3377                        //VT - Ajout d'un champ tonalité marclist dans la table titres_uniformes
3378                        $rqt = "ALTER TABLE titres_uniformes ADD tu_tonalite_marclist VARCHAR(5) NOT NULL DEFAULT '' ";
3379                        echo traite_rqt($rqt,"alter titres_uniformes add tu_tonalite_marclist");
3380
3381                        //VT - Ajout d'un champ forme marclist dans la table titres_uniformes
3382                        $rqt = "ALTER TABLE titres_uniformes ADD tu_forme_marclist VARCHAR(5) NOT NULL DEFAULT '' ";
3383                        echo traite_rqt($rqt,"alter titres_uniformes add tu_forme_marclist");
3384
3385                        // DB - Modification de la table resa_planning (quantité prévisions)
3386                        $rqt = "alter table resa_planning add resa_qty int(5) unsigned not null default 1";
3387                        echo traite_rqt($rqt,"alter resa_planning add resa_qty");
3388                        $rqt = "alter table resa_planning add resa_remaining_qty int(5) unsigned not null default 1";
3389                        echo traite_rqt($rqt,"alter resa_planning add resa_remaining_qty");
3390                        // DB - Modification de la table resa (lien vers prévisions)
3391                        $rqt = "alter table resa add resa_planning_id_resa int(8) unsigned not null default 0";
3392                        echo traite_rqt($rqt,"alter resa add resa_planning_id_resa");
3393
3394                        // DB - Delai d'alerte pour le transfert des previsions en reservations
3395                        if (pmb_mysql_num_rows(pmb_mysql_query("select 1 from parametres where type_param= 'pmb' and sstype_param='resa_planning_toresa' "))==0){
3396                                $rqt = "INSERT INTO parametres (id_param, type_param, sstype_param, valeur_param, comment_param, section_param, gestion)
3397                                        VALUES (0, 'pmb', 'resa_planning_toresa', '10', 'Délai d\'alerte pour le transfert des prévisions en réservations (en jours). ' ,'',0)";
3398                                echo traite_rqt($rqt,"insert resa_planning_toresa into parametres");
3399                        }
3400                       
3401                        //JP - Nettoyage vues en erreur suite ajout index unique
3402                        $res=mysql_query("SHOW TABLES LIKE 'opac_view_notices_%'");
3403                        if($res && mysql_num_rows($res)){
3404                                while ($r=mysql_fetch_array($res)){
3405                                        $rqt = "TRUNCATE TABLE ".$r[0] ;
3406                                        echo traite_rqt($rqt,"TRUNCATE TABLE ".$r[0]);
3407                       
3408                                        $rqt = "ALTER TABLE ".$r[0]." DROP INDEX opac_view_num_notice" ;
3409                                        echo traite_rqt($rqt,"ALTER TABLE ".$r[0]." DROP INDEX opac_view_num_notice ");
3410                       
3411                                        $rqt = "ALTER TABLE ".$r[0]." DROP PRIMARY KEY";
3412                                        echo traite_rqt($rqt, "ALTER TABLE ".$r[0]." DROP PRIMARY KEY");
3413                       
3414                                        $rqt = "ALTER TABLE ".$r[0]." ADD PRIMARY KEY (opac_view_num_notice)";
3415                                        echo traite_rqt($rqt, "ALTER TABLE ".$r[0]." ADD PRIMARY KEY");
3416                                }
3417                       
3418                                $rqt = " select 1 " ;
3419                                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> ") ;
3420                        }
3421                       
3422                        //JP - nettoyage table authorities_sources
3423                        $rqt = "DELETE FROM authorities_sources WHERE num_authority=0";
3424                        echo traite_rqt($rqt,"DELETE FROM authorities_sources num_authority vide");
3425                       
3426                        //JP - accès rapide pour les paniers de notices
3427                        $rqt = "ALTER TABLE caddie ADD acces_rapide INT NOT NULL default 0";
3428                        echo traite_rqt($rqt,"ALTER TABLE caddie ADD acces_rapide");
3429                       
3430                        //JP - modification index notices_mots_global_index
3431                        $rqt = "truncate table notices_mots_global_index";
3432                        echo traite_rqt($rqt,"truncate table notices_mots_global_index");
3433                               
3434                        $rqt ="alter table notices_mots_global_index drop primary key";
3435                        echo traite_rqt($rqt,"alter table notices_mots_global_index drop primary key");
3436                        $rqt ="alter table notices_mots_global_index add primary key (id_notice,code_champ,code_ss_champ,num_word,position,field_position)";
3437                        echo traite_rqt($rqt,"alter table notices_mots_global_index add primary key");
3438                        // Info de réindexation
3439                        $rqt = " select 1 " ;
3440                        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> ") ;
3441                               
3442                        //DG - Proposer la conservation de catégories en remplacement de notice
3443                        $rqt= "alter table users add deflt_notice_replace_keep_categories int(1) not null default 0";
3444                        echo traite_rqt($rqt,"alter table users add deflt_notice_replace_keep_categories");
3445                       
3446                        //DG - Champs perso pret
3447                        $rqt = "create table if not exists pret_custom (
3448                                idchamp int(10) unsigned NOT NULL auto_increment,
3449                                name varchar(255) NOT NULL default '',
3450                                titre varchar(255) default NULL,
3451                                type varchar(10) NOT NULL default 'text',
3452                                datatype varchar(10) NOT NULL default '',
3453                                options text,
3454                                multiple int(11) NOT NULL default 0,
3455                                obligatoire int(11) NOT NULL default 0,
3456                                ordre int(11) default NULL,
3457                                search INT(1) unsigned NOT NULL DEFAULT 0,
3458                                export INT(1) unsigned NOT NULL DEFAULT 0,
3459                                filters INT(1) unsigned NOT NULL DEFAULT 0,
3460                                exclusion_obligatoire INT(1) unsigned NOT NULL DEFAULT 0,
3461                                pond int not null default 100,
3462                                opac_sort INT NOT NULL DEFAULT 0,
3463                                PRIMARY KEY  (idchamp)) ";
3464                        echo traite_rqt($rqt,"create table pret_custom ");
3465                       
3466                        $rqt = "create table if not exists pret_custom_lists (
3467                                pret_custom_champ int(10) unsigned NOT NULL default 0,
3468                                pret_custom_list_value varchar(255) default NULL,
3469                                pret_custom_list_lib varchar(255) default NULL,
3470                                ordre int(11) default NULL,
3471                                KEY i_pret_custom_champ (pret_custom_champ),
3472                                KEY i_pret_champ_list_value (pret_custom_champ,pret_custom_list_value)) " ;
3473                        echo traite_rqt($rqt,"create table if not exists pret_custom_lists ");
3474                       
3475                        $rqt = "create table if not exists pret_custom_values (
3476                                pret_custom_champ int(10) unsigned NOT NULL default 0,
3477                                pret_custom_origine int(10) unsigned NOT NULL default 0,
3478                                pret_custom_small_text varchar(255) default NULL,
3479                                pret_custom_text text,
3480                                pret_custom_integer int(11) default NULL,
3481                                pret_custom_date date default NULL,
3482                                pret_custom_float float default NULL,
3483                                KEY i_pret_custom_champ (pret_custom_champ),
3484                                KEY i_pret_custom_origine (pret_custom_origine)) " ;
3485                        echo traite_rqt($rqt,"create table if not exists pret_custom_values ");
3486                               
3487                        //DG - maj valeurs possibles pour empr_sort_rows
3488                        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){
3489                                $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' ";
3490                                echo traite_rqt($rqt,"update empr_sort_rows into parametres");
3491                        }
3492                               
3493                        //DG - maj valeurs possibles pour empr_filter_rows
3494                        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){
3495                                $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' ";
3496                                echo traite_rqt($rqt,"update empr_filter_rows into parametres");
3497                        }
3498                               
3499                        //DG - maj valeurs possibles pour empr_show_rows
3500                        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){
3501                                $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' ";
3502                                echo traite_rqt($rqt,"update empr_show_rows into parametres");
3503                        }
3504                               
3505                        // AP - Création d'une table pour la gestion de la suppression des enregistrements OAI
3506                        $rqt = "CREATE TABLE if not exists connectors_out_oai_deleted_records (
3507                                        num_set int(11) unsigned NOT NULL DEFAULT 0,
3508                                        num_notice int(11) unsigned NOT NULL DEFAULT 0,
3509                                        deletion_date datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
3510                                        PRIMARY KEY (num_set, num_notice))";
3511                        echo traite_rqt($rqt,"CREATE TABLE connectors_out_oai_deleted_records") ;
3512                       
3513                        // AP - Ajout du stockage de la grammaire d'une vedette
3514                        $rqt = "ALTER TABLE vedette ADD grammar varchar(255) NOT NULL default 'rameau'" ;
3515                        echo traite_rqt($rqt,"ALTER TABLE vedette ADD grammar");
3516                       
3517                        //JP - recalcul des isbn à cause du nouveau fomatage
3518                        require_once($include_path."/isbn.inc.php");
3519                        $res=pmb_mysql_query("SELECT notice_id, code FROM notices WHERE code<>'' AND niveau_biblio='m' AND code LIKE '97%'");
3520                        if($res && pmb_mysql_num_rows($res)){
3521                                while ($row=pmb_mysql_fetch_object($res)) {
3522                                        $code = $row->code;
3523                                        $new_code = formatISBN($code);
3524                                        if ($code!= $new_code){
3525                                                pmb_mysql_query("UPDATE notices SET code='".addslashes($new_code)."', update_date=update_date WHERE notice_id=".$row->notice_id);
3526                                        }
3527                                }
3528                        }
3529                        $rqt = " select 1 " ;
3530                        echo traite_rqt($rqt,"update notices code / ISBN check and clean") ;
3531                               
3532                       
3533                        //JP - mise à jour des dates de validation des commandes
3534                        $rqt="UPDATE actes SET date_valid=date_acte WHERE statut>1 AND date_valid='0000-00-00'";
3535                        echo traite_rqt($rqt,"update actes date_validation ");
3536                       
3537                        $rqt = "update parametres set valeur_param='0' where type_param='pmb' and sstype_param='bdd_subversion' " ;
3538                        echo traite_rqt($rqt,"update pmb_bdd_subversion=0 into parametres");
3539                        $pmb_bdd_subversion=0;
3540                       
3541                        if ($pmb_subversion_database_as_it_shouldbe!=$pmb_bdd_subversion) {
3542                                // Info de déconnexion pour passer le add-on
3543                                $rqt = " select 1 " ;
3544                                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> ") ;
3545                        }
3546                       
3547               
3548                // +-------------------------------------------------+
3549                echo "</table>";
3550                $rqt = "update parametres set valeur_param='v5.19' where type_param='pmb' and sstype_param='bdd_version' " ;
3551                $res = mysql_query($rqt, $dbh) ;
3552                echo "<strong><font color='#FF0000'>".$msg[1807]." ".number_format($action, 2, ',', '.')."%</font></strong><br />";
3553                $action=$action+$increment;
3554
3555                // // Parcheamos la base de datos
3556                require("$base_path/includes/db_param.inc.php");
3557                $comando= "cat ".$base_path."/admin/misc/mods_vLlxNemo.sql | mysql -u ". USER_NAME ." --password=". USER_PASS ." ". DATA_BASE;
3558                if (system($comando, $salida)==0){
3559                        echo "$msg[db_patched]";
3560                }
3561                echo "<SCRIPT>alert(\"".$msg[actualizacion_ok]."\");</SCRIPT>";
3562                //echo("<SCRIPT LANGUAGE='JavaScript'> window.location = \"$base_path/\"</SCRIPT>");
3563                break;
3564
3565        default:
3566                include("$include_path/messages/help/$lang/alter.txt");
3567                break;
3568        }
3569               
Note: See TracBrowser for help on using the repository browser.