source: spip-zone/_plugins_/annonces_publiques/ap_fonctions.php

Last change on this file was 18313, checked in by james@…, 14 years ago

-* filtres/balises => duree, jolie_dates (credits erational et le gars cerdic)
-* Champ LIEU

  • Property svn:executable set to *
File size: 4.4 KB
Line 
1<?php
2
3/*
4on va s'appuyer du le tableau global $table_date pour les date de debut
5on va donc créer le tableau global $table_date_fin pour gérer les date
6de fin d'evenement
7*/
8
9//critere pour lister les evenements qui sont passes
10// date de fin inferieure a la date de reference, maintenant par defaut
11function critere_revolus($idb, &$boucles, $crit) {
12  global $table_date_fin;
13  $not = $crit->not;
14  $boucle = &$boucles[$idb];
15  $date_orig = $table_date_fin[$boucle->type_requete];
16  $date_orig = $boucle->id_table . '.' . $date_orig;
17  $arg = kwote(calculer_argument_precedent($idb, 'date', $boucles));
18  $c = array("'<'", "'$date_orig'", $arg);
19  $boucle->where[]= ($crit->not ? array("'NOT'", $c) : $c);
20}
21
22//critere pour lister les evenements qui sont passes
23// date de debut superieure a la date de reference, maintenant par defaut
24function critere_a_venir($idb, &$boucles, $crit) {
25  global $table_date;
26  $not = $crit->not;
27  $boucle = &$boucles[$idb];
28  $date_orig = $table_date[$boucle->type_requete];
29  $date_orig = $boucle->id_table . '.' . $date_orig;
30  $arg = kwote(calculer_argument_precedent($idb, 'date', $boucles));
31  $c = array("'>'", "'$date_orig'", $arg);
32  $boucle->where[]= ($crit->not ? array("'NOT'", $c) : $c);
33}
34
35//critere pour lister les evenements qui sont en cours
36// date de debut inferieure a la date de reference
37// ET date de fin superieure a la date de reference, maintenant par defaut
38// non revolus et non avenir
39function critere_en_cours($idb, &$boucles, $crit) {
40  global $table_date_fin, $table_date;
41  $not = $crit->not;
42  $boucle = &$boucles[$idb];
43  $date_fin = $table_date_fin[$boucle->type_requete];
44  $date_fin = $boucle->id_table . '.' . $date_fin;
45  $date_orig = $table_date[$boucle->type_requete];
46  $date_orig = $boucle->id_table . '.' . $date_orig;
47  $arg = kwote(calculer_argument_precedent($idb, 'date', $boucles));
48  $c1 = array("'<='", "'$date_orig'", $arg);
49  $c2 = array("'>='", "'$date_fin'", $arg);
50  $c = array("'AND'", $c1, $c2);
51  $boucle->where[]= ($crit->not ? array("'NOT'", $c) : $c);
52}
53
54//
55// <BOUCLE(ANNONCES)>
56//
57function boucle_ANNONCES_dist($id_boucle, &$boucles) {
58        $boucle = &$boucles[$id_boucle];
59        $id_table = $boucle->id_table;
60        $boucle->from[$id_table] =  "spip_messages";
61        $mstatut = $id_table .'.statut';
62        $rv = $id_table .'.rv';
63        $type = $id_table .'.type';
64
65        // Restreindre aux elements publics et evenementiels
66        $boucle->where[]= array("'='", "'$rv'", "'\"oui\"'");
67        $boucle->where[]= array("'='", "'$type'", "'\"affich\"'");
68        // Restreindre aux elements publies
69        if (!$boucle->modificateur['criteres']['statut']) {
70                if (!$GLOBALS['var_preview']) {
71                        $boucle->where[]= array("'='", "'$mstatut'", "'\"publie\"'");
72                } else
73                        $boucle->where[]= array("'IN'", "'$mstatut'", "'(\"publie\",\"redac\")'");
74        }
75        return calculer_boucle($id_boucle, $boucles); 
76}
77
78//Agenda_affdate_debut_fin() fait tres bien les choses, c'est juste renomme
79// ici pour ne pas creer d'incompatibilite
80function jolies_dates($date_debut, $date_fin, $horaire = 'oui', $forme=''){
81        static $trans_tbl=NULL;
82        if ($trans_tbl==NULL){
83                $trans_tbl = get_html_translation_table (HTML_ENTITIES);
84                $trans_tbl = array_flip ($trans_tbl);
85        }
86       
87        $date_debut = strtotime($date_debut);
88        $date_fin = strtotime($date_fin);
89        $d = date("Y-m-d", $date_debut);
90        $f = date("Y-m-d", $date_fin);
91        $h = $horaire=='oui';
92        $hd = date("H:i",$date_debut);
93        $hf = date("H:i",$date_fin);
94        $au = " " . _T('annonces:au') . " ";
95        $du = _T('annonces:du') . " ";
96        $s = "";
97        if ($d==$f)
98        { // meme jour
99                $s = ucfirst(nom_jour($d,$forme))." ".affdate_jourcourt($d);
100                if ($h){
101                        $s .= " $hd";
102                        if ($hd!=$hf) $s .= "-$hf";
103                }
104        }
105        else if ((date("Y-m",$date_debut))==date("Y-m",$date_fin))
106        { // meme annee et mois, jours differents
107                if ($h){
108                        $s = $du . affdate_jourcourt($d) . " $hd";
109                        $s .= $au . affdate_jourcourt($f);
110                        if ($hd!=$hf) $s .= " $hf";
111                }
112                else {
113                        $s = $du . jour($d);
114                        $s .= $au . affdate_jourcourt($f);
115                }
116        }
117        else if ((date("Y",$date_debut))==date("Y",$date_fin))
118        { // meme annee, mois et jours differents
119                $s = $du . affdate_jourcourt($d);
120                if ($h) $s .= " $hd";
121                $s .= $au . affdate_jourcourt($f);
122                if ($h) $s .= " $hf";
123        }
124        else
125        { // tout different
126                $s = $du . affdate($d);
127                if ($h)
128                        $s .= " ".date("(H:i)",$date_debut);
129                $s .= $au . affdate($f);
130                if ($h)
131                        $s .= " ".date("(H:i)",$date_fin);
132        }
133        return unicode2charset(charset2unicode(strtr($s,$trans_tbl),''));       
134}
135
136//inclusion filtre duree erational
137include_spip('inc/duree');
138
139?>
Note: See TracBrowser for help on using the repository browser.