source: spip-zone/_plugins_/albums/trunk/action/vider_album.php @ 88435

Last change on this file since 88435 was 88435, checked in by tcharlss@…, 4 years ago

bugfix : vider comme il faut.

File size: 1.8 KB
Line 
1<?php
2/**
3 * Action : «vider» un album en dissociant tous ses documents.
4 *
5 * @plugin     Albums
6 * @copyright  2014
7 * @author     Tetue, Charles Razack
8 * @licence    GPL
9 * @package    SPIP\Albums\Action
10 */
11
12// Sécurité
13if (!defined("_ECRIRE_INC_VERSION")) return;
14
15/**
16 * «Vider» un album : dissocier tous ses documents
17 *
18 * Optionnellement, on peut supprimer les documents rendus orphelins,
19 * ainsi que l'album.
20 *
21 * @note
22 * Impossible de retirer en une fois tous les documents d'un album
23 * via le bouton d'action `dissocier_document` du plugin médias.
24 * Il faut lui passer en paramètre un des 3 «modes» pour les documents :
25 *
26 * - les images en mode Image : `I/image`
27 * - les images en mode document : `D/image`
28 * - les documents non image en mode document : 'D/document'
29 *
30 * Cf. fonction `dissocier_document` dans `action/dissocier_document.php`.
31 *
32 * @example
33 *     ```
34 *     #URL_ACTION_AUTEUR{vider_album, #ID_ALBUM, #SELF}
35 *     ```
36 *
37 * @uses vider_albums()
38 *
39 * @param $arg string
40 *     Arguments séparés par un charactère non alphanumérique
41 *     sous la forme `$id_album-supprimer-orphelins`
42 *
43 *     - id_album  : identifiant de l'album
44 *     - orphelins : pour supprimer les documents rendus orphelins
45 *     - supprimer : pour supprimer l'album à la fin de l'opération
46 * @return void
47 */
48function action_vider_album_dist($arg=null){
49
50        // Si $arg n'est pas donné directement, le récupérer via _POST ou _GET
51        if (is_null($arg)){
52                $securiser_action = charger_fonction('securiser_action', 'inc');
53                $arg = $securiser_action();
54        }
55
56        list($id_album, $supprimer_orphelins) = preg_split('/\W/', $arg);
57        $supprimer_orphelins = ($supprimer_orphelins=='orphelins') ? true : false;
58
59        if ($id_album = intval($id_album)) {
60                include_spip('inc/albums');
61                vider_albums($id_album,$supprimer_orphelins);
62        }
63}
64
65?>
Note: See TracBrowser for help on using the repository browser.