diff --git a/ecrire/exec/breves_edit.php b/ecrire/exec/breves_edit.php index 71eeffc755f96ff208058564489b5962ff5a00d1..a085ccd102b03a80dae6b75e0e4bcddac3e9b34c 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 1086008cd8409974ccac0f4431dbcfade6158bc9..efc58bc51bb7c70dcda213004908ac0fa8a4a5f7 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 35b6fbdf833d468e5d5b37e2072409a7a66221c6..f321541c569fc7516048330a740444a8c4623911 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"));