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); }