[ Index ]
 

Code source de SPIP 1.9.2c

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/ecrire/action/ -> instituer_forum.php (source)

   1  <?php
   2  
   3  /***************************************************************************\
   4   *  SPIP, Systeme de publication pour l'internet                           *
   5   *                                                                         *
   6   *  Copyright (c) 2001-2007                                                *
   7   *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
   8   *                                                                         *
   9   *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
  10   *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
  11  \***************************************************************************/
  12  
  13  if (!defined("_ECRIRE_INC_VERSION")) return;
  14  
  15  // http://doc.spip.org/@action_instituer_forum_dist
  16  function action_instituer_forum_dist() {
  17  
  18      $securiser_action = charger_fonction('securiser_action', 'inc');
  19      $arg = $securiser_action();
  20  
  21      list($id_forum, $statut) = preg_split('/\W/', $arg);
  22      $id_forum = intval($id_forum);
  23      $result = spip_query("SELECT * FROM spip_forum WHERE id_forum=$id_forum");
  24      if (!($row = spip_fetch_array($result)))
  25          return;
  26  
  27      $id_parent = $row['id_parent'];
  28  
  29      // invalider les pages comportant ce forum
  30      include_spip('inc/invalideur');
  31      include_spip('inc/forum');
  32      $index_forum = calcul_index_forum($row['id_article'], $row['id_breve'], $row['id_rubrique'], $row['id_syndic']);
  33      suivre_invalideur("id='id_forum/$index_forum'");
  34  
  35      // changer le statut de toute l'arborescence dependant de ce message
  36      $id_messages = array($id_forum);
  37      $old = $row['statut'];
  38      while ($id_messages) {
  39          $id_messages = join(',', $id_messages);
  40          spip_query("UPDATE spip_forum SET statut='$statut' WHERE id_forum IN ($id_messages) AND statut = '$old'");
  41  
  42          $result_forum = spip_query("SELECT id_forum FROM spip_forum WHERE id_parent IN ($id_messages)");
  43          $id_messages = array();
  44          while ($row = spip_fetch_array($result_forum))
  45              $id_messages[] = $row['id_forum'];
  46      }
  47  
  48      // Signaler au moteur de recherche qu'il faut reindexer le thread
  49      if ($id_parent) {
  50          include_spip('inc/indexation');
  51          marquer_indexer ('spip_forum', $id_parent);
  52      }
  53  
  54      // Notifier de la publication du message, s'il etait 'prop'
  55      if ($old=='prop' AND $statut=='publie') {
  56          if ($notifications = charger_fonction('notifications', 'inc')) {
  57              $notifications('forumvalide', $id_forum);
  58          }
  59      }
  60  }
  61  
  62  ?>


Généré le : Wed Nov 21 10:20:27 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics