Skip to content
Extraits de code Groupes Projets
Bifurcation depuis spip / medias
1175 validations de retard le dépôt en amont.
  • cedric@yterium.com's avatar
    7816319e
    report de r44136 · 7816319e
    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
    7816319e
    Historique
    report de r44136
    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
	}
}

?>