source: spip-zone/_plugins_/vider_rubrique/vider_rubrique_options.php @ 107439

Last change on this file since 107439 was 107439, checked in by teddy.spip@…, 22 months ago

Dissocier les documents aux rubriques vidées.

  • Property svn:executable set to *
File size: 2.5 KB
Line 
1<?php
2/***************************************************************************\
3 * Plugin Vider Rubrique
4 * Licence GPL (c) 2012-2018 - Apsulis
5 * Suppression de tout le contenu d'une rubrique
6 *
7 * \***************************************************************************/
8if (!defined('_ECRIRE_INC_VERSION')) {
9        return;
10}
11
12function vider_rubrique_objet_poubelle($objet, $id_objet, $statut) {
13        spip_log("Suppression $objet : $id_objet.", 'vider_rubrique');
14        $c = array('statut' => $statut);
15
16        include_spip('action/editer_objet');
17        include_spip('inc/config');
18        if ($err = objet_instituer($objet, $id_objet, $c)) {
19                $res = array('message_erreur' => $err, 'objet' => $objet);
20        } else {
21                $res = array('message_ok' => _T('info_modification_enregistree'));
22        }
23        if (lire_config("vider_rubrique/config/effacement") == "oui") {
24                supprimer_les_logos($objet, $id_objet);
25        }
26
27        return $res;
28}
29
30function supprimer_rubrique($liste_id) {
31        include_spip('inc/utils');
32        include_spip('base/abstract_sql');
33        spip_log(print_r($liste_id, true), 'vider_rubrique');
34        $supprimer_rubrique = charger_fonction('supprimer_rubrique', 'action');
35        /* On efface les rubriques les plus profondes en premier, sinon on ne pourra pas supprimer ses parents */
36        $les_id = array_reverse(explode(",", $liste_id));
37        foreach ($les_id as $key => $value) {
38                $supprimer_rubrique($value);
39                supprimer_les_logos("rubrique", $value);
40                spip_log("Suppression de la rubrique : $value.", 'vider_rubrique');
41        }
42        include_spip('inc/rubriques');
43        calculer_rubriques();
44
45        return true;
46}
47
48function supprimer_les_logos($type, $id_objet) {
49        supprimer_logo($type, $id_objet);
50        supprimer_logo($type, $id_objet, 'off');
51}
52
53function supprimer_logo($type, $id_objet, $logo_type = 'on') {
54        include_spip('inc/utils');
55        include_spip('inc/flock');
56        $chercher_logo = charger_fonction('chercher_logo', 'inc');
57        $le_logo = $chercher_logo($id_objet, 'id_' . $type, $logo_type);
58        $le_logo = (isset($le_logo[0]) ? $le_logo[0] : 'empty');
59        if (!file_exists($le_logo)) {
60                return false;
61        } else {
62                // Un message de log que si le logo existe et donc, qu'il peut être supprimé.
63                spip_log("Suppression du logo : $le_logo", 'vider_rubrique');
64                spip_unlink($le_logo);
65        }
66}
67
68function vider_rubrique_dissocier_document($liste_id) {
69        if (empty($liste_id) or is_null($liste_id)) {
70                return false;
71        }
72        include_spip('base/abstract_sql');
73
74        // Dissocier les documents des rubriques.
75        sql_delete('spip_documents_liens', "objet='rubrique' AND id_objet IN ($liste_id)");
76        spip_log("Suppression des liens de la rubrique #$liste_id avec les documents.", 'vider_rubrique');
77
78
79}
Note: See TracBrowser for help on using the repository browser.