source: spip-zone/_plugins_/pages/trunk/pages_administrations.php @ 85654

Last change on this file since 85654 was 84174, checked in by eric@…, 6 years ago

Evolutions du plugin dont certaines peuvent être considérées comme des corrections:

  • la page pages_tous devient pages ce qui est plus cohérent avec les autres objets.
  • ajout et utilisation des autorisations classiques pour un obet 'page' : creer, modifier et voir. Ces autorisations et les suivantes sont par défaut positionnées à admin complet. Une fonction surchargeable permet de toutes les modifier d'un coup.
  • ajout de l'autorisation pages_voir pour afficher la liste des pages uniques (exec=pages)
  • ajout des autorisations d'affichage des menus pages et pagecreer. Ces autorisations font appel respectivement à pages_voir et page_creer.
  • utilisation du pipeline pre_boucle sur la boucle ARTICLES afin de clairement séparer les listes de pages uniques et celles d'articles éditoriaux. Par exemple, les listes d'articles de la page d'acceuil et de la page articles sont exemptes de pages uniques.

Tout n'est pas parfait en particulier pour les autorisations car il est toujours possible d'accéder à une page unique en saisissant l'url même si on est pas autorisé. C'est en effet l'autorisation de l'article qui se déroule. Pour combler ce manque il faudrait surcharger l'autorisation de l'article en testant l'id de rubrique mais cela produirait des effets de bords avec d'autres plugins comme accès restreint.
En fait, spécialiser un objet pour en créer un autre n'est pas une opération prévue dans l'api SPIP actuelle.

Autre remarque : lors de la désinstallation du plugin on supprime la colonne 'page' de la table spip_articles. On se retrouve avec des articles possédant un id_rubrique à -1. Est-ce bien de laisser cela ainsi ? Ne faudrait-il pas soit les supprimer soit les transférer dans une rubrique existante ?

File size: 1.5 KB
Line 
1<?php
2/**
3 * Fichier gérant l'installation et désinstallation du plugin Pages Uniques
4 *
5 * @plugin     Pages
6 * @copyright  2013
7 * @author     RastaPopoulos
8 * @licence    GNU/GPL
9 * @package    SPIP\Pages\Installation
10 * @link       http://contrib.spip.net/Pages-uniques
11 */
12
13if (!defined("_ECRIRE_INC_VERSION")) return;
14
15
16/**
17 * Fonction d'installation et de mise à jour du plugin
18 *
19 * @param string $nom_meta_base_version
20 *     Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
21 * @param string $version_cible
22 *     Version du schéma de données dans ce plugin (déclaré dans paquet.xml)
23 * @return void
24**/
25function pages_upgrade($nom_meta_base_version, $version_cible) {
26        $maj = array();
27
28        $maj['create'] = array(
29                array('maj_tables', 'spip_articles')
30        );
31        $maj['1.0.1'] = array(
32                array('sql_alter', "TABLE spip_articles CHANGE page page VARCHAR(255) DEFAULT '' NOT NULL"),
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 * Supprimer la colonne 'page' du plugin
43 *
44 * TODO : que deviennent les article avec un id_rubrique=-1 ? Ne faut-il pas les traiter ?
45 *
46 * @param string $nom_meta_base_version
47 *     Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
48 * @return void
49**/
50function pages_vider_tables($nom_meta_base_version) {
51        sql_alter("TABLE spip_articles DROP page");
52        effacer_meta($nom_meta_base_version);
53}
54
55?>
Note: See TracBrowser for help on using the repository browser.