/_plugins_/spipBB/dev/2_0_0/action/spipbb_action.php

https://bitbucket.org/pombredanne/spip-zone-treemap · PHP · 138 lines · 76 code · 27 blank · 35 comment · 13 complexity · 7f33fb47f39294a211992a9666d81bf5 MD5 · raw file

  1. <?php
  2. /*
  3. +-------------------------------------------+
  4. | GAFoSPIP v. 0.5 - 21/08/07 - spip 1.9.2
  5. +-------------------------------------------+
  6. | Gestion Alternative des Forums SPIP
  7. +-------------------------------------------+
  8. | Hugues AROUX - SCOTY @ koakidi.com
  9. +-------------------------------------------+
  10. | les actions !
  11. +-------------------------------------------+
  12. */
  13. if (!defined("_ECRIRE_INC_VERSION")) return;
  14. include_spip('inc/spipbb_common');
  15. spipbb_log('included',2,__FILE__);
  16. # pour 192 ..
  17. # h. --> 193 modif requete ;-) !
  18. //include_spip('inc/spipbb_util');
  19. #
  20. # action generique
  21. #
  22. function action_spipbb_action() {
  23. $securiser_action = charger_fonction('securiser_action', 'inc');
  24. $arg = $securiser_action();
  25. $redirect = rawurldecode(_request('redirect'));
  26. preg_match('/^(\w+)\W(.*)$/', $arg, $r);
  27. /* $r = Array
  28. 0 -> action-id
  29. 1 -> action
  30. 2 -> idforum
  31. */
  32. $var_nom = 'action_spipbb_action_' . $r[1];
  33. if (function_exists($var_nom)) {
  34. spipbb_log("action: $var_nom $r[2]",3,"A_a_s_a");
  35. $var_nom($r[2]);
  36. }
  37. else {
  38. spipbb_log("action: $action: $arg incompris",3,"A_a_s_a");
  39. }
  40. redirige_par_entete($redirect);
  41. } // action_spipbb_action
  42. //
  43. // lier le sujet au mot "annonce"
  44. //
  45. function action_spipbb_action_sujetannonce($arg) {
  46. $id_mot_annonce=_request('id_mot_annonce');
  47. $mode=_request('mode');
  48. $arg = intval($arg); // id_sujet
  49. spipbb_log("action_spipbb_action_sujetannonce: $id_mot_annonce, $arg, $mode",3,"a_s_a_sua");
  50. if ($mode=="annonce") {
  51. @sql_insertq("spip_mots_forum",array('id_mot'=> $id_mot_annonce,'id_forum'=>$arg));
  52. }
  53. elseif ($mode=="desannonce") {
  54. @sql_delete("spip_mots_forum","id_mot=$id_mot_annonce AND id_forum=$arg");
  55. }
  56. }
  57. #
  58. # lier le forum au mot "annonce"
  59. #
  60. function action_spipbb_action_forumannonce($arg) {
  61. $id_mot_annonce=_request('id_mot_annonce');
  62. $mode=_request('mode');
  63. $arg = intval($arg); // id_article
  64. if ($mode=="annonce") {
  65. sql_insertq("spip_mots_articles",array('id_mot'=> $id_mot_annonce,'id_article'=>$arg));
  66. }
  67. elseif ($mode=="desannonce") {
  68. sql_delete("spip_mots_articles","id_mot=$id_mot_annonce AND id_article=$arg");
  69. }
  70. }
  71. //
  72. // traiter fermer ou liberer article-forum
  73. // faut-il faire apparaitre dans les logs (hash calculer action auteur) ?? ??
  74. function action_spipbb_action_fermelibere($arg) {
  75. if(!function_exists('verif_article_ferme')) include_spip("inc/spipbb_util");
  76. $id_mot_ferme=_request('id_mot_ferme');
  77. $mode=_request('mode');
  78. $arg = intval($arg); // id_article
  79. $id_auteur = $GLOBALS['auteur_session']['id_auteur'];
  80. $deja_ferme = verif_article_ferme($arg, $id_mot_ferme);
  81. $f_gafart = _DIR_SESSIONS."spipbbart_$arg-$id_auteur.lck";
  82. if($mode=="ferme" OR $deja_ferme=='') {
  83. sql_insertq("spip_mots_articles",array('id_mot'=> $id_mot_ferme,'id_article'=>$arg));
  84. }
  85. if($mode=="maintenance")
  86. // pose le verrou de maintenance
  87. { spip_touch($f_gafart); }
  88. if($mode=="libere") {
  89. sql_delete("spip_mots_articles","id_mot=$id_mot_ferme AND id_article=$arg");
  90. }
  91. if($mode=="libere_maintenance")
  92. // effacer le verrou de maintenance
  93. {
  94. if(file_exists($f_gafart))
  95. unlink($f_gafart);
  96. }
  97. }
  98. // fermer liberer sujet
  99. function action_spipbb_action_ferlibsujet($arg) {
  100. #include_spip("inc/spipbb_presentation");
  101. $id_mot_ferme=_request('id_mot_ferme');
  102. $mode=_request('mode');
  103. $arg = intval($arg); // id_sujet
  104. if($mode=="ferme" OR $deja_ferme=='') {
  105. sql_insertq("spip_mots_forum",array('id_mot'=> $id_mot_ferme,'id_forum'=> $arg));
  106. }
  107. if($mode=="libere") {
  108. sql_delete("spip_mots_forum","id_mot=$id_mot_ferme AND id_forum=$arg");
  109. }
  110. }
  111. ?>