source: spip-zone/_plugins_/rang/trunk/formulaires/configurer_rang.php @ 103638

Last change on this file since 103638 was 103638, checked in by tofulm@…, 4 years ago

pour les mots et les groupes de mots, il n'y a pas de champ
statut ce qui fait planter la requete sql_alter de creation du champ
rang

File size: 2.4 KB
Line 
1<?php
2
3/**
4 * Gestion CVT du formulaire de configuration de RANG
5 *
6 * @plugin     Rang
7 * @copyright  2016
8 * @author     Peetdu
9 * @licence    GNU/GPL
10 * @package    SPIP\Rang\Installation
11 */
12
13/**
14 * Gestion du formulaire de configuration des rangs
15 *
16 * @package SPIP\Medias\Formulaires
17 **/
18
19if (!defined('_ECRIRE_INC_VERSION')) {
20        return;
21}
22
23/**
24 * Chargement du formulaire de configuration des rangs
25 *
26 * @return array
27 *     Environnement du formulaire
28 **/
29function formulaires_configurer_rang_charger_dist() {
30        $valeurs_meta = lire_config('rang_objets');
31        $valeurs['rang_objets']=explode(',',$valeurs_meta);
32        return $valeurs;
33}
34
35/**
36 * Traitement du formulaire de configuration des rangs
37 *
38 * @return array
39 *     Retours du traitement
40 **/
41function formulaires_configurer_rang_traiter_dist() {
42        $res = array('editable' => true);
43        $valeurs = _request('rang_objets');
44        $err = null;
45
46        // création / mise à jour de la méta
47        if (!is_null($valeurs))
48                ecrire_meta('rang_objets', is_array($valeurs)?implode(',',$valeurs):'');
49
50        // création du champ 'rang' dans les tables sélectionnées
51        // + insertion de valeur dans ce champ
52        foreach ($valeurs as $key => $table) {
53
54                if (!empty($table)) {
55                        // si le champ 'rang' n'existe pas, le créer et le remplir
56                        $champs_table = sql_showtable($table);
57                        if (!isset($champs_table['field']['rang'])) {
58
59                                // créer le champ 'rang'
60                                sql_alter('TABLE '.$table.' ADD rang SMALLINT NOT NULL');
61
62                                // remplir #1 : si aucun numero_titre n'est trouvé, on met la valeur de l'id_prefixe dans rang
63                                if (!rang_tester_presence_numero($table)) {
64                                        $id = id_table_objet($table);
65                                        $desc = lister_tables_objets_sql($table);
66                                        if (isset($desc['field']['id_rubrique'])) {
67                                                $quelles_rubriques = sql_allfetsel('id_rubrique', $table, '', 'id_rubrique');
68
69                                                foreach ($quelles_rubriques as $key => $value) {
70                                                        $id_rub =  $value['id_rubrique'];
71                                                        $quelles_items = sql_allfetsel($id, $table, 'id_rubrique='.$id_rub);
72
73                                                        $i = 1;
74                                                        foreach ($quelles_items as $key => $value) {
75                                                                $id_prefixe = $value[$id];
76                                                                sql_update($table, array( 'rang' => $i ), "$id = $id_prefixe");
77                                                                $i++;
78                                                        }
79                                                }
80                                        }
81                                }
82
83                                // remplir #2 sinon , recuperer le numero_titre et l'insérer dans rang
84                                // à faire !!
85                        }
86                }
87        }
88
89        $res['message_ok'] = _T('config_info_enregistree');
90
91        return $res;
92}
93
94function rang_tester_presence_numero($table) {
95        return false;
96}
Note: See TracBrowser for help on using the repository browser.