source: spip-zone/_plugins_/mediatheque/action/supprimer_tous_orphelins.php @ 44136

Last change on this file since 44136 was 44136, checked in by cedric@…, 9 years ago

prevoir que l'on peut rattacher un document a un autre. C'est une pre-figuration de la reorganisation des documents.
Dans spip_documents_liens id_document designe toujours l'enfant (dependant de) et (id_objet,objet) le parent.
Donc ici un document annexe (sous-titrage, licence, ..) est designe par id_document, et (id_objet,objet='document') pointe vers le document maitre.
Des variantes du mode 'vignette' sont donc a prevoir, pour les documents annexes

File size: 1.3 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5include_spip('base/abstract_sql');
6
7function action_supprimer_tous_orphelins() {
8
9        $securiser_action = charger_fonction('securiser_action','inc');
10        $arg = $securiser_action();
11
12        list($media,$distant,$statut,$sanstitre) = explode('/',$arg); //on récupère le contexte pour ne supprimer les orphelins que de ce dernier
13       
14        if($media) {
15                $select = sql_get_select("extension","spip_types_documents as nnnn","media='$media'");
16                $where[] = "spip_documents.extension IN ($select)";     //critere sur le media
17        }
18        if($distant)
19                $where[] = "distant=$distant"; //critere sur le distant
20        if($statut)
21                $where[] = "statut REGEXP '($statut)'"; //critere sur le statut
22        if($sanstitre)
23                $where[] = "titre=''"; //critere sur le sanstitre
24               
25                $select = sql_get_select("DISTINCT id_document","spip_documents_liens as oooo");
26                $cond = "spip_documents.id_document NOT IN ($select)"; //on isole les orphelins
27                $where[] = $cond;
28
29        $ids_doc_orphelins = sql_select( "id_document", "spip_documents", $where );
30
31        $supprimer_document = charger_fonction('supprimer_document','action');
32        while ($row = sql_fetch($ids_doc_orphelins)) {
33                $supprimer_document($row['id_document']); // pour les orphelins du contexte, on traite avec la fonction existante
34        }
35}
36
37?>
Note: See TracBrowser for help on using the repository browser.