Mise en route du suivi.
[aidenligne_francais_universite.git] / ecrire / exec / articles_edit.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2007 *
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 articles_edit(_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 'articles_edit_config');
28 }
29
30
31 // http://doc.spip.org/@articles_edit
32 function articles_edit($id_article, $id_rubrique,$lier_trad, $id_version, $new, $config_fonc)
33 {
34 $row = article_select($id_article ? $id_article : $new, $id_rubrique, $lier_trad, $id_version);
35 $id_article = $row['id_article'];
36 $id_rubrique = $row['id_rubrique'];
37
38 $commencer_page = charger_fonction('commencer_page', 'inc');
39 if (!$row
40 OR ($new AND !autoriser('creerarticledans','rubrique',$id_rubrique))
41 OR (!$new AND (!autoriser('voir', 'article', $id_article) OR !autoriser('modifier','article', $id_article)))
42 ) {
43 echo $commencer_page(_T('info_modifier_titre', array('titre' => $titre)), "naviguer", "rubriques", $id_rubrique);
44 echo "<strong>"._T('avis_acces_interdit')."</strong>";
45 echo fin_page();
46 exit;
47 }
48
49 pipeline('exec_init',array('args'=>array('exec'=>'articles_edit','id_article'=>$id_article),'data'=>''));
50
51 if ($id_version) $titre.= ' ('._T('version')." $id_version)";
52 else $titre = $row['titre'];
53
54 echo $commencer_page(_T('titre_page_articles_edit', array('titre' => $titre)), "naviguer", "articles", $id_rubrique);
55
56 debut_grand_cadre();
57 echo afficher_hierarchie($id_rubrique);
58 fin_grand_cadre();
59
60 debut_gauche();
61
62 // Pave "documents associes a l'article"
63
64 if (!$new){
65 # affichage sur le cote des pieces jointes, en reperant les inserees
66 # note : traiter_modeles($texte, true) repere les doublons
67 # aussi efficacement que propre(), mais beaucoup plus rapidement
68 traiter_modeles(join('',$row), true);
69 echo afficher_documents_colonne($id_article, 'article');
70 } else {
71 # ICI GROS HACK
72 # -------------
73 # on est en new ; si on veut ajouter un document, on ne pourra
74 # pas l'accrocher a l'article (puisqu'il n'a pas d'id_article)...
75 # on indique donc un id_article farfelu (0-id_auteur) qu'on ramassera
76 # le moment venu, c'est-\88-dire lors de la creation de l'article
77 # dans editer_article.
78 echo afficher_documents_colonne(
79 0-$GLOBALS['auteur_session']['id_auteur'], 'article');
80 }
81
82 echo pipeline('affiche_gauche',array('args'=>array('exec'=>'articles_edit','id_article'=>$id_article),'data'=>''));
83 creer_colonne_droite();
84 echo pipeline('affiche_droite',array('args'=>array('exec'=>'articles_edit','id_article'=>$id_article),'data'=>''));
85 debut_droite();
86
87 debut_cadre_formulaire();
88 echo articles_edit_presentation($new, $row['id_rubrique'], $lier_trad, $row['id_article'], $row['titre']);
89 $editer_article = charger_fonction('editer_article', 'inc');
90 echo $editer_article($new, $id_rubrique, $lier_trad, generer_url_ecrire("articles"), $config_fonc, $row);
91 fin_cadre_formulaire();
92
93 echo pipeline('affiche_milieu',array('args'=>array('exec'=>'articles_edit','id_article'=>$id_article),'data'=>''));
94
95 echo fin_gauche(), fin_page();
96 }
97
98 // http://doc.spip.org/@articles_edit_presentation
99 function articles_edit_presentation($new, $id_rubrique, $lier_trad, $id_article, $titre)
100 {
101 $oups = ($lier_trad ?
102 generer_url_ecrire("articles","id_article=$lier_trad")
103 : ($new
104 ? generer_url_ecrire("naviguer","id_rubrique=$id_rubrique")
105 : generer_url_ecrire("articles","id_article=$id_article")
106 ));
107
108 return
109 "\n<table cellpadding='0' cellspacing='0' border='0' width='100%'>" .
110 "<tr>" .
111 "\n<td>" .
112 icone(_T('icone_retour'), $oups, "article-24.gif", "rien.gif", '',false) .
113 "</td>\n<td>" .
114 "<img src='" .
115 _DIR_IMG_PACK . "rien.gif' width='10' alt='' />" .
116 "</td>\n" .
117 "<td style='width: 100%'>" .
118 _T('texte_modifier_article') .
119 gros_titre($titre,'',false) .
120 "</td></tr></table><hr />\n";
121 }
122 ?>