source: spip-zone/_plugins_/urls_pages/trunk/urls_pages_administrations.php @ 110246

Last change on this file since 110246 was 110246, checked in by tcharlss@…, 19 months ago

v1.0.11 : ajout d'un onglet pour lister les URLs qui n'auraient pas été migrées lors du passage à la V1 (cas improbable où l'URL serait déjà prise par un objet éditorial). Pour l'instant c'est juste à titre indicatif, trouver un moyen de régler le problème (boutons d'action). Mise à jour du TODO : refacto à faire et prise en compte des langues. On revoit quelques chaînes de langue, et 2-3 points de détail.

  • Property svn:executable set to *
File size: 2.8 KB
Line 
1<?php
2/**
3 * Fonctions d'installation et de désinstallation du plugin URLs Pages Étendues
4 *
5 * @plugin     URLs Pages Étendues
6 * @copyright  2016
7 * @author     tcharlss
8 * @licence    GNU/GPL
9 * @package    SPIP\Urls_pages_etendues\Administrations
10**/
11
12// Sécurité
13if (!defined('_ECRIRE_INC_VERSION')) {
14        return;
15}
16
17/**
18 * Fonction d'installation et de mise à jour du plugin.
19 *
20 * @param string $nom_meta_base_version
21 *     Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
22 * @param string $version_cible
23 *     Version du schéma de données dans ce plugin (déclaré dans paquet.xml)
24 * @return void
25 */
26function urls_pages_upgrade($nom_meta_base_version, $version_cible){
27        $maj = array();
28
29        // Ajout de la colonne `page` dans spip_urls et migration des URLs des pages
30        $maj['1.0.0'] = array(
31                array('sql_alter', "TABLE spip_urls ADD COLUMN page VARCHAR(255) NOT NULL DEFAULT ''"),
32                array('urls_pages_maj_100'),
33        );
34
35        include_spip('base/upgrade');
36        maj_plugin($nom_meta_base_version, $version_cible, $maj);
37}
38
39
40/**
41 * Fonction de désinstallation du plugin.
42 *
43 * @param string $nom_meta_base_version
44 *     Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
45 * @return void
46 */
47function urls_pages_vider_tables($nom_meta_base_version) {
48
49        // Suppression des URLs des pages, puis de la colonne `page`
50        sql_delete('spip_urls', array('page != \'\'', 'id_objet = 0', 'type = \'\''));
51        sql_alter('TABLE spip_urls DROP COLUMN page');
52
53        // Suppression meta
54        effacer_meta($nom_meta_base_version);
55
56        // Invalider le cache pour éviter une erreur undefined function url_perso
57        include_spip('inc/invalideur');
58        suivre_invalideur(1);
59}
60
61
62/**
63 * Mise à jour schéma 1.0.0
64 *
65 * Migrer les URLs du meta `urls_pages` vers la table `spip_urls`.
66 * Dans le meta, on ne conserve que les pages non converties.
67 * On n'a plus besoin de la valeur `rewritebase`.
68 *
69 * @return void
70 */
71function urls_pages_maj_100(){
72
73        include_spip('inc/config');
74        if ($pages = lire_config('urls_pages')){
75                $pages_non_converties = array();
76                // on créé des nouvelles lignes dans spip_urls pour chaque page de la config
77                foreach ($pages as $page => $url) {
78                        if ($page != 'rewritebase'
79                                and strlen($url)
80                        ) {
81                                if (!sql_countsel('spip_urls', 'url = ' . sql_quote($url))){
82                                        sql_insertq('spip_urls', array(
83                                                'page'     => $page,
84                                                'url'      => $url,
85                                                'date'     => date('Y-m-d H:i:s'),
86                                                'type'     => '',
87                                                'id_objet' => 0,
88                                                'perma'    => 1,
89                                        ));
90                                } else {
91                                        $pages_non_converties[$page] = $url;
92                                }
93                        }
94                }
95                // On ne garde que les pages non converties dans la config
96                $nouvelle_config = count($pages_non_converties) ? $pages_non_converties : '';
97                ecrire_config('urls_pages', $nouvelle_config);
98        }
99
100}
Note: See TracBrowser for help on using the repository browser.