3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2019 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
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 \***************************************************************************/
13 if (!defined('_ECRIRE_INC_VERSION')) {
18 function critere_MESSAGES_destinataire_dist($idb, &$boucles, $crit) {
19 $boucle = &$boucles[$idb];
20 $_auteur = calculer_liste($crit->param
[0], array(), $boucles, $boucle->id_parent
);
22 $boucle->join
['auteurs_liens'] = array(
23 "'" . $boucle->id_table
. "'",
25 "'" . $boucle->primary
. "'",
26 "'auteurs_liens.objet=\'message\' AND auteurs_liens.id_auteur='.intval($_auteur)"
28 $boucle->from
['auteurs_liens'] = 'spip_auteurs_liens';
29 $boucle->from_type
['auteurs_liens'] = 'LEFT';
35 array("'!='", "'" . $boucle->id_table
. ".id_auteur'", "intval($_auteur)"),
38 array("'='", "'auteurs_liens.id_auteur'", "intval($_auteur)"),
39 array("'!='", "'auteurs_liens.vu'", "'\'poub\''"),
44 array("'='", "'" . $boucle->id_table
. ".type'", "sql_quote('affich')"),
47 array("'='", "'" . $boucle->id_table
. ".type'", "sql_quote('pb')"),
48 array("'='", "'" . $boucle->id_table
. ".id_auteur'", "intval($_auteur)"),
55 $where = array("'?'", "strlen($_auteur)", $where, "'1=1'");
59 $where = array("'NOT'", $where);
62 $boucle->where
[] = $where;
65 function critere_MESSAGES_non_lu_dist($idb, &$boucles, $crit) {
66 $boucle = &$boucles[$idb];
70 "'auteurs_liens.vu IS NULL'",
71 "sql_in('auteurs_liens.vu',array('poub','oui'),'NOT',\$connect)"
76 * Fonction privee pour mutualiser de code des criteres_MESSAGES_rv_*
77 * Retourne le code php pour obtenir la date de reference de comparaison
78 * des evenements a trouver
81 * @param object $boucles
84 * @return string code PHP concernant la date.
86 function organiseur_calculer_date_reference($idb, &$boucles, $crit) {
87 if (isset($crit->param
[0])) {
88 return calculer_liste($crit->param
[0], array(), $boucles, $boucles[$idb]->id_parent
);
90 return "date('Y-m-d H:i:00')";
97 * {rv_a_venir #ENV{date}}
100 * @param object $boucles
101 * @param object $crit
103 function critere_MESSAGES_rv_a_venir_dist($idb, &$boucles, $crit) {
104 $boucle = &$boucles[$idb];
105 $id_table = $boucle->id_table
;
107 $_dateref = organiseur_calculer_date_reference($idb, $boucles, $crit);
108 $_date = "$id_table." . (isset($boucle->show
['date']) ?
$boucle->show
['date'] : 'date_debut');
109 $op = $crit->not ?
'<=' : '>';
110 $where = array("'$op'", "'$_date'", "sql_quote($_dateref)");
112 $boucle->where
[] = $where;
117 * {rv_passe #ENV{date}}
120 * @param object $boucles
121 * @param object $crit
123 function critere_MESSAGES_rv_passe_dist($idb, &$boucles, $crit) {
124 $boucle = &$boucles[$idb];
125 $id_table = $boucle->id_table
;
127 $_dateref = organiseur_calculer_date_reference($idb, $boucles, $crit);
128 $_date = "$id_table.date_fin";
129 $op = $crit->not ?
'>=' : '<';
131 $where = array("'$op'", "'$_date'", "sql_quote($_dateref)");
132 $boucle->where
[] = $where;
137 * {rv_en_cours #ENV{date}}
140 * @param object $boucles
141 * @param object $crit
143 function critere_MESSAGES_rv_en_cours_dist($idb, &$boucles, $crit) {
144 $boucle = &$boucles[$idb];
145 $id_table = $boucle->id_table
;
147 $_dateref = organiseur_calculer_date_reference($idb, $boucles, $crit);
148 $_date_debut = "$id_table." . (isset($boucle->show
['date']) ?
$boucle->show
['date'] : 'date_debut');
149 $_date_fin = "$id_table.date_fin";
154 array("'<='", "'$_date_debut'", "sql_quote($_dateref)"),
155 array("'>='", "'$_date_fin'", "sql_quote($_dateref)")
159 $where = array("'NOT'", $where);
161 $boucle->where
[] = $where;
165 function organiseur_icone_message($type, $taille = 24) {
166 $icone = array('pb' => 'pensebete', 'affich' => 'annonce');
167 $icone = isset($icone[$type]) ?
$icone[$type] : 'message';
169 return "$icone-$taille.png";
172 function organiseur_texte_modifier_message($type) {
173 $texte = array('pb' => 'organiseur:icone_modifier_pensebete', 'affich' => 'organiseur:icone_modifier_annonce');
174 $texte = isset($texte[$type]) ?
$texte[$type] : 'organiseur:icone_modifier_message';
179 function organiseur_texte_nouveau_message($type) {
181 'pb' => 'organiseur:icone_ecrire_nouveau_pensebete',
182 'affich' => 'organiseur:icone_ecrire_nouvelle_annonce'
184 $texte = isset($texte[$type]) ?
$texte[$type] : 'organiseur:icone_ecrire_nouveau_message';