[SPIP] ~maj v2.1.25-->2.1.26
[velocampus/web/www.git] / www / ecrire / action / supprimer.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2014 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
12
13 if (!defined('_ECRIRE_INC_VERSION')) return;
14
15 include_spip('inc/charsets'); # pour le nom de fichier
16 include_spip('inc/documents');
17
18 // Effacer une rubrique
19 // http://doc.spip.org/@action_supprimer_dist
20 function action_supprimer_dist() {
21
22 $securiser_action = charger_fonction('securiser_action', 'inc');
23 $arg = $securiser_action();
24
25 preg_match('/^(\w+)\W(\d+)(\W(\w+)\W(\d+))?$/', $arg, $r);
26 $var_nom = 'action_supprimer_' . $r[1];
27 if (function_exists($var_nom)) {
28 $var_nom($r);
29 }
30 else
31 spip_log("action supprimer $arg incompris");
32 }
33
34
35 // http://doc.spip.org/@action_supprimer_rubrique
36 function action_supprimer_rubrique($r)
37 {
38 list(,,$id_rubrique) = $r;
39 sql_delete("spip_rubriques", "id_rubrique=$id_rubrique");
40 sql_delete("spip_mots_rubriques", "id_rubrique=$id_rubrique");
41 // Les admin restreints qui n'administraient que cette rubrique
42 // deviennent redacteurs
43 // (il y a sans doute moyen de faire ca avec un having)
44
45 $q = sql_select("id_auteur", "spip_auteurs_rubriques", "id_rubrique=$id_rubrique");
46
47 while ($r = sql_fetch($q)) {
48 $id_auteur = $r['id_auteur'];
49 sql_delete("spip_auteurs_rubriques", "id_rubrique=$id_rubrique AND id_auteur=$id_auteur");
50 $n = sql_countsel("spip_auteurs_rubriques", "id_auteur=$id_auteur");
51 if (!$n)
52 sql_updateq("spip_auteurs", array("statut" => '1comite'), "id_auteur=$id_auteur");
53 }
54 // menu_rubriques devra recalculer
55 effacer_meta("date_calcul_rubriques");
56
57 // Une rubrique supprimable n'avait pas le statut "publie"
58 // donc rien de neuf pour la rubrique parente
59 include_spip('inc/rubriques');
60 calculer_langues_rubriques();
61
62 // invalider les caches marques de cette rubrique
63 include_spip('inc/invalideur');
64 suivre_invalideur("id='id_rubrique/$id_rubrique'");
65 }
66
67 ?>