Commit | Line | Data |
---|---|---|
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 | ||
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 | ?> |