source: spip-zone/_plugins_/multilang/trunk/multilang_administrations.php @ 118608

Last change on this file since 118608 was 118608, checked in by Charles Razack, 13 months ago

Oups : fix config + exemple de selecteur avec un espace pour passer sur 2 lignes

File size: 2.2 KB
Line 
1<?php
2/**
3 * Fichier d'installation / upgrade et désinstallation du plugin Multilang
4 */
5
6if (!defined('_ECRIRE_INC_VERSION')) {
7        return;
8}
9
10/**
11 * Fonction d'upgrade/maj
12 * On crée une configuration par défaut
13 *
14 * @param string $nom_meta_base_version
15 * @param string $version_cible
16 */
17function multilang_upgrade($nom_meta_base_version, $version_cible) {
18
19        $maj = array();
20
21        // Installation : config par défaut
22        $maj['create'] = array(
23                array('multilang_creer_config'),
24        );
25
26        // Màj 0.1.1 : réorganisation de la config
27        $maj['0.1.1'] = array(
28                array('multilang_maj_011'),
29        );
30
31        include_spip('base/upgrade');
32        maj_plugin($nom_meta_base_version, $version_cible, $maj);
33
34}
35
36/**
37 * Fonction de desinstallation
38 * On efface uniquement la méta d'installation
39 *
40 * @param float $nom_meta_base_version
41 */
42function multilang_vider_tables($nom_meta_base_version) {
43        effacer_meta('multilang');
44        effacer_meta($nom_meta_base_version);
45}
46
47/**
48 * Configuration par défaut à l'installation
49 *
50 * @return void
51 */
52function multilang_creer_config() {
53        include_spip('inc/config');
54        $config = lire_config('multilang', array());
55        $config_defaut = array_merge_recursive(array(
56                'formulaires' => array(
57                        'siteconfig',
58                        'rubrique',
59                        'auteur',
60                        'document',
61        )), $config);
62        ecrire_config('multilang', $config_defaut);
63}
64
65/**
66 * Mise à jour schéma 0.1.1 : réorganisation de la config
67 *
68 * On met tout ce qui concerne les formulaires dans une clé `formulaires`.
69 *
70 * @return void
71 */
72function multilang_maj_011() {
73        include_spip('inc/config');
74        include_spip('base_objets');
75        include_spip('inc/filtres');
76        $config          = lire_config('multilang', array());
77        $formulaires     = array_map('objet_type', array_keys(lister_tables_objets_sql()));
78        $formulaires[]   = 'siteconfig';
79        $cfg_formulaires = array();
80        foreach ($config as $cle => $valeur) {
81                $surnoms   = objet_info($cle, 'type_surnoms');
82                $surnoms   = is_array($surnoms) ? $surnoms : array();
83                $surnoms[] = $cle;
84                if (array_intersect($surnoms, $formulaires)) {
85                        $cfg_formulaires[] = $cle;
86                        foreach ($surnoms as $surnom) {
87                                $surnom = str_replace('-', '', $surnom); // mot-cle => motcle
88                                unset($config[$surnom]);
89                        }
90                }
91        }
92        $config['formulaires'] = array_filter($cfg_formulaires);
93        ecrire_config('multilang', $config);
94}
Note: See TracBrowser for help on using the repository browser.