[SPIP] +2.1.12
[velocampus/web/www.git] / www / ecrire / exec / articles_edit.php
diff --git a/www/ecrire/exec/articles_edit.php b/www/ecrire/exec/articles_edit.php
new file mode 100644 (file)
index 0000000..8d18c31
--- /dev/null
@@ -0,0 +1,121 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2011                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+include_spip('inc/presentation');
+include_spip('inc/article_select');
+include_spip('inc/documents');
+
+// http://doc.spip.org/@exec_articles_edit_dist
+function exec_articles_edit_dist()
+{
+       exec_articles_edit_args(_request('id_article'), // intval plus tard
+               intval(_request('id_rubrique')),
+               intval(_request('lier_trad')),
+               intval(_request('id_version')),
+               ((_request('new') == 'oui') ? 'new' : ''));
+}
+
+
+// http://doc.spip.org/@exec_articles_edit_args
+function exec_articles_edit_args($id_article, $id_rubrique, $lier_trad, $id_version, $new)
+{
+       if (!$new AND (!autoriser('voir', 'article', $id_article) OR !autoriser('modifier','article', $id_article))) {
+               include_spip('inc/minipres');
+               echo minipres(_T('info_acces_interdit'));
+       } else {
+               $article_select = charger_fonction('article_select','inc');
+               $row = $article_select($id_article ? $id_article : $new, $id_rubrique,  $lier_trad, $id_version);
+               $id_rubrique = $row ? $row['id_rubrique'] : false;
+
+               if (!$id_rubrique OR ($new AND !autoriser('creerarticledans','rubrique',$id_rubrique))) {
+                       include_spip('inc/minipres');
+                       echo minipres(_T('public:aucun_article'));
+               } else articles_edit($id_article, $id_rubrique, $lier_trad, $id_version, $new, 'articles_edit_config', $row);
+       }
+}
+
+// http://doc.spip.org/@articles_edit
+function articles_edit($id_article, $id_rubrique, $lier_trad, $id_version, $new, $config_fonc, $row)
+{
+       $id_article = $row['id_article'];
+       $id_rubrique = $row['id_rubrique'];
+       $titre = sinon($row["titre"],_T('info_sans_titre'));
+       $commencer_page = charger_fonction('commencer_page', 'inc');
+       pipeline('exec_init',array('args'=>array('exec'=>'articles_edit','id_article'=>$id_article),'data'=>''));
+       
+       if ($id_version) $titre.= ' ('._T('version')." $id_version)";
+
+       echo $commencer_page(_T('titre_page_articles_edit', array('titre' => $titre)), "naviguer", "articles", $id_rubrique);
+
+       echo debut_grand_cadre(true);
+       echo afficher_hierarchie($id_rubrique,'',$id_article,'article');
+       echo fin_grand_cadre(true);
+
+       echo debut_gauche("",true);
+
+       // Pave "documents associes a l'article"
+       
+       if (!$new){
+               # affichage sur le cote des pieces jointes, en reperant les inserees
+               # note : traiter_modeles($texte, true) repere les doublons
+               # aussi efficacement que propre(), mais beaucoup plus rapidement
+               traiter_modeles(join('',$row), true);
+               echo afficher_documents_colonne($id_article, 'article');
+       } else {
+               # ICI GROS HACK
+               # -------------
+               # on est en new ; si on veut ajouter un document, on ne pourra
+               # pas l'accrocher a l'article (puisqu'il n'a pas d'id_article)...
+               # on indique donc un id_article farfelu (0-id_auteur) qu'on ramassera
+               # le moment venu, c'est-a-dire lors de la creation de l'article
+               # dans editer_article.
+               echo afficher_documents_colonne(
+                       0-$GLOBALS['visiteur_session']['id_auteur'], 'article');
+       }
+
+       echo pipeline('affiche_gauche',array('args'=>array('exec'=>'articles_edit','id_article'=>$id_article),'data'=>''));
+       echo creer_colonne_droite("",true);
+       echo pipeline('affiche_droite',array('args'=>array('exec'=>'articles_edit','id_article'=>$id_article),'data'=>''));
+       echo debut_droite("",true);
+       
+       $oups = ($lier_trad ?
+            generer_url_ecrire("articles","id_article=$lier_trad")
+            : ($new
+               ? generer_url_ecrire("naviguer","id_rubrique=".$row['id_rubrique'])
+               : generer_url_ecrire("articles","id_article=".$row['id_article'])
+               ));
+
+       $contexte = array(
+       'icone_retour'=>icone_inline(_T('icone_retour'), $oups, "article-24.gif", "rien.gif",$GLOBALS['spip_lang_left']),
+       'redirect'=>generer_url_ecrire("articles"),
+       'titre'=>$titre,
+       'new'=>$new?$new:$row['id_article'],
+       'id_rubrique'=>$row['id_rubrique'],
+       'id_secteur'=>$row['id_secteur'],
+       'lier_trad'=>$lier_trad,
+       'config_fonc'=>$config_fonc,
+       // passer row si c'est le retablissement d'une version anterieure
+       'row'=> $id_version
+               ? $row
+               : null
+       );
+
+       $milieu = recuperer_fond("prive/editer/article", $contexte);
+       
+       echo pipeline('affiche_milieu',array('args'=>array('exec'=>'articles_edit','id_article'=>$id_article),'data'=>$milieu));
+
+       echo fin_gauche(), fin_page();
+}
+
+?>