[SPIP] ~2.1.12 -->2.1.25
[velocampus/web/www.git] / www / ecrire / exec / articles_edit.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
15 include_spip('inc/presentation');
16 include_spip('inc/article_select');
17 include_spip('inc/documents');
18
19 // http://doc.spip.org/@exec_articles_edit_dist
20 function exec_articles_edit_dist()
21 {
22 exec_articles_edit_args(_request('id_article'), // intval plus tard
23 intval(_request('id_rubrique')),
24 intval(_request('lier_trad')),
25 intval(_request('id_version')),
26 ((_request('new') == 'oui') ? 'new' : ''));
27 }
28
29
30 // http://doc.spip.org/@exec_articles_edit_args
31 function exec_articles_edit_args($id_article, $id_rubrique, $lier_trad, $id_version, $new)
32 {
33 if (!$new AND (!autoriser('voir', 'article', $id_article) OR !autoriser('modifier','article', $id_article))) {
34 include_spip('inc/minipres');
35 echo minipres(_T('info_acces_interdit'));
36 } else {
37 $article_select = charger_fonction('article_select','inc');
38 $row = $article_select($id_article ? $id_article : $new, $id_rubrique, $lier_trad, $id_version);
39 $id_rubrique = $row ? $row['id_rubrique'] : false;
40
41 if (!$id_rubrique OR ($new AND !autoriser('creerarticledans','rubrique',$id_rubrique))) {
42 include_spip('inc/minipres');
43 echo minipres(_T('public:aucun_article'));
44 } else articles_edit($id_article, $id_rubrique, $lier_trad, $id_version, $new, 'articles_edit_config', $row);
45 }
46 }
47
48 // http://doc.spip.org/@articles_edit
49 function articles_edit($id_article, $id_rubrique, $lier_trad, $id_version, $new, $config_fonc, $row)
50 {
51 $id_article = $row['id_article'];
52 $id_rubrique = $row['id_rubrique'];
53 $titre = sinon($row["titre"],_T('info_sans_titre'));
54 $commencer_page = charger_fonction('commencer_page', 'inc');
55 pipeline('exec_init',array('args'=>array('exec'=>'articles_edit','id_article'=>$id_article),'data'=>''));
56
57 if ($id_version) $titre.= ' ('._T('version')." $id_version)";
58
59 echo $commencer_page(_T('titre_page_articles_edit', array('titre' => $titre)), "naviguer", "articles", $id_rubrique);
60
61 echo debut_grand_cadre(true);
62 echo afficher_hierarchie($id_rubrique,'',$id_article,'article');
63 echo fin_grand_cadre(true);
64
65 echo debut_gauche("",true);
66
67 // Pave "documents associes a l'article"
68
69 if (!$new){
70 # affichage sur le cote des pieces jointes, en reperant les inserees
71 # note : traiter_modeles($texte, true) repere les doublons
72 # aussi efficacement que propre(), mais beaucoup plus rapidement
73 traiter_modeles(join('',$row), true);
74 echo afficher_documents_colonne($id_article, 'article');
75 } else {
76 # ICI GROS HACK
77 # -------------
78 # on est en new ; si on veut ajouter un document, on ne pourra
79 # pas l'accrocher a l'article (puisqu'il n'a pas d'id_article)...
80 # on indique donc un id_article farfelu (0-id_auteur) qu'on ramassera
81 # le moment venu, c'est-a-dire lors de la creation de l'article
82 # dans editer_article.
83 echo afficher_documents_colonne(
84 0-$GLOBALS['visiteur_session']['id_auteur'], 'article');
85 }
86
87 echo pipeline('affiche_gauche',array('args'=>array('exec'=>'articles_edit','id_article'=>$id_article),'data'=>''));
88 echo creer_colonne_droite("",true);
89 echo pipeline('affiche_droite',array('args'=>array('exec'=>'articles_edit','id_article'=>$id_article),'data'=>''));
90 echo debut_droite("",true);
91
92 $oups = ($lier_trad ?
93 generer_url_ecrire("articles","id_article=$lier_trad")
94 : ($new
95 ? generer_url_ecrire("naviguer","id_rubrique=".$row['id_rubrique'])
96 : generer_url_ecrire("articles","id_article=".$row['id_article'])
97 ));
98
99 $contexte = array(
100 'icone_retour'=>icone_inline(_T('icone_retour'), $oups, "article-24.gif", "rien.gif",$GLOBALS['spip_lang_left']),
101 'redirect'=>generer_url_ecrire("articles"),
102 'titre'=>$titre,
103 'new'=>$new?$new:$row['id_article'],
104 'id_rubrique'=>$row['id_rubrique'],
105 'id_secteur'=>$row['id_secteur'],
106 'lier_trad'=>$lier_trad,
107 'config_fonc'=>$config_fonc,
108 // passer row si c'est le retablissement d'une version anterieure
109 'row'=> $id_version
110 ? $row
111 : null
112 );
113
114 $milieu = recuperer_fond("prive/editer/article", $contexte);
115
116 echo pipeline('affiche_milieu',array('args'=>array('exec'=>'articles_edit','id_article'=>$id_article),'data'=>$milieu));
117
118 echo fin_gauche(), fin_page();
119 }
120
121 ?>