source: spip-zone/_core_/plugins/medias/medias_fonctions.php @ 43894

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

compilation de la boucle documents : utiliser quete_condition_postdates

File size: 3.6 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2011                                                *
7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
13
14//
15// Ce fichier definit les boucles standard de SPIP
16//
17
18if (!defined('_ECRIRE_INC_VERSION')) return;
19
20
21/**
22 * Afficher la puce de statut pour les documents
23 *
24 * @param unknown_type $id_document
25 * @param unknown_type $statut
26 * @param unknown_type $id_rubrique
27 * @param unknown_type $type
28 * @param unknown_type $ajax
29 * @return unknown
30 */
31function medias_puce_statut_document($id_document, $statut){
32        if ($statut=='publie') {
33                $puce='puce-verte.gif';
34        }
35        else if ($statut == "prepa") {
36                $puce = 'puce-blanche.gif';
37        }
38        else if ($statut == "poubelle") {
39                $puce = 'puce-poubelle.gif';
40        }
41        else
42                $puce = 'puce-blanche.gif';
43
44        return http_img_pack($puce, $statut, "class='puce'");
45}
46
47//
48// <BOUCLE(DOCUMENTS)>
49//
50// http://doc.spip.org/@boucle_DOCUMENTS_dist
51function boucle_DOCUMENTS($id_boucle, &$boucles) {
52        $boucle = &$boucles[$id_boucle];
53        $id_table = $boucle->id_table;
54
55        // on ne veut pas des fichiers de taille nulle,
56        // sauf s'ils sont distants (taille inconnue)
57        array_unshift($boucle->where,array("'($id_table.taille > 0 OR $id_table.distant=\\'oui\\')'"));
58
59        // Supprimer les vignettes
60        if (!isset($boucle->modificateur['criteres']['mode'])
61        AND !isset($boucle->modificateur['criteres']['tout'])) {
62                array_unshift($boucle->where,array("'!='", "'$id_table.mode'", "'\\'vignette\\''"));
63        }
64
65        // Pour une boucle generique (DOCUMENTS) sans critere de lien, verifier
66        // qu notre document est lie a un element publie
67        // (le critere {tout} permet de les afficher tous quand meme)
68        // S'il y a un critere de lien {id_article} par exemple, on zappe
69        // ces complications (et tant pis si la boucle n'a pas prevu de
70        // verification du statut de l'article)
71        if (!isset($boucle->modificateur['tout'])
72        AND !isset($boucle->modificateur['criteres']['statut'])
73        ) {
74                if ($GLOBALS['var_preview']) {
75                        array_unshift($boucle->where,"'($id_table.statut IN (\"publie\",\"prop\",\"prepa\"))'");
76                } else {
77                        if ($GLOBALS['meta']["post_dates"] == 'non')
78                                array_unshift($boucle->where,"quete_condition_postdates('$id_table" . ".date_publication',"._q($boucle->serveur).")");
79                        array_unshift($boucle->where,"'(($id_table.statut = \"publie\"))'");
80                }
81        }
82
83        return calculer_boucle($id_boucle, $boucles);
84}
85
86
87function lien_objet($id,$type,$longueur=80,$connect=NULL){
88        include_spip('inc/liens');
89        $titre = traiter_raccourci_titre($id, $type, $connect);
90        $titre = typo($titre['titre']);
91        if (!strlen($titre))
92                $titre = _T('info_sans_titre');
93        $url = generer_url_entite($id,$type);
94        return "<a href='$url' class='$type'>".couper($titre,$longueur)."</a>";
95}
96
97function critere_DOCUMENTS_orphelins_dist($idb, &$boucles, $crit) {
98
99        $boucle = &$boucles[$idb];
100        $quoi = '@$Pile[0]["orphelins"]';
101        $cond = $crit->cond;
102        $not = $crit->not?"":"NOT";
103
104        $select = sql_get_select("DISTINCT id_document","spip_documents_liens as oooo");
105        $where = "'".$boucle->id_table.".id_document $not IN ($select)'";
106        if ($cond)
107                $where = "($quoi)?$where:''";
108
109        $boucle->where[]= $where;
110}
111
112?>
Note: See TracBrowser for help on using the repository browser.