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