X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Faction%2Finstituer_forum.php;fp=www%2Fecrire%2Faction%2Finstituer_forum.php;h=7ba610509336d96fcec32ae8e99fe76dbb805bfe;hp=0000000000000000000000000000000000000000;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c diff --git a/www/ecrire/action/instituer_forum.php b/www/ecrire/action/instituer_forum.php new file mode 100644 index 0000000..7ba6105 --- /dev/null +++ b/www/ecrire/action/instituer_forum.php @@ -0,0 +1,86 @@ + $statut), sql_in("id_forum", $id_messages) ." AND statut = '$old'"); + + $id_messages = array_map('reset',sql_allfetsel("id_forum", "spip_forum", sql_in("id_parent", $id_messages))); + } + + // Notifier de la publication du message, s'il etait 'prop' + if ($old=='prop' AND $statut=='publie') { + if ($notifications = charger_fonction('notifications', 'inc')) { + $notifications('forumvalide', $id_forum); + } + } + + // mettre a jour la date du thread + // si publie, ou que tout le thread est prive, + // mettre la date du thread a 'maintenant' (date de publi du message) + // sinon prendre la date_heure du dernier message public + // c'est imparfait dans le cas ou les crayons ont ete utilises pour modifier ce message entre temps + // car la date_thread aurait cette derniere date alors que pas le message + // mais c'est au mieux de ce que l'on peut faire quand on depublie un SPAM ou supprime un message + if ($statut=='publie' OR $old=='publie') { + if ($statut=='publie' + OR !($date_thread = sql_getfetsel("date_heure", "spip_forum", "statut='publie' AND id_thread=".$row['id_thread'], "", "date_heure DESC","0,1"))){ + $date_thread = date('Y-m-d H:i:s'); + } + sql_updateq("spip_forum", array("date_thread" => $date_thread), "id_thread=".$row['id_thread']); + } + + // invalider les pages comportant ce forum + include_spip('inc/invalideur'); + include_spip('inc/forum'); + $index_forum = calcul_index_forum($row['id_article'], $row['id_breve'], $row['id_rubrique'], $row['id_syndic']); + suivre_invalideur("id='id_forum/$index_forum'"); + + // Reindexation du thread (par exemple) + pipeline('post_edition', + array( + 'args' => array( + 'table' => 'spip_forum', + 'id_objet' => $id_forum, + 'action' => 'instituer', + ), + 'data' => null + ) + ); +} + +?>