squellete2
[aidenligne_francais_universite.git] / ecrire / action / supprimer.php
CommitLineData
c495c100
P
1<?php
2
3/***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2007 *
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
13if (!defined("_ECRIRE_INC_VERSION")) return;
14
15include_spip('inc/charsets'); # pour le nom de fichier
16include_spip('base/abstract_sql');
17
18// Effacer un doc (et sa vignette)
19// http://doc.spip.org/@action_supprimer_dist
20function action_supprimer_dist() {
21
22 $securiser_action = charger_fonction('securiser_action', 'inc');
23 $arg = $securiser_action();
24
25 preg_match('/^(\w+)\W(.*)$/', $arg, $r);
26 $var_nom = 'action_supprimer_' . $r[1];
27 if (function_exists($var_nom)) {
28 spip_log("$var_nom $r[2]");
29 $var_nom($r[2]);
30 }
31 else
32 spip_log("action supprimer $arg incompris");
33}
34
35// Ne pas confondre cette fonction avec celle au pluriel ci-dessous
36
37// http://doc.spip.org/@action_supprimer_document
38function action_supprimer_document($arg) {
39 global $redirect;
40 supprimer_document_et_vignette(intval($arg));
41 $redirect = rawurldecode($redirect);
42 if (strpos($redirect, 'id_rubrique=')) {
43 include_spip('inc/rubriques');
44 calculer_rubriques();
45 }
46 redirige_par_entete($redirect);
47}
48
49
50// http://doc.spip.org/@action_supprimer_rubrique
51function action_supprimer_rubrique($id_rubrique)
52{
53 spip_query("DELETE FROM spip_rubriques WHERE id_rubrique=$id_rubrique");
54 // Les admin restreints qui n'administraient que cette rubrique
55 // deviennent redacteurs
56 // (il y a sans doute moyen de faire ca avec un having)
57
58 $q = spip_query("SELECT id_auteur FROM spip_auteurs_rubriques WHERE id_rubrique=$id_rubrique");
59
60 while ($r = spip_fetch_array($q)) {
61 $id_auteur = $r['id_auteur'];
62 spip_query("DELETE FROM spip_auteurs_rubriques WHERE id_rubrique=$id_rubrique AND id_auteur=$id_auteur");
63 $n = spip_num_rows(spip_query("SELECT id_auteur FROM spip_auteurs_rubriques WHERE id_auteur=$id_auteur LIMIT 1"));
64 if (!$n)
65 spip_query("UPDATE spip_auteurs SET statut='1comite' WHERE id_auteur=$id_auteur");
66 }
67
68 include_spip('inc/rubriques');
69 calculer_rubriques();
70 calculer_langues_rubriques();
71
72 // invalider les caches marques de cette rubrique
73 include_spip('inc/invalideur');
74 suivre_invalideur("id='id_rubrique/$id_rubrique'");
75
76}
77
78// http://doc.spip.org/@supprimer_document_et_vignette
79function supprimer_document_et_vignette($arg)
80{
81 $result = spip_query("SELECT id_vignette, fichier FROM spip_documents WHERE id_document=$arg");
82 if ($row = spip_fetch_array($result)) {
83 $fichier = $row['fichier'];
84 $id_vignette = $row['id_vignette'];
85 spip_query("DELETE FROM spip_documents WHERE id_document=$arg");
86 spip_query("UPDATE spip_documents SET id_vignette=0 WHERE id_vignette=$arg");
87 spip_query("DELETE FROM spip_documents_articles WHERE id_document=$arg");
88 spip_query("DELETE FROM spip_documents_rubriques WHERE id_document=$arg");
89 spip_query("DELETE FROM spip_documents_breves WHERE id_document=$arg");
90 @unlink($fichier);
91
92 if ($id_vignette > 0) {
93 $result = spip_query("SELECT id_vignette, fichier FROM spip_documents WHERE id_document=$id_vignette");
94
95 if ($row = spip_fetch_array($result)) {
96 $fichier = $row['fichier'];
97 @unlink($fichier);
98 }
99 spip_query("DELETE FROM spip_documents WHERE id_document=$id_vignette");
100 spip_query("DELETE FROM spip_documents_articles WHERE id_document=$id_vignette");
101 spip_query("DELETE FROM spip_documents_rubriques WHERE id_document=$id_vignette");
102 spip_query("DELETE FROM spip_documents_breves WHERE id_document=$id_vignette");
103 }
104 }
105}
106?>