3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2014 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
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 \***************************************************************************/
13 if (!defined('_ECRIRE_INC_VERSION')) return;
15 include_spip('inc/autoriser');
17 // http://doc.spip.org/@gerer_deplacements
18 function gerer_deplacements($deplacements){
19 foreach(explode("\n",$deplacements) as $dep){
20 $mouvement=explode(":",$dep);
21 list($quoi,$id_quoi) = explode("-",$mouvement[0]);
22 list($cible, $id_cible) =explode("-",$mouvement[1]);
23 $f = 'reorganiser_' . $quoi . '_' . $cible;
24 if (function_exists($f))
25 $f(intval($id_quoi), intval($id_cible));
26 else spip_log("reorganiser $dep: incompris");
30 // http://doc.spip.org/@reorganiser_article_rubrique
31 function reorganiser_article_rubrique($id_article, $id_rubrique)
34 AND autoriser('modifier','rubrique',$id_rubrique)
35 AND autoriser('modifier','article',$id_article)) {
37 include_spip('action/editer_article');
38 include_spip('inc/rubriques');
39 $s = sql_fetsel("statut, id_rubrique", "spip_articles", "id_article=$id_article");
40 editer_article_heritage($id_article,
43 array('id_rubrique' => $id_rubrique));
47 // http://doc.spip.org/@reorganiser_rubrique_rubrique
48 function reorganiser_rubrique_rubrique($id_quoi, $id_cible)
50 if (($id_quoi != $id_cible)
51 AND autoriser('modifier','rubrique',$id_cible)
52 AND autoriser('modifier','rubrique',$id_quoi)) {
54 $id_secteur = $id_quoi;
56 $id_secteur = sql_getfetsel("id_secteur", "spip_rubriques", "id_rubrique=$id_cible");
59 $s = sql_fetsel("statut, id_parent, id_secteur", "spip_rubriques", "id_rubrique=".intval($id_quoi));
61 sql_updateq('spip_rubriques', array('id_parent' => $id_cible, 'id_secteur'=>$id_secteur), "id_rubrique=".intval($id_quoi));
63 include_spip('inc/rubriques');
64 // propager les secteurs si besoin
65 if ($s['id_secteur']!=$id_secteur)
66 propager_les_secteurs();
67 // changer le statut de la rubrique source
68 if ($s['statut'] == 'publie')
69 calculer_rubriques_if($s['id_parent'],
70 array('id_rubrique' => $id_cible),
75 // http://doc.spip.org/@action_reorganiser_dist
76 function action_reorganiser_dist(){
78 $securiser_action = charger_fonction('securiser_action', 'inc');
81 if (_request('deplacements')!==NULL)
82 gerer_deplacements(_request('deplacements'));
84 $redirect = _request('redirect');
85 if ($redirect==NULL) $redirect="";
87 redirige_par_entete(str_replace("&","&",urldecode($redirect)));