3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2019 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
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 \***************************************************************************/
13 if (!defined('_ECRIRE_INC_VERSION')) {
17 include_spip('base/abstract_sql');
19 function action_supprimer_tous_orphelins() {
21 $securiser_action = charger_fonction('securiser_action', 'inc');
22 $arg = $securiser_action();
24 //on recupere le contexte pour ne supprimer les orphelins que de ce dernier
25 list($media, $distant, $statut, $sanstitre) = explode('/', $arg);
28 //critere sur le media
30 $select = 'media=' . sql_quote($media);
33 //critere sur le distant
35 $where[] = 'distant=' . sql_quote($distant);
38 //critere sur le statut
40 $where[] = 'statut REGEXP ' . sql_quote("($statut)");
43 //critere sur le sanstitre
45 $where[] = "titre=''";
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)";
53 $ids_doc_orphelins = sql_select('id_document', 'spip_documents', $where);
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']);