diff --git a/ecrire/action/legender_auteur.php b/ecrire/action/legender_auteur.php index a4efd98bf394d0f80ee88d2aa0505210ca7ec00a..11e5ee8c50a639d195741075be3c9bd682f7eef6 100644 --- a/ecrire/action/legender_auteur.php +++ b/ecrire/action/legender_auteur.php @@ -18,7 +18,7 @@ include_spip('inc/acces'); include_spip('base/abstract_sql'); // http://doc.spip.org/@action_legender_auteur -function action_legender_auteur() +function action_legender_auteur_dist() { $var_f = charger_fonction('controler_action_auteur', 'inc'); $var_f(); @@ -27,10 +27,10 @@ function action_legender_auteur() $echec = array(); - if (!preg_match(",^(\d+)\D(\d*)(\D?)(.*)$,", $arg, $r)) { + if (!preg_match(",^(\d+)\D(\d*)(\D(\w*)\D(.*))?$,", $arg, $r)) { $r = "action_legender_auteur_dist $arg pas compris"; spip_log($r); - } else action_legender_post($r); + } else redirige_par_entete(action_legender_post($r)); } // http://doc.spip.org/@action_legender_post @@ -52,7 +52,8 @@ function action_legender_post($r) $statut, $url_site; - list($tout, $id_auteur, $ajouter_id_article,$s, $n) = $r; + list($tout, $id_auteur, $ajouter_id_article,$x,$s, $n) = $r; + // // si id_auteur est hors table, c'est une creation sinon une modif // @@ -62,9 +63,14 @@ function action_legender_post($r) } if (!$auteur) { $id_auteur = 0; - $statut = '1comite'; // statut par defaut $source = 'spip'; $nom = $n ? $n : _T('ecrire:item_nouvel_auteur'); + $statut = '1comite'; // statut par defaut + if ($s) { + if (ereg("^(0minirezo|1comite|5poubelle|6forum)$",$s)) + $statut = $s; + else spip_log("action_legender_auteur_dist: statut $s incompris"); + } } $acces = ($id_auteur == $auteur_session['id_auteur']) ? true : " a voir "; @@ -172,7 +178,7 @@ function action_legender_post($r) // l'entrer dans la base if (!$echec) { if (!$auteur['id_auteur']) { // creation si pas d'id - $auteur['id_auteur'] = $id_auteur = spip_abstract_insert("spip_auteurs", "(nom,statut)", "('temp','1comite')"); + $auteur['id_auteur'] = $id_auteur = spip_abstract_insert("spip_auteurs", "(nom,statut)", "('temp','" . $statut . "')"); if ($ajouter_id_article) spip_abstract_insert("spip_auteurs_articles", "(id_auteur, id_article)", "($id_auteur, $ajouter_id_article)"); } @@ -203,12 +209,12 @@ function action_legender_post($r) $ret = !$redirect ? '' : ('&redirect=' . rawurlencode(rawurldecode($redirect))); - $redirect = generer_url_ecrire("auteur_infos", "id_auteur=$id_auteur&initial=$init$echec$ret",true); + return generer_url_ecrire("auteur_infos", "id_auteur=$id_auteur&initial=$init$echec$ret",true); } else { // modif: renvoyer le resultat ou a nouveau le formulaire si erreur if (!$redirect) { $redirect = generer_url_ecrire("auteur_infos", "id_auteur=$id_auteur", true, true); - $ancre = ''; + $anc = ''; } else list($redirect,$anc) = split('#',rawurldecode($redirect)); @@ -217,9 +223,8 @@ function action_legender_post($r) else { $redirect .= $echec . '&initial=0' . $anc; } + return $redirect; } - - redirige_par_entete($redirect); } // http://doc.spip.org/@admin_general diff --git a/ecrire/inc/editer_auteurs.php b/ecrire/inc/editer_auteurs.php index a8dbb647530aa104289c12eb7438c3fe061b45c8..a095b4e5c97b92a17c1d3fd24cc9201f7953fd18 100644 --- a/ecrire/inc/editer_auteurs.php +++ b/ecrire/inc/editer_auteurs.php @@ -28,20 +28,20 @@ function inc_editer_auteurs_dist($id_article, $flag, $cherche_auteur, $ids) } else $futurs = ''; $les_auteurs = afficher_auteurs_articles($id_article, $flag, $les_auteurs); - return editer_auteurs_article($id_article, $flag, $cherche_auteur, $ids, $les_auteurs, $futurs); + return editer_auteurs_article($id_article, $flag, $cherche_auteur, $ids, $les_auteurs, $futurs, $GLOBALS['meta']['ldap_statut_import']); } // http://doc.spip.org/@editer_auteurs_article -function editer_auteurs_article($id_article, $flag, $cherche_auteur, $ids, $les_auteurs, $futurs) +function editer_auteurs_article($id_article, $flag, $cherche_auteur, $ids, $les_auteurs, $futurs, $statut) { global $spip_lang_left, $spip_lang_right, $options; + $bouton_creer_auteur = $GLOBALS['connect_toutes_rubriques']; + $clic = _T('icone_creer_auteur'); + $arg = "0/$id_article/" . ($statut ? $statut : '1comite') . '/'; // // complement de action/editer_auteurs.php pour notifier la recherche d'auteur // - $bouton_creer_auteur = $GLOBALS['connect_toutes_rubriques']; - $clic = _T('icone_creer_auteur'); - if ($cherche_auteur) { $reponse ="<p align='$spip_lang_left'>" @@ -50,7 +50,7 @@ function editer_auteurs_article($id_article, $flag, $cherche_auteur, $ids, $les_ if ($bouton_creer_auteur) { - $legender = redirige_action_auteur("legender_auteur","0/$id_article/" . rawurlencode($cherche_auteur), "articles","id_article=$id_article"); + $legender = redirige_action_auteur("legender_auteur", $arg . rawurlencode($cherche_auteur), "articles","id_article=$id_article"); $reponse .="<div style='width: 200px;'>" . icone_horizontale($clic, $legender, "redacteurs-24.gif", "creer.gif", false) @@ -74,7 +74,7 @@ function editer_auteurs_article($id_article, $flag, $cherche_auteur, $ids, $les_ if ($bouton_creer_auteur) { - $legender = redirige_action_auteur("legender_auteur","0/$id_article", "articles","id_article=$id_article"); + $legender = redirige_action_auteur("legender_auteur",$arg, "articles","id_article=$id_article"); $clic = "<span class='verdana1'><b>$clic</b></span>"; $res = "<div style='width:170px;'>"