source: spip-zone/_plugins_/objets_virtuels/trunk/formulaires/configurer_objets_virtuels.php @ 106455

Last change on this file since 106455 was 106455, checked in by marcimat@…, 3 years ago

C'est pas le tout de mettre non pour les articles de redirection au besoin… il faut aussi mettre oui si nécessaire.

File size: 1.8 KB
Line 
1<?php
2/**
3 * Utilisations de pipelines par Objets virtuels
4 *
5 * @plugin     Objets virtuels
6 * @copyright  2017
7 * @author     Matthieu Marcillaud
8 * @licence    GNU/GPL
9 * @package    SPIP\Objets_virtuels\Installation
10 */
11
12
13if (!defined('_ECRIRE_INC_VERSION')) {
14        return;
15}
16
17/**
18 * Chargement du formulaire de configuration des objets virtuels
19 *
20 * @return array
21 *     Environnement du formulaire
22 **/
23function formulaires_configurer_objets_virtuels_charger_dist() {
24        include_spip('objets_virtuels_fonctions');
25        $valeurs = [];
26        $valeurs['objets_virtuels'] = objets_virtuels_tables_actives();
27        return $valeurs;
28}
29
30/**
31 * Traitement du formulaire de configuration des objets virtuels
32 *
33 * @return array
34 *     Retours du traitement
35 **/
36function formulaires_configurer_objets_virtuels_traiter_dist() {
37        $res = array('editable' => true);
38        $tables = _request('objets_virtuels');
39        $tables = is_array($tables) ? array_filter($tables) : [];
40        $err = [];
41
42        // création du champ 'virtuel' dans les tables sélectionnées
43        foreach ($tables as $key => $table) {
44                $desc = sql_showtable($table);
45                if (empty($desc['field']['virtuel'])) {
46                        sql_alter('TABLE '. $table . ' ADD virtuel text DEFAULT \'\' NOT NULL');
47                        // vérification de la présence du champ.
48                        $desc = sql_showtable($table);
49                        if (empty($desc['field']['virtuel'])) {
50                                unset($tables[$key]);
51                                $err[] = $table;
52                        }
53                }
54        }
55
56        // création / mise à jour de la méta
57        ecrire_config('objets_virtuels', implode(',', $tables));
58        if (!in_array('spip_articles', $tables)) {
59                ecrire_config('articles_redirection', 'non');
60        } else {
61                ecrire_config('articles_redirection', 'oui');
62        }
63
64        if ($err) {
65                $res['message_error'] = _T('objets_virtuels:erreur_creation_champ_virtuel_dans_tables', ['tables' => implode(', ', $err)]);
66        } else {
67                $res['message_ok'] = _T('config_info_enregistree');
68        }
69        return $res;
70}
Note: See TracBrowser for help on using the repository browser.