supprimer_tous_orphelins.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. /***************************************************************************\
  3. * SPIP, Systeme de publication pour l'internet *
  4. * *
  5. * Copyright (c) 2001-2014 *
  6. * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
  7. * *
  8. * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
  9. * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
  10. \***************************************************************************/
  11. if (!defined("_ECRIRE_INC_VERSION")) return;
  12. include_spip('base/abstract_sql');
  13. function action_supprimer_tous_orphelins() {
  14. $securiser_action = charger_fonction('securiser_action','inc');
  15. $arg = $securiser_action();
  16. //on recupere le contexte pour ne supprimer les orphelins que de ce dernier
  17. list($media,$distant,$statut,$sanstitre) = explode('/',$arg);
  18. //critere sur le media
  19. if($media)
  20. $select = "media=".sql_quote($media);
  21. //critere sur le distant
  22. if($distant)
  23. $where[] = "distant=".sql_quote($distant);
  24. //critere sur le statut
  25. if($statut)
  26. $where[] = "statut REGEXP ".sql_quote("($statut)");
  27. //critere sur le sanstitre
  28. if($sanstitre)
  29. $where[] = "titre=''";
  30. //on isole les orphelins
  31. $select = sql_get_select("DISTINCT id_document","spip_documents_liens as oooo");
  32. $cond = "spip_documents.id_document NOT IN ($select)";
  33. $where[] = $cond;
  34. $ids_doc_orphelins = sql_select( "id_document", "spip_documents", $where );
  35. $supprimer_document = charger_fonction('supprimer_document','action');
  36. while ($row = sql_fetch($ids_doc_orphelins)) {
  37. $supprimer_document($row['id_document']); // pour les orphelins du contexte, on traite avec la fonction existante
  38. }
  39. }
  40. ?>