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

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

Fix migration db from Pandora

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