You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
2.6 KiB

8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
  1. <?php
  2. /***************************************************************************\
  3. * SPIP, Système de publication pour l'internet *
  4. * *
  5. * Copyright © avec tendresse depuis 2001 *
  6. * Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James *
  7. * *
  8. * Ce programme est un logiciel libre distribué sous licence GNU/GPL. *
  9. * Pour plus de détails voir le fichier COPYING.txt ou l'aide en ligne. *
  10. \***************************************************************************/
  11. /**
  12. * Définit les fonctions utiles du plugin forum
  13. *
  14. * @package SPIP\Forum\Fonctions
  15. **/
  16. if (!defined("_ECRIRE_INC_VERSION")) {
  17. return;
  18. }
  19. include_spip('public/forum');
  20. /**
  21. * Un filtre appliqué à `#PARAMETRES_FORUM`, qui donne l'adresse de la page
  22. * de réponse
  23. *
  24. * @example
  25. * ```
  26. * [<p class="repondre">
  27. * <a href="(#PARAMETRES_FORUM|url_reponse_forum)">
  28. * <:repondre_article:>
  29. * </a>
  30. * </p>]
  31. * ```
  32. *
  33. * @filtre
  34. * @see balise_PARAMETRES_FORUM_dist()
  35. *
  36. * @param string $parametres
  37. * @return string URL de la page de réponse
  38. */
  39. function filtre_url_reponse_forum($parametres) {
  40. if (!$parametres) {
  41. return '';
  42. }
  43. return generer_url_public('forum', $parametres);
  44. }
  45. /**
  46. * Un filtre qui, étant donné un `#PARAMETRES_FORUM`, retourne une URL de suivi rss
  47. * dudit forum
  48. *
  49. * Attention : appliqué à un `#PARAMETRES_FORUM` complexe (`id_article=x&id_forum=y`)
  50. * ça retourne une URL de suivi du thread `y` (que le thread existe ou non)
  51. *
  52. * @filtre
  53. * @see balise_PARAMETRES_FORUM_dist()
  54. *
  55. * @param string $param
  56. * @return string URL pour le suivi RSS
  57. */
  58. function filtre_url_rss_forum($param) {
  59. if (!preg_match(',.*(id_(\w*?))=([0-9]+),S', $param, $regs)) {
  60. return '';
  61. }
  62. list(, $k, $t, $v) = $regs;
  63. if ($t == 'forum') {
  64. $k = 'id_' . ($t = 'thread');
  65. }
  66. return generer_url_public("rss_forum_$t", array($k => $v));
  67. }
  68. /**
  69. * Empêche l'exécution de code HTML
  70. *
  71. * Permet si la constante `_INTERDIRE_TEXTE_HTML` est définie
  72. * (ce n'est pas le cas par défaut) d'échapper les balises HTML
  73. * d'un texte (de sorte qu'elles seront affichées et non traitées par
  74. * le navigateur).
  75. *
  76. * @see forum_declarer_tables_interfaces()
  77. *
  78. * @param string $texte
  79. * @return string
  80. **/
  81. function interdit_html($texte) {
  82. if (defined('_INTERDIRE_TEXTE_HTML')) {
  83. $texte = str_replace("<", "&lt;", $texte);
  84. }
  85. return $texte;
  86. }