source: spip-zone/_plugins_/objets_disponibilites/trunk/objets_disponibilites_administrations.php @ 114027

Last change on this file since 114027 was 114027, checked in by abelass@…, 2 years ago

plugin qui permet de gérér des disponibilités pour un objet

File size: 3.3 KB
Line 
1<?php
2/**
3 * Fichier gérant l'installation et désinstallation du plugin Disponibilites objets
4 *
5 * @plugin     Disponibilites objets
6 * @copyright  2018 - 2019
7 * @author     Rainer Müller
8 * @licence    GNU/GPL v3
9 * @package    SPIP\Objets_disponibilites\Installation
10 */
11
12if (!defined('_ECRIRE_INC_VERSION')) {
13        return;
14}
15
16
17/**
18 * Fonction d'installation et de mise à jour du plugin Disponibilites objets.
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 objets_disponibilites_upgrade($nom_meta_base_version, $version_cible) {
34        $maj = array();
35        # quelques exemples
36        # (que vous pouvez supprimer !)
37        #
38        # $maj['create'] = array(array('creer_base'));
39        #
40        # include_spip('inc/config')
41        # $maj['create'] = array(
42        #       array('maj_tables', array('spip_xx', 'spip_xx_liens')),
43        #       array('ecrire_config', 'objets_disponibilites', array('exemple' => "Texte de l'exemple"))
44        #);
45        #
46        # $maj['1.1.0']  = array(array('sql_alter','TABLE spip_xx RENAME TO spip_yy'));
47        # $maj['1.2.0']  = array(array('sql_alter','TABLE spip_xx DROP COLUMN id_auteur'));
48        # $maj['1.3.0']  = array(
49        #       array('sql_alter','TABLE spip_xx CHANGE numero numero int(11) default 0 NOT NULL'),
50        #       array('sql_alter','TABLE spip_xx CHANGE texte petit_texte mediumtext NOT NULL default \'\''),
51        # );
52        # ...
53
54        $maj['create'] = array(array('maj_tables', array('spip_disponibilite_dates', 'spip_disponibilite_dates_liens')));
55        $maj['1.0.1'] = array(array('maj_tables', array('spip_disponibilite_dates', 'spip_disponibilite_dates_liens')));
56
57        include_spip('base/upgrade');
58        maj_plugin($nom_meta_base_version, $version_cible, $maj);
59}
60
61
62/**
63 * Fonction de désinstallation du plugin Disponibilites objets.
64 *
65 * Vous devez :
66 *
67 * - nettoyer toutes les données ajoutées par le plugin et son utilisation
68 * - supprimer les tables et les champs créés par le plugin.
69 *
70 * @param string $nom_meta_base_version
71 *     Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
72 * @return void
73**/
74function objets_disponibilites_vider_tables($nom_meta_base_version) {
75        # quelques exemples
76        # (que vous pouvez supprimer !)
77        # sql_drop_table('spip_xx');
78        # sql_drop_table('spip_xx_liens');
79
80        sql_drop_table('spip_disponibilite_dates');
81        sql_drop_table('spip_disponibilite_dates_liens');
82
83        # Nettoyer les liens courants (le génie optimiser_base_disparus se chargera de nettoyer toutes les tables de liens)
84        sql_delete('spip_documents_liens', sql_in('objet', array('disponibilite_date')));
85        sql_delete('spip_mots_liens', sql_in('objet', array('disponibilite_date')));
86        sql_delete('spip_auteurs_liens', sql_in('objet', array('disponibilite_date')));
87        # Nettoyer les versionnages et forums
88        sql_delete('spip_versions', sql_in('objet', array('disponibilite_date')));
89        sql_delete('spip_versions_fragments', sql_in('objet', array('disponibilite_date')));
90        sql_delete('spip_forum', sql_in('objet', array('disponibilite_date')));
91
92        effacer_meta($nom_meta_base_version);
93}
Note: See TracBrowser for help on using the repository browser.