source: spip-zone/_plugins_/noizetier/trunk/action/supprimer_composition.php @ 113480

Last change on this file since 113480 was 113480, checked in by eric@…, 4 months ago

Corriger l'autorisation de suppression d'une composition virtuelle (il faut configurerpage aussi).
Simplifier l'action vider_page en utilisant l'API conteneur_vider.
Corriger l'action supprimer_composition en ajoutant le vidage des noisettes des blocs de la composition (avec l'API conteneur_vider).

File size: 1.5 KB
Line 
1<?php
2
3if (!defined('_ECRIRE_INC_VERSION')) {
4        return;
5}
6
7/**
8 * Cette action permet à l'utilisateur de supprimer de sa base de données, de façon sécurisée,
9 * une composition virtuelle donnée.
10 *
11 * Cette action est réservée aux webmestres. Elle nécessite en argument l'identifiant de la page.
12 *
13 * @uses supprimer_noisettes()
14 *
15 * @return void
16 */
17function action_supprimer_composition_dist(){
18
19        // Securisation et autorisation.
20        // L'argument attendu est le type d'objet à activer
21        $securiser_action = charger_fonction('securiser_action', 'inc');
22        $page = $securiser_action();
23
24        // Verification des autorisations
25        if (!autoriser('supprimercomposition', 'noizetier', 0, '', array('page' => $page))) {
26                include_spip('inc/minipres');
27                echo minipres();
28                exit();
29        }
30
31        if ($page) {
32                // On récupère la liste des blocs ayant des noisettes
33                include_spip('inc/noizetier_page');
34                $blocs = noizetier_page_compter_noisettes($page);
35
36                // Suppression des noisettes concernées en utilisant l'API de vidage d'un conteneur, le conteneur étant
37                // chaque bloc de la composition virtuelle.
38                if ($blocs) {
39                        include_spip('inc/ncore_conteneur');
40                        include_spip('inc/noizetier_conteneur');
41                        foreach (array_keys($blocs) as $_bloc) {
42                                // On calcule le conteneur sous sa forme identifiant chaine.
43                                $id_conteneur = noizetier_conteneur_composer($page, $_bloc);
44                                conteneur_vider('noizetier', $id_conteneur);
45                        }
46                }
47
48                // On supprime la composition elle-même.
49                sql_delete('spip_noizetier_pages', array('page=' . sql_quote($page)));
50        }
51}
Note: See TracBrowser for help on using the repository browser.