//
// https://code.spip.net/@boucle_DOCUMENTS_dist
function boucle_DOCUMENTS($id_boucle, &$boucles) {
$boucle = &$boucles[$id_boucle];
$id_table = $boucle->id_table;
// on ne veut pas des fichiers de taille nulle,
// sauf s'ils sont distants (taille inconnue)
array_unshift($boucle->where,array("'($id_table.taille > 0 OR $id_table.distant=\\'oui\\')'"));
/**
* N'afficher que les modes de documents que l'on accepte
* Utiliser le "pipeline medias_documents_visibles" pour en ajouter
*/
if (!isset($boucle->modificateur['criteres']['mode'])
AND !isset($boucle->modificateur['criteres']['tout'])) {
$modes = pipeline('medias_documents_visibles',array('image','document'));
$f = sql_serveur('quote', $serveur, true);
$modes = addslashes(join(',', array_map($f, array_unique($modes))));
array_unshift($boucle->where,array("'IN'", "'$id_table.mode'", "'($modes)'"));
}
// Pour une boucle generique (DOCUMENTS) sans critere de lien, verifier
// qu notre document est lie a un element publie
// (le critere {tout} permet de les afficher tous quand meme)
// S'il y a un critere de lien {id_article} par exemple, on zappe
// ces complications (et tant pis si la boucle n'a pas prevu de
// verification du statut de l'article)
if (!isset($boucle->modificateur['tout'])
AND !isset($boucle->modificateur['criteres']['statut'])
) {
if ($GLOBALS['var_preview']) {
array_unshift($boucle->where,"'($id_table.statut IN (\"publie\",\"prop\",\"prepa\"))'");
} else {
if ($GLOBALS['meta']["post_dates"] == 'non')
array_unshift($boucle->where,array("'<'", "'$id_table" . ".date_publication'", "sql_quote(quete_date_postdates())"));
array_unshift($boucle->where,"'(($id_table.statut = \"publie\"))'");
}
}
return calculer_boucle($id_boucle, $boucles);
}
function lien_objet($id,$type,$longueur=80,$connect=NULL){
include_spip('inc/liens');
$titre = traiter_raccourci_titre($id, $type, $connect);
$titre = typo($titre['titre']);
if (!strlen($titre))
$titre = _T('info_sans_titre');
$url = generer_url_entite($id,$type);
return "".couper($titre,$longueur)."";
}
function critere_DOCUMENTS_orphelins_dist($idb, &$boucles, $crit) {
$boucle = &$boucles[$idb];
$quoi = '@$Pile[0]["orphelins"]';
$cond = $crit->cond;
$not = $crit->not?"":"NOT";
$select = sql_get_select("DISTINCT id_document","spip_documents_liens as oooo");
$where = "'".$boucle->id_table.".id_document $not IN ($select)'";
if ($cond)
$where = "($quoi)?$where:''";
$boucle->where[]= $where;
}
?>