organiseur_fonctions.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. <?php
  2. /***************************************************************************\
  3. * SPIP, Systeme de publication pour l'internet *
  4. * *
  5. * Copyright (c) 2001-2014 *
  6. * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
  7. * *
  8. * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
  9. * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
  10. \***************************************************************************/
  11. if (!defined('_ECRIRE_INC_VERSION')) return;
  12. function critere_MESSAGES_destinataire_dist($idb, &$boucles, $crit) {
  13. $boucle = &$boucles[$idb];
  14. $_auteur = calculer_liste($crit->param[0], array(), $boucles, $boucle->id_parent);
  15. $boucle->join['auteurs_liens']=array("'".$boucle->id_table."'","'id_objet'","'".$boucle->primary."'","'auteurs_liens.objet=\'message\' AND auteurs_liens.id_auteur='.intval($_auteur)");
  16. $boucle->from['auteurs_liens']='spip_auteurs_liens';
  17. $boucle->from_type['auteurs_liens'] = 'LEFT';
  18. $where =
  19. array("'OR'",
  20. array("'AND'",
  21. array("'!='","'".$boucle->id_table.".id_auteur'","intval($_auteur)"),
  22. array(
  23. "'AND'",
  24. array("'='","'auteurs_liens.id_auteur'","intval($_auteur)"),
  25. array("'!='","'auteurs_liens.vu'","'\'poub\''"),
  26. ),
  27. ),
  28. array("'OR'",
  29. array("'='","'".$boucle->id_table.".type'","sql_quote('affich')"),
  30. array(
  31. "'AND'",
  32. array("'='","'".$boucle->id_table.".type'","sql_quote('pb')"),
  33. array("'='","'".$boucle->id_table.".id_auteur'","intval($_auteur)"),
  34. )
  35. )
  36. );
  37. $not = $crit->not;
  38. if ($crit->cond)
  39. $where = array("'?'","strlen($_auteur)", $where,"'1=1'");
  40. if ($not)
  41. $where = array("'NOT'",$where);
  42. $boucle->where[] = $where;
  43. }
  44. function critere_MESSAGES_non_lu_dist($idb, &$boucles, $crit) {
  45. $boucle = &$boucles[$idb];
  46. $boucle->where[] =
  47. array("'OR'",
  48. "'auteurs_liens.vu IS NULL'",
  49. "sql_in('auteurs_liens.vu',array('poub','oui'),'NOT',\$connect)"
  50. );
  51. }
  52. /**
  53. * Fonction privee pour mutualiser de code des criteres_MESSAGES_rv_*
  54. * Retourne le code php pour obtenir la date de reference de comparaison
  55. * des evenements a trouver
  56. *
  57. * @param string $idb
  58. * @param object $boucles
  59. * @param object $crit
  60. *
  61. * @return string code PHP concernant la date.
  62. **/
  63. function organiseur_calculer_date_reference($idb, &$boucles, $crit) {
  64. if (isset($crit->param[0]))
  65. return calculer_liste($crit->param[0], array(), $boucles, $boucles[$idb]->id_parent);
  66. else
  67. return "date('Y-m-d H:i:00')";
  68. }
  69. /**
  70. * {rv_a_venir}
  71. * {rv_a_venir #ENV{date}}
  72. *
  73. * @param string $idb
  74. * @param object $boucles
  75. * @param object $crit
  76. */
  77. function critere_MESSAGES_rv_a_venir_dist($idb, &$boucles, $crit) {
  78. $boucle = &$boucles[$idb];
  79. $id_table = $boucle->id_table;
  80. $_dateref = organiseur_calculer_date_reference($idb, $boucles, $crit);
  81. $_date = "$id_table.".(isset($boucle->show['date'])?$boucle->show['date']:"date_debut");
  82. $op = $crit->not ? "<=":">";
  83. $where = array("'$op'","'$_date'","sql_quote($_dateref)");
  84. $boucle->where[] = $where;
  85. }
  86. /**
  87. * {rv_passe}
  88. * {rv_passe #ENV{date}}
  89. *
  90. * @param string $idb
  91. * @param object $boucles
  92. * @param object $crit
  93. */
  94. function critere_MESSAGES_rv_passe_dist($idb, &$boucles, $crit) {
  95. $boucle = &$boucles[$idb];
  96. $id_table = $boucle->id_table;
  97. $_dateref = organiseur_calculer_date_reference($idb, $boucles, $crit);
  98. $_date = "$id_table.date_fin";
  99. $op = $crit->not ? ">=":"<";
  100. $where = array("'$op'","'$_date'","sql_quote($_dateref)");
  101. $boucle->where[] = $where;
  102. }
  103. /**
  104. * {rv_en_cours}
  105. * {rv_en_cours #ENV{date}}
  106. *
  107. * @param string $idb
  108. * @param object $boucles
  109. * @param object $crit
  110. */
  111. function critere_MESSAGES_rv_en_cours_dist($idb, &$boucles, $crit) {
  112. $boucle = &$boucles[$idb];
  113. $id_table = $boucle->id_table;
  114. $_dateref = organiseur_calculer_date_reference($idb, $boucles, $crit);
  115. $_date_debut = "$id_table.".(isset($boucle->show['date'])?$boucle->show['date']:"date_debut");
  116. $_date_fin = "$id_table.date_fin";
  117. $where =
  118. array("'AND'",
  119. array("'<='", "'$_date_debut'", "sql_quote($_dateref)"),
  120. array("'>='", "'$_date_fin'", "sql_quote($_dateref)")
  121. );
  122. if ($crit->not)
  123. $where = array("'NOT'",$where);
  124. $boucle->where[] = $where;
  125. }
  126. function organiseur_icone_message($type,$taille=24){
  127. $icone = array('pb'=>'pensebete','affich'=>'annonce');
  128. $icone = isset($icone[$type])?$icone[$type]:'message';
  129. return "$icone-$taille.png";
  130. }
  131. function organiseur_texte_modifier_message($type){
  132. $texte = array('pb'=>'organiseur:icone_modifier_pensebete','affich'=>'organiseur:icone_modifier_annonce');
  133. $texte = isset($texte[$type])?$texte[$type]:'organiseur:icone_modifier_message';
  134. return _T($texte);
  135. }
  136. function organiseur_texte_nouveau_message($type){
  137. $texte = array('pb'=>'organiseur:icone_ecrire_nouveau_pensebete','affich'=>'organiseur:icone_ecrire_nouvelle_annonce');
  138. $texte = isset($texte[$type])?$texte[$type]:'organiseur:icone_ecrire_nouveau_message';
  139. return _T($texte);
  140. }
  141. ?>