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

Last change on this file since 99808 was 99808, checked in by kent1@…, 3 years ago

PSR SPIP

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