8cb4fae6d3cf98f175094400e6a53d40f07ce8f9
[ptitvelo/web/www.git] / www / plugins-dist / organiseur / organiseur_fonctions.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2013 *
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
15
16 function critere_MESSAGES_destinataire_dist($idb, &$boucles, $crit) {
17 $boucle = &$boucles[$idb];
18 $_auteur = calculer_liste($crit->param[0], array(), $boucles, $boucle->id_parent);
19
20 $boucle->join['auteurs_liens']=array("'".$boucle->id_table."'","'id_objet'","'".$boucle->primary."'","'auteurs_liens.objet=\'message\' AND auteurs_liens.id_auteur='.intval($_auteur)");
21 $boucle->from['auteurs_liens']='spip_auteurs_liens';
22 $boucle->from_type['auteurs_liens'] = 'LEFT';
23 $where =
24 array("'OR'",
25 array(
26 "'AND'",
27 array("'='","'auteurs_liens.id_auteur'","intval($_auteur)"),
28 array("'!='","'auteurs_liens.vu'","'\'poub\''"),
29 ),
30 array("'OR'",
31 array("'='","'".$boucle->id_table.".type'","sql_quote('affich')"),
32 array(
33 "'AND'",
34 array("'='","'".$boucle->id_table.".type'","sql_quote('pb')"),
35 array("'='","'".$boucle->id_table.".id_auteur'","intval($_auteur)"),
36 )
37 )
38 );
39 $not = $crit->not;
40
41 if ($crit->cond)
42 $where = array("'?'","strlen($_auteur)", $where,"'1=1'");
43
44 if ($not)
45 $where = array("'NOT'",$where);
46
47 $boucle->where[] = $where;
48 }
49 function critere_MESSAGES_non_lu_dist($idb, &$boucles, $crit) {
50 $boucle = &$boucles[$idb];
51 $boucle->where[] =
52 array("'OR'",
53 "'auteurs_liens.vu IS NULL'",
54 "sql_in('auteurs_liens.vu',array('poub','oui'),'NOT',\$connect)"
55 );
56 }
57
58 /**
59 * Fonction privee pour mutualiser de code des criteres_MESSAGES_rv_*
60 * Retourne le code php pour obtenir la date de reference de comparaison
61 * des evenements a trouver
62 *
63 * @param string $idb
64 * @param object $boucles
65 * @param object $crit
66 *
67 * @return string code PHP concernant la date.
68 **/
69 function organiseur_calculer_date_reference($idb, &$boucles, $crit) {
70 if (isset($crit->param[0]))
71 return calculer_liste($crit->param[0], array(), $boucles, $boucles[$idb]->id_parent);
72 else
73 return "date('Y-m-d H:i:00')";
74 }
75
76
77 /**
78 * {rv_a_venir}
79 * {rv_a_venir #ENV{date}}
80 *
81 * @param string $idb
82 * @param object $boucles
83 * @param object $crit
84 */
85 function critere_MESSAGES_rv_a_venir_dist($idb, &$boucles, $crit) {
86 $boucle = &$boucles[$idb];
87 $id_table = $boucle->id_table;
88
89 $_dateref = organiseur_calculer_date_reference($idb, $boucles, $crit);
90 $_date = "$id_table.".(isset($boucle->show['date'])?$boucle->show['date']:"date_debut");
91 $op = $crit->not ? "<=":">";
92 $where = array("'$op'","'$_date'","sql_quote($_dateref)");
93
94 $boucle->where[] = $where;
95 }
96
97 /**
98 * {rv_passe}
99 * {rv_passe #ENV{date}}
100 *
101 * @param string $idb
102 * @param object $boucles
103 * @param object $crit
104 */
105 function critere_MESSAGES_rv_passe_dist($idb, &$boucles, $crit) {
106 $boucle = &$boucles[$idb];
107 $id_table = $boucle->id_table;
108
109 $_dateref = organiseur_calculer_date_reference($idb, $boucles, $crit);
110 $_date = "$id_table.date_fin";
111 $op = $crit->not ? ">=":"<";
112
113 $where = array("'$op'","'$_date'","sql_quote($_dateref)");
114 $boucle->where[] = $where;
115 }
116
117 /**
118 * {rv_en_cours}
119 * {rv_en_cours #ENV{date}}
120 *
121 * @param string $idb
122 * @param object $boucles
123 * @param object $crit
124 */
125 function critere_MESSAGES_rv_en_cours_dist($idb, &$boucles, $crit) {
126 $boucle = &$boucles[$idb];
127 $id_table = $boucle->id_table;
128
129 $_dateref = organiseur_calculer_date_reference($idb, $boucles, $crit);
130 $_date_debut = "$id_table.".(isset($boucle->show['date'])?$boucle->show['date']:"date_debut");
131 $_date_fin = "$id_table.date_fin";
132
133 $where =
134 array("'AND'",
135 array("'<='", "'$_date_debut'", "sql_quote($_dateref)"),
136 array("'>='", "'$_date_fin'", "sql_quote($_dateref)")
137 );
138
139 if ($crit->not)
140 $where = array("'NOT'",$where);
141 $boucle->where[] = $where;
142 }
143
144
145 function organiseur_icone_message($type,$taille=24){
146 $icone = array('pb'=>'pensebete','affich'=>'annonce');
147 $icone = isset($icone[$type])?$icone[$type]:'message';
148 return "$icone-$taille.png";
149 }
150 function organiseur_texte_modifier_message($type){
151 $texte = array('pb'=>'organiseur:icone_modifier_pensebete','affich'=>'organiseur:icone_modifier_annonce');
152 $texte = isset($texte[$type])?$texte[$type]:'icone_modifier_message';
153 return _T($texte);
154 }
155 function organiseur_texte_nouveau_message($type){
156 $texte = array('pb'=>'organiseur:icone_ecrire_nouveau_pensebete','affich'=>'organiseur:icone_ecrire_nouvelle_annonce');
157 $texte = isset($texte[$type])?$texte[$type]:'organiseur:icone_ecrire_nouveau_message';
158 return _T($texte);
159 }
160 ?>