[SPIP] ~maj v3.0.14-->v3.0.17
[ptitvelo/web/www.git] / www / plugins-dist / forum / action / editer_forum.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2014 *
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 include_spip('inc/modifier');
15
16 // Nota: quand on edite un forum existant, il est de bon ton d'appeler
17 // au prealable conserver_original($id_forum)
18 // http://doc.spip.org/@revision_forum
19 if(!function_exists('revision_forum')){
20 function revision_forum($id_forum, $c=false) {
21
22 $t = sql_fetsel("*", "spip_forum", "id_forum=".intval($id_forum));
23 if (!$t) {
24 spip_log("erreur forum $id_forum inexistant");
25 return;
26 }
27
28 // Calculer l'invalideur des caches lies a ce forum
29 if ($t['statut'] == 'publie') {
30 include_spip('inc/invalideur');
31 $invalideur = array("id='forum/$id_forum'","id='".$t['objet']."/".$t['id_objet']."'");
32 } else
33 $invalideur = '';
34
35 // Supprimer 'http://' tout seul
36 if (isset($c['url_site'])) {
37 include_spip('inc/filtres');
38 $c['url_site'] = vider_url($c['url_site'], false);
39 }
40
41 $err = objet_modifier_champs('forum', $id_forum,
42 array(
43 'nonvide' => array('titre' => _T('info_sans_titre')),
44 'invalideur' => $invalideur
45 ),
46 $c);
47
48 $t = $t["id_thread"];
49 $cles = array();
50 foreach (array('id_objet', 'objet') as $k) {
51 if (isset($c[$k]) AND $c[$k]) $cles[$k] = $c[$k];
52 }
53
54 // Modification des id_article etc
55 // (non autorise en standard mais utile pour des crayons)
56 // on deplace tout le thread {sauf les originaux}.
57 if (count($cles) AND $t) {
58 spip_log("update thread id_thread=$t avec ".var_export($cles,1),'forum.'. _LOG_INFO_IMPORTANTE);
59 sql_updateq("spip_forum", $cles, "id_thread=".intval($t)." AND statut!='original'");
60 // on n'affecte pas $r, car un deplacement ne change pas l'auteur
61 }
62
63 // s'il y a vraiment eu une modif, on
64 // enregistre le nouveau date_thread
65 if ($err==='') {
66 // on ne stocke ni le numero IP courant ni le nouvel id_auteur
67 // dans le message modifie (trop penible a l'usage) ; mais du
68 // coup attention a la responsabilite editoriale
69 /*
70 sql_updateq('spip_forum', array('ip'=>($GLOBALS['ip']), 'id_auteur'=>($GLOBALS['visiteur_session']['id_auteur'])),"id_forum=".intval($id_forum));
71 */
72
73 // & meme ca ca pourrait etre optionnel
74 sql_updateq("spip_forum", array("date_thread" => date('Y-m-d H:i:s')), "id_thread=".$t);
75 }
76 }
77 }