[SPIP] v3.2.1-->v3.2.3
[lhc/web/www.git] / www / plugins-dist / medias / action / supprimer_tous_orphelins.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2019 *
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')) {
14 return;
15 }
16
17 include_spip('base/abstract_sql');
18
19 function action_supprimer_tous_orphelins() {
20
21 $securiser_action = charger_fonction('securiser_action', 'inc');
22 $arg = $securiser_action();
23
24 //on recupere le contexte pour ne supprimer les orphelins que de ce dernier
25 list($media, $distant, $statut, $sanstitre) = explode('/', $arg);
26
27 $where = array();
28 //critere sur le media
29 if ($media) {
30 $select = 'media=' . sql_quote($media);
31 }
32
33 //critere sur le distant
34 if ($distant) {
35 $where[] = 'distant=' . sql_quote($distant);
36 }
37
38 //critere sur le statut
39 if ($statut) {
40 $where[] = 'statut REGEXP ' . sql_quote("($statut)");
41 }
42
43 //critere sur le sanstitre
44 if ($sanstitre) {
45 $where[] = "titre=''";
46 }
47
48 //on isole les orphelins
49 $select = sql_get_select('DISTINCT id_document', 'spip_documents_liens as oooo');
50 $cond = "spip_documents.id_document NOT IN ($select)";
51 $where[] = $cond;
52
53 $ids_doc_orphelins = sql_select('id_document', 'spip_documents', $where);
54
55 $supprimer_document = charger_fonction('supprimer_document', 'action');
56 while ($row = sql_fetch($ids_doc_orphelins)) {
57 // pour les orphelins du contexte, on traite avec la fonction existante
58 $supprimer_document($row['id_document']);
59 }
60 }