3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2011 *
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/presentation');
16 include_spip('inc/article_select');
17 include_spip('inc/documents');
19 // http://doc.spip.org/@exec_articles_edit_dist
20 function exec_articles_edit_dist()
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' : ''));
30 // http://doc.spip.org/@exec_articles_edit_args
31 function exec_articles_edit_args($id_article, $id_rubrique, $lier_trad, $id_version, $new)
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'));
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;
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);
48 // http://doc.spip.org/@articles_edit
49 function articles_edit($id_article, $id_rubrique, $lier_trad, $id_version, $new, $config_fonc, $row)
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'=>''));
57 if ($id_version) $titre.= ' ('._T('version')." $id_version)";
59 echo $commencer_page(_T('titre_page_articles_edit', array('titre' => $titre)), "naviguer", "articles", $id_rubrique);
61 echo debut_grand_cadre(true);
62 echo afficher_hierarchie($id_rubrique,'',$id_article,'article');
63 echo fin_grand_cadre(true);
65 echo debut_gauche("",true);
67 // Pave "documents associes a l'article"
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');
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');
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);
93 generer_url_ecrire("articles","id_article=$lier_trad")
95 ?
generer_url_ecrire("naviguer","id_rubrique=".$row['id_rubrique'])
96 : generer_url_ecrire("articles","id_article=".$row['id_article'])
100 'icone_retour'=>icone_inline(_T('icone_retour'), $oups, "article-24.gif", "rien.gif",$GLOBALS['spip_lang_left']),
101 'redirect'=>generer_url_ecrire("articles"),
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
114 $milieu = recuperer_fond("prive/editer/article", $contexte);
116 echo pipeline('affiche_milieu',array('args'=>array('exec'=>'articles_edit','id_article'=>$id_article),'data'=>$milieu));
118 echo fin_gauche(), fin_page();