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

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

Version 1.4.0.

  • Nouveauté la plus visible : petite refacto du menu de langues → Noms des langues en entier au lieu des codes (fr, en...), liens affichés sous formes de boutons plus grands et centrés pour être bien visibles, ajout d'un label. Petite amélioration pour éviter qu'il y ait un saut lorsque le menu passe en sticky.
  • Configuration : les formulaires sur lesquels activer le script sont tous regroupés dans une même clé formulaires.
  • Configuration : ajout d'une option pour ajouter des sélecteurs dans le paramètre root (exemple complètement au hasard : .formulaire_editer_noisette).
  • Ajout d'un pipeline multilang_parametres pour permettre aux plugins de changer les paramètres passés au script d'init. Cas le plus courant : ajouter des formulaires à prendre en compte par le script.
  • Refactorisation du script d'init afin qu'il soit plus lisible et maintenable : séparation du javascript et du php. Au passage, correction d'un bug rigolo qui faisait que quand on décochait tous les items dans la config, le script devenait actif sur *tous* les formulaires : recherche, login, etc.
File size: 2.3 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' => 'on',
58                        'rubrique'   => 'on',
59                        'auteur'     => 'on',
60                        'document'   => 'on',
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] = $valeur;
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.