[SPIP] +2.1.12
[velocampus/web/www.git] / www / ecrire / action / reorganiser.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2011 *
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 include_spip('inc/autoriser');
16
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");
27 }
28 }
29
30 // http://doc.spip.org/@reorganiser_article_rubrique
31 function reorganiser_article_rubrique($id_article, $id_rubrique)
32 {
33 if ($id_rubrique
34 AND autoriser('modifier','rubrique',$id_rubrique)
35 AND autoriser('modifier','article',$id_article)) {
36
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,
41 $s['id_rubrique'],
42 $s['statut'],
43 array('id_rubrique' => $id_rubrique));
44 }
45 }
46
47 // http://doc.spip.org/@reorganiser_rubrique_rubrique
48 function reorganiser_rubrique_rubrique($id_quoi, $id_cible)
49 {
50 if (($id_quoi != $id_cible)
51 AND autoriser('modifier','rubrique',$id_cible)
52 AND autoriser('modifier','rubrique',$id_quoi)) {
53 if (!$id_cible)
54 $id_secteur = $id_quoi;
55 else {
56 $id_secteur = sql_getfetsel("id_secteur", "spip_rubriques", "id_rubrique=$id_cible");
57 }
58
59 $s = sql_fetsel("statut, id_parent, id_secteur", "spip_rubriques", "id_rubrique=".intval($id_quoi));
60
61 sql_updateq('spip_rubriques', array('id_parent' => $id_cible, 'id_secteur'=>$id_secteur), "id_rubrique=".intval($id_quoi));
62
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),
71 'publie');
72 }
73 }
74
75 // http://doc.spip.org/@action_reorganiser_dist
76 function action_reorganiser_dist(){
77
78 $securiser_action = charger_fonction('securiser_action', 'inc');
79 $securiser_action();
80
81 if (_request('deplacements')!==NULL)
82 gerer_deplacements(_request('deplacements'));
83
84 $redirect = _request('redirect');
85 if ($redirect==NULL) $redirect="";
86
87 redirige_par_entete(str_replace("&amp;","&",urldecode($redirect)));
88 }
89
90
91 ?>