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

Last change on this file since 107436 was 107436, checked in by teddy.spip@…, 22 months ago
  • Eviter un warning ;
  • Dissocier les documents liés ;
  • Changer le statut des sites syndiqués à refuser;
  • Up de y.
  • Property svn:executable set to *
File size: 2.4 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        $supprimer_rubrique = charger_fonction('supprimer_rubrique', 'action');
33        /* On efface les rubriques les plus profondes en premier, sinon on ne pourra pas supprimer ses parents */
34        $les_id = array_reverse(explode(",", $liste_id));
35        foreach ($les_id as $key => $value) {
36                $supprimer_rubrique($value);
37                supprimer_les_logos("rubrique", $value);
38                spip_log("Suppression de la rubrique : $value.", 'vider_rubrique');
39        }
40        include_spip('inc/rubriques');
41        // Dissocier les documents des rubriques.
42        sql_delete('spip_documents_liens', "objet='rubrique' AND id_objet IN ($liste_id)");
43        // Refuser les sites syndiqués
44        // TODO : Il faudrait voir si ces sites ne doivent pas être aussi supprimé.
45        sql_updateq('spip_syndic', array('statut' => 'refuse'), "id_rubrique IN ($liste_id)");
46        calculer_rubriques();
47
48        return true;
49}
50
51function supprimer_les_logos($type, $id_objet) {
52        supprimer_logo($type, $id_objet);
53        supprimer_logo($type, $id_objet, 'off');
54}
55
56function supprimer_logo($type, $id_objet, $logo_type = 'on') {
57        include_spip('inc/utils');
58        include_spip('inc/flock');
59        $chercher_logo = charger_fonction('chercher_logo', 'inc');
60        $le_logo = $chercher_logo($id_objet, 'id_' . $type, $logo_type);
61        $le_logo = (isset($le_logo[0]) ? $le_logo[0] : 'empty');
62        if (!file_exists($le_logo)) {
63                return false;
64        } else {
65                // Un message de log que si le logo existe et donc, qu'il peut être supprimé.
66                spip_log("Suppression du logo : $le_logo", 'vider_rubrique');
67                spip_unlink($le_logo);
68        }
69}
Note: See TracBrowser for help on using the repository browser.