[SPIP] +2.1.12
[velocampus/web/www.git] / www / ecrire / exec / breves_edit.php
diff --git a/www/ecrire/exec/breves_edit.php b/www/ecrire/exec/breves_edit.php
new file mode 100644 (file)
index 0000000..5580e5f
--- /dev/null
@@ -0,0 +1,119 @@
+<?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/documents');
+
+// http://doc.spip.org/@exec_breves_edit_dist
+function exec_breves_edit_dist()
+{
+       exec_breves_edit_args(intval(_request('id_breve')),
+               intval(_request('id_rubrique')),
+               _request('new'));
+}
+
+// http://doc.spip.org/@exec_breves_edit_args
+function exec_breves_edit_args($id_breve, $id_rubrique, $new)
+{
+       global $connect_id_rubrique;
+       // appel du script a la racine, faut choisir 
+       // on prend le dernier secteur cree
+       // dans une liste restreinte si admin restreint
+
+       if ($new === 'oui' AND $id_rubrique)
+               $id_rubrique = sql_getfetsel('id_secteur', 'spip_rubriques', "id_rubrique=$id_rubrique");
+
+       if (!$id_rubrique) {
+               $in = !count($connect_id_rubrique)
+                 ? '' 
+                 : (" AND " . sql_in('id_rubrique', $connect_id_rubrique));
+
+               $id_rubrique = sql_getfetsel('id_rubrique','spip_rubriques', "id_parent=0$in",'',  "id_rubrique DESC", 1);
+
+               if (!autoriser('creerbrevedans','rubrique',$id_rubrique )){
+                       // manque de chance, la rubrique n'est pas autorisee, on cherche un des secteurs autorises
+                       $res = sql_select("id_rubrique", "spip_rubriques", "id_parent=0");
+                       while (!autoriser('creerbrevedans','rubrique',$id_rubrique ) && $row_rub = sql_fetch($res)){
+                               $id_rubrique = $row_rub['id_rubrique'];
+                       }
+               }
+       }
+       
+
+       $row = false;
+       if (!( ($new!='oui' AND (!autoriser('voir','breve',$id_breve) OR !autoriser('modifier','breve', $id_breve)))
+              OR ($new=='oui' AND !autoriser('creerbrevedans','rubrique',$id_rubrique)) )) {
+               if ($new != "oui")
+                       $row = sql_fetsel("*", "spip_breves", "id_breve=$id_breve");
+               else $row = true;
+       }
+       if (!$row) {
+               include_spip('inc/minipres');
+               echo minipres();
+       } else  breves_edit_ok($row, $id_breve, $id_rubrique, $new);
+}
+
+// http://doc.spip.org/@breves_edit_ok
+function breves_edit_ok($row, $id_breve, $id_rubrique, $new)
+{
+       global  $connect_statut, $spip_lang_right;
+
+       if ($new != 'oui') {
+               $id_breve=$row['id_breve'];
+               $titre=$row['titre'];
+               $statut=$row['statut'];
+               $id_rubrique=$row['id_rubrique'];
+       } else {
+               $titre = filtrer_entites(_T('titre_nouvelle_breve'));
+               $statut = "prop";
+       }
+
+       $commencer_page = charger_fonction('commencer_page', 'inc');
+       pipeline('exec_init',array('args'=>array('exec'=>'breves_edit','id_breve'=>$id_breve),'data'=>''));
+
+       echo $commencer_page(_T('titre_page_breves_edit', array('titre' => $titre)), "naviguer", "breves", $id_rubrique);
+
+       echo debut_grand_cadre(true);
+       echo afficher_hierarchie($id_rubrique);
+
+       echo fin_grand_cadre(true);
+       echo debut_gauche('', true);
+       if ($new != 'oui' AND ($connect_statut=="0minirezo" OR $statut=="prop")) {
+       # affichage sur le cote des images, en reperant les inserees
+       # note : traiter_modeles($texte, true) repere les doublons
+       # aussi efficacement que propre(), mais beaucoup plus rapidement
+               traiter_modeles("$titre$texte", true);
+               echo afficher_documents_colonne($id_breve, "breve");
+       }
+       echo pipeline('affiche_gauche',array('args'=>array('exec'=>'breves_edit','id_breve'=>$id_breve),'data'=>''));
+       echo creer_colonne_droite('', true);
+       echo pipeline('affiche_droite',array('args'=>array('exec'=>'breves_edit','id_breve'=>$id_breve),'data'=>''));
+       echo debut_droite('', true);
+
+       $contexte = array(
+       'icone_retour'=>$new=='oui'?'':icone_inline(_T('icone_retour'), generer_url_ecrire("breves_voir","id_breve=$id_breve"), "breve-24.gif", "rien.gif",$GLOBALS['spip_lang_left']),
+       'redirect'=>generer_url_ecrire("breves_voir"),
+       'titre'=>$titre,
+       'new'=>$new == "oui"?$new:$id_breve,
+       'id_rubrique'=>$id_rubrique,
+       'config_fonc'=>'breves_edit_config'
+       );
+
+       echo recuperer_fond("prive/editer/breve", $contexte);
+
+       echo fin_gauche(), fin_page();
+
+}
+
+?>