squellete2
[aidenligne_francais_universite.git] / ecrire / action / instituer_forum.php
CommitLineData
c495c100
P
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
13if (!defined("_ECRIRE_INC_VERSION")) return;
14
15// http://doc.spip.org/@action_instituer_forum_dist
16function 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?>