source: spip-zone/_plugins_/periodes/trunk/periodes_administrations.php

Last change on this file was 122554, checked in by Rainer Müller, 4 months ago

Maintenu

File size: 3.2 KB
Line 
1<?php
2/**
3 * Fichier gérant l'installation et désinstallation du plugin Périodes
4 *
5 * @plugin     Périodes
6 * @copyright  2019 - 2020
7 * @author     Rainer Müller
8 * @licence    GNU/GPL v3
9 * @package    SPIP\Periodes\Installation
10 */
11
12if (!defined('_ECRIRE_INC_VERSION')) {
13        return;
14}
15
16
17/**
18 * Fonction d'installation et de mise à jour du plugin Périodes.
19 *
20 * Vous pouvez :
21 *
22 * - créer la structure SQL,
23 * - insérer du pre-contenu,
24 * - installer des valeurs de configuration,
25 * - mettre à jour la structure SQL
26 *
27 * @param string $nom_meta_base_version
28 *     Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
29 * @param string $version_cible
30 *     Version du schéma de données dans ce plugin (déclaré dans paquet.xml)
31 * @return void
32**/
33function periodes_upgrade($nom_meta_base_version, $version_cible) {
34        $maj = array();
35        $maj['1.0.1']  = array(
36                array('maj_tables', array('spip_periodes')),
37                array('sql_alter','TABLE spip_periodes DROP COLUMN jour'),
38                array('sql_alter','TABLE spip_periodes DROP COLUMN mois'),
39                array('sql_alter','TABLE spip_periodes DROP COLUMN annee'),
40        );
41                $maj['1.1.0']  = array(
42                array('maj_tables', array('spip_periodes')),
43        );
44        # quelques exemples
45        # (que vous pouvez supprimer !)
46        #
47        # $maj['create'] = array(array('creer_base'));
48        #
49        # include_spip('inc/config')
50        # $maj['create'] = array(
51        #       array('maj_tables', array('spip_xx', 'spip_xx_liens')),
52        #       array('ecrire_config', 'periodes', array('exemple' => "Texte de l'exemple"))
53        #);
54        #
55        # $maj['1.1.0']  = array(array('sql_alter','TABLE spip_xx RENAME TO spip_yy'));
56        # $maj['1.2.0']  = array(array('sql_alter','TABLE spip_xx DROP COLUMN id_auteur'));
57        # $maj['1.3.0']  = array(
58        #       array('sql_alter','TABLE spip_xx CHANGE numero numero int(11) default 0 NOT NULL'),
59        #       array('sql_alter','TABLE spip_xx CHANGE texte petit_texte mediumtext NOT NULL default \'\''),
60        # );
61        # ...
62
63        $maj['create'] = array(array('maj_tables', array('spip_periodes')));
64
65        include_spip('base/upgrade');
66        maj_plugin($nom_meta_base_version, $version_cible, $maj);
67}
68
69
70/**
71 * Fonction de désinstallation du plugin Périodes.
72 *
73 * Vous devez :
74 *
75 * - nettoyer toutes les données ajoutées par le plugin et son utilisation
76 * - supprimer les tables et les champs créés par le plugin.
77 *
78 * @param string $nom_meta_base_version
79 *     Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
80 * @return void
81**/
82function periodes_vider_tables($nom_meta_base_version) {
83        # quelques exemples
84        # (que vous pouvez supprimer !)
85        # sql_drop_table('spip_xx');
86        # sql_drop_table('spip_xx_liens');
87
88        sql_drop_table('spip_periodes');
89
90        # Nettoyer les liens courants (le génie optimiser_base_disparus se chargera de nettoyer toutes les tables de liens)
91        sql_delete('spip_documents_liens', sql_in('objet', array('periode')));
92        sql_delete('spip_mots_liens', sql_in('objet', array('periode')));
93        sql_delete('spip_auteurs_liens', sql_in('objet', array('periode')));
94        # Nettoyer les versionnages et forums
95        sql_delete('spip_versions', sql_in('objet', array('periode')));
96        sql_delete('spip_versions_fragments', sql_in('objet', array('periode')));
97        sql_delete('spip_forum', sql_in('objet', array('periode')));
98
99        effacer_meta($nom_meta_base_version);
100}
Note: See TracBrowser for help on using the repository browser.