123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- <?php
- /***************************************************************************\
- * SPIP, Systeme de publication pour l'internet *
- * *
- * Copyright (c) 2001-2014 *
- * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
- * *
- * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
- * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
- \***************************************************************************/
- if (!defined('_ECRIRE_INC_VERSION')) return;
- function critere_MESSAGES_destinataire_dist($idb, &$boucles, $crit) {
- $boucle = &$boucles[$idb];
- $_auteur = calculer_liste($crit->param[0], array(), $boucles, $boucle->id_parent);
- $boucle->join['auteurs_liens']=array("'".$boucle->id_table."'","'id_objet'","'".$boucle->primary."'","'auteurs_liens.objet=\'message\' AND auteurs_liens.id_auteur='.intval($_auteur)");
- $boucle->from['auteurs_liens']='spip_auteurs_liens';
- $boucle->from_type['auteurs_liens'] = 'LEFT';
- $where =
- array("'OR'",
- array("'AND'",
- array("'!='","'".$boucle->id_table.".id_auteur'","intval($_auteur)"),
- array(
- "'AND'",
- array("'='","'auteurs_liens.id_auteur'","intval($_auteur)"),
- array("'!='","'auteurs_liens.vu'","'\'poub\''"),
- ),
- ),
- array("'OR'",
- array("'='","'".$boucle->id_table.".type'","sql_quote('affich')"),
- array(
- "'AND'",
- array("'='","'".$boucle->id_table.".type'","sql_quote('pb')"),
- array("'='","'".$boucle->id_table.".id_auteur'","intval($_auteur)"),
- )
- )
- );
- $not = $crit->not;
- if ($crit->cond)
- $where = array("'?'","strlen($_auteur)", $where,"'1=1'");
- if ($not)
- $where = array("'NOT'",$where);
- $boucle->where[] = $where;
- }
- function critere_MESSAGES_non_lu_dist($idb, &$boucles, $crit) {
- $boucle = &$boucles[$idb];
- $boucle->where[] =
- array("'OR'",
- "'auteurs_liens.vu IS NULL'",
- "sql_in('auteurs_liens.vu',array('poub','oui'),'NOT',\$connect)"
- );
- }
- /**
- * Fonction privee pour mutualiser de code des criteres_MESSAGES_rv_*
- * Retourne le code php pour obtenir la date de reference de comparaison
- * des evenements a trouver
- *
- * @param string $idb
- * @param object $boucles
- * @param object $crit
- *
- * @return string code PHP concernant la date.
- **/
- function organiseur_calculer_date_reference($idb, &$boucles, $crit) {
- if (isset($crit->param[0]))
- return calculer_liste($crit->param[0], array(), $boucles, $boucles[$idb]->id_parent);
- else
- return "date('Y-m-d H:i:00')";
- }
- /**
- * {rv_a_venir}
- * {rv_a_venir #ENV{date}}
- *
- * @param string $idb
- * @param object $boucles
- * @param object $crit
- */
- function critere_MESSAGES_rv_a_venir_dist($idb, &$boucles, $crit) {
- $boucle = &$boucles[$idb];
- $id_table = $boucle->id_table;
- $_dateref = organiseur_calculer_date_reference($idb, $boucles, $crit);
- $_date = "$id_table.".(isset($boucle->show['date'])?$boucle->show['date']:"date_debut");
- $op = $crit->not ? "<=":">";
- $where = array("'$op'","'$_date'","sql_quote($_dateref)");
- $boucle->where[] = $where;
- }
- /**
- * {rv_passe}
- * {rv_passe #ENV{date}}
- *
- * @param string $idb
- * @param object $boucles
- * @param object $crit
- */
- function critere_MESSAGES_rv_passe_dist($idb, &$boucles, $crit) {
- $boucle = &$boucles[$idb];
- $id_table = $boucle->id_table;
- $_dateref = organiseur_calculer_date_reference($idb, $boucles, $crit);
- $_date = "$id_table.date_fin";
- $op = $crit->not ? ">=":"<";
- $where = array("'$op'","'$_date'","sql_quote($_dateref)");
- $boucle->where[] = $where;
- }
- /**
- * {rv_en_cours}
- * {rv_en_cours #ENV{date}}
- *
- * @param string $idb
- * @param object $boucles
- * @param object $crit
- */
- function critere_MESSAGES_rv_en_cours_dist($idb, &$boucles, $crit) {
- $boucle = &$boucles[$idb];
- $id_table = $boucle->id_table;
- $_dateref = organiseur_calculer_date_reference($idb, $boucles, $crit);
- $_date_debut = "$id_table.".(isset($boucle->show['date'])?$boucle->show['date']:"date_debut");
- $_date_fin = "$id_table.date_fin";
- $where =
- array("'AND'",
- array("'<='", "'$_date_debut'", "sql_quote($_dateref)"),
- array("'>='", "'$_date_fin'", "sql_quote($_dateref)")
- );
- if ($crit->not)
- $where = array("'NOT'",$where);
- $boucle->where[] = $where;
- }
- function organiseur_icone_message($type,$taille=24){
- $icone = array('pb'=>'pensebete','affich'=>'annonce');
- $icone = isset($icone[$type])?$icone[$type]:'message';
- return "$icone-$taille.png";
- }
- function organiseur_texte_modifier_message($type){
- $texte = array('pb'=>'organiseur:icone_modifier_pensebete','affich'=>'organiseur:icone_modifier_annonce');
- $texte = isset($texte[$type])?$texte[$type]:'organiseur:icone_modifier_message';
- return _T($texte);
- }
- function organiseur_texte_nouveau_message($type){
- $texte = array('pb'=>'organiseur:icone_ecrire_nouveau_pensebete','affich'=>'organiseur:icone_ecrire_nouvelle_annonce');
- $texte = isset($texte[$type])?$texte[$type]:'organiseur:icone_ecrire_nouveau_message';
- return _T($texte);
- }
- ?>
|