[SPIP] ~maj v2.1.25-->2.1.26
[velocampus/web/www.git] / www / plugins / auto / afficher_objets / inc / afficher_objets.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2010 *
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 if (!defined("_ECRIRE_INC_VERSION")) return;
14 include_once _ROOT_RESTREINT . "inc/afficher_objets.php";
15
16 /**
17 * affichage des liste d'objets
18 * surcharge pour aiguiller vers la mise en skel
19 *
20 * @param string $type
21 * @param string $titre
22 * @param array $requete
23 * @param string $formater
24 * @param bool $force
25 * @return string
26 */
27 function inc_afficher_objets($type, $titre,$requete,$formater='', $force=false){
28 $res = ""; // debug
29 // routage sur le squel de liste si besoin
30 include_spip('base/connect_sql');
31 $table = table_objet($type);
32 $fond = "prive/liste/$table";
33 if (find_in_path("$fond.html")){
34 $contexte = $_GET;
35 unset($contexte['where']); // securite
36 // passer le where
37 foreach($requete as $k=>$v)
38 $contexte[strtolower($k)] = $v;
39 if (isset($contexte['limit'])){
40 $contexte['limit'] = explode(',',$contexte['limit']);
41 $contexte['nb'] = end($contexte['limit'])+1;
42 unset($contexte['limit']);
43 }
44 if (isset($contexte['order by'])){
45 $contexte['order by'] = explode(' ',$contexte['order by']);
46 $sens = (end($contexte['order by'])=='DESC')?-1:1;
47 $contexte['order by'] = explode(',',reset($contexte['order by']));
48 $contexte['order by'] = explode('.',reset($contexte['order by']));
49 $contexte['order'] = end($contexte['order by']);
50 if ($contexte['order']=='date')
51 $contexte['date_sens'] = $sens;
52 }
53
54 // cas particuliers tordus avec jointures, en attendant la recriture
55 if (preg_match(",(?:A|articles).id_article=(?:lien|L).id_article AND (?:lien|L).id_auteur=([0-9]+),i",$contexte['where'],$regs)
56 OR preg_match(",(?:lien|L).id_auteur=([0-9]+),i",$contexte['where'],$regs)){
57 $contexte['id_auteur'] = $regs[1];
58 $contexte['where'] = str_replace($regs[0],"(1=1)",$contexte['where']);
59 $contexte['where'] = str_replace("A.","",$contexte['where']);
60 }
61 if (preg_match(",(lien|L).id_mot=([0-9]+),i",$contexte['where'],$regs)){
62 $contexte['id_mot'] = $regs[2];
63 $contexte['where'] = str_replace($regs[0],"(1=1)",$contexte['where']);
64 }
65
66 //$contexte['where'] = str_replace("$table.","",$contexte['where']);
67
68 #var_dump($contexte);
69 $contexte['titre']=$titre;
70 $contexte['sinon']=($force ? $titre:'');
71 $res = recuperer_fond($fond,$contexte,array('ajax'=>true));
72 if (_request('var_liste'))
73 var_dump($contexte);
74
75 if (!_request('var_liste'))
76 return $res;
77 }
78
79 // pas de skel pour cet objet,
80 // on se rabat sur le core
81 return inc_afficher_objets_dist($type, $titre, $requete, $formater, $force);
82
83 }
84
85 ?>