Bifurcation depuis
spip / medias
1175 validations de retard le dépôt en amont.
-
cedric@yterium.com a rédigé
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
cedric@yterium.com a rédigé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
supprimer_tous_orphelins.php 2,02 Kio
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2011 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('base/abstract_sql');
function action_supprimer_tous_orphelins() {
$securiser_action = charger_fonction('securiser_action','inc');
$arg = $securiser_action();
//on recupere le contexte pour ne supprimer les orphelins que de ce dernier
list($media,$distant,$statut,$sanstitre) = explode('/',$arg);
//critere sur le media
if($media) {
$select = sql_get_select("extension","spip_types_documents as nnnn","media=".sql_quote($media));
$where[] = "spip_documents.extension IN ($select)";
}
//critere sur le distant
if($distant)
$where[] = "distant=".sql_quote($distant);
//critere sur le statut
if($statut)
$where[] = "statut REGEXP ".sql_quote("($statut)");
//critere sur le sanstitre
if($sanstitre)
$where[] = "titre=''";
//on isole les orphelins
$select = sql_get_select("DISTINCT id_document","spip_documents_liens as oooo");
$cond = "spip_documents.id_document NOT IN ($select)";
$where[] = $cond;
$ids_doc_orphelins = sql_select( "id_document", "spip_documents", $where );
$supprimer_document = charger_fonction('supprimer_document','action');
while ($row = sql_fetch($ids_doc_orphelins)) {
$supprimer_document($row['id_document']); // pour les orphelins du contexte, on traite avec la fonction existante
}
}
?>