From 9a78980c7b613187b252d513bcc51b104d41e916 Mon Sep 17 00:00:00 2001 From: "Committo,Ergo:sum" <esj@rezo.net> Date: Wed, 27 Sep 2006 07:35:19 +0000 Subject: [PATCH] =?UTF-8?q?Cr=C3=A9ation=20d'une=20breve=20ou=20d'un=20art?= =?UTF-8?q?icle=20dans=20le=20contexte=20de=20la=20racine:=20prendre=20la?= =?UTF-8?q?=20rubrique=20la=20plus=20r=C3=A9cemment=20cr=C3=A9=C3=A9e,=20d?= =?UTF-8?q?ans=20la=20liste=20des=20rubriques=20administr=C3=A9es=20sur=20?= =?UTF-8?q?admin=20restreint.=20Le=20bug=20n'existait=20pas=20pour=20les?= =?UTF-8?q?=20sites=20curieusement,=20mais=20on=20lui=20applique=20aussi?= =?UTF-8?q?=20cette=20strat=C3=A9gie.=20R=C3=A9soud=20#592?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecrire/exec/breves_edit.php | 12 ++++++++++++ ecrire/exec/sites_edit.php | 6 ++++-- ecrire/inc/article_select.php | 14 +++++++++++++- 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/ecrire/exec/breves_edit.php b/ecrire/exec/breves_edit.php index 71eeffc755..a085ccd102 100644 --- a/ecrire/exec/breves_edit.php +++ b/ecrire/exec/breves_edit.php @@ -23,6 +23,7 @@ function exec_breves_edit_dist() global $champs_extra, $connect_statut, + $connect_id_rubrique, $id_breve, $id_rubrique, $lien_titre, @@ -130,6 +131,17 @@ if ($connect_statut=="0minirezo" OR $statut=="prop" OR $new == "oui") { debut_cadre_couleur("$logo_parent", false, "",_T('entree_interieur_rubrique').aide ("brevesrub")); + // appel du script a la racine, faut choisir + // on prend le dernier secteur cree + // dans une liste restreinte si admin restreint + + if (!$id_rubrique) { + $in = !$connect_id_rubrique ? '' + : (' AND id_rubrique IN (' . join(',', $connect_id_rubrique) . ')'); + $row_rub = spip_fetch_array(spip_query("SELECT id_rubrique FROM spip_rubriques WHERE id_parent=0$in ORDER BY id_rubrique DESC LIMIT 1")); + $id_rubrique = $row_rub['id_rubrique']; + } + // selecteur de rubrique (en general pas d'ajax car toujours racine) $selecteur_rubrique = charger_fonction('chercher_rubrique', 'inc'); echo $selecteur_rubrique($id_rubrique, 'breve', ($statut == 'publie')); diff --git a/ecrire/exec/sites_edit.php b/ecrire/exec/sites_edit.php index 1086008cd8..efc58bc51b 100644 --- a/ecrire/exec/sites_edit.php +++ b/ecrire/exec/sites_edit.php @@ -16,7 +16,7 @@ include_spip('inc/presentation'); // http://doc.spip.org/@exec_sites_edit_dist function exec_sites_edit_dist() { - global $champs_extra, $connect_statut, $descriptif, $id_rubrique, $id_secteur, $id_syndic, $new, $nom_site, $syndication, $url_site, $url_syndic; + global $champs_extra, $connect_statut, $descriptif, $id_rubrique, $id_secteur, $id_syndic, $new, $nom_site, $syndication, $url_site, $url_syndic, $connect_id_rubrique; $result = spip_query("SELECT * FROM spip_syndic WHERE id_syndic=" . intval($id_syndic)); @@ -34,7 +34,9 @@ else { $syndication = 'non'; $new = 'oui'; if (!intval($id_rubrique)) { - $row = spip_fetch_array(spip_query("SELECT id_rubrique FROM spip_rubriques WHERE id_parent='0' ORDER BY titre LIMIT 1")); + $in = !$connect_id_rubrique ? '' + : (' WHERE id_rubrique IN (' . join(',', $connect_id_rubrique) . ')'); + $row = spip_fetch_array(spip_query("SELECT id_rubrique FROM spip_rubriques$in ORDER BY id_rubrique DESC LIMIT 1")); $id_rubrique = $row['id_rubrique']; } } diff --git a/ecrire/inc/article_select.php b/ecrire/inc/article_select.php index 35b6fbdf83..f321541c56 100644 --- a/ecrire/inc/article_select.php +++ b/ecrire/inc/article_select.php @@ -20,7 +20,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return; // new=oui = article a creer si on valide le formulaire // http://doc.spip.org/@article_select function article_select($id_article, $id_rubrique, $lier_trad, $new) { - global $connect_id_auteur, $spip_lang; + global $connect_id_auteur, $connect_id_rubrique, $spip_lang; $id_article = intval($id_article); $id_rubrique = intval($id_rubrique); $lier_trad = intval($lier_trad); @@ -61,6 +61,18 @@ else if ($new=='oui') { if ($lier_trad) $row = article_select_trad($lier_trad); + // appel du script a la racine, faut choisir + // admin restreint ==> sa premiere rubrique + // autre ==> la derniere rubrique cree + if (!$row['id_rubrique']) { + if ($connect_id_rubrique) + $row['id_rubrique'] = $id_rubrique = $connect_id_rubrique[0]; + else { + $row_rub = spip_fetch_array(spip_query("SELECT id_rubrique FROM spip_rubriques ORDER BY id_rubrique DESC LIMIT 1")); + $row['id_rubrique'] = $id_rubrique = $row_rub['id_rubrique']; + } + } + // recuperer le secteur, pour affecter les bons champs extras if (!$row['id_secteur']) { $row_rub = spip_fetch_array(spip_query("SELECT id_secteur FROM spip_rubriques WHERE id_rubrique=$id_rubrique")); -- GitLab