diff --git a/ecrire/action/legender_auteur.php b/ecrire/action/legender_auteur.php index a5e377060fcb36f2b5373558bf519549f0e608e9..4910445efa84b9b50f8aaf85fbfe97780377ce99 100644 --- a/ecrire/action/legender_auteur.php +++ b/ecrire/action/legender_auteur.php @@ -22,9 +22,7 @@ function action_legender_auteur_dist() $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); - $echec = array(); - - if (!preg_match(",^(\d+)\D(\d*)(\D(\w*)\D(.*))?$,", $arg, $r)) { + if (!preg_match(",^(\d+)\D(\d*)(\D(\w*))?$,", $arg, $r)) { $r = "action_legender_auteur_dist $arg pas compris"; spip_log($r); } else redirige_par_entete(action_legender_auteur_post($r)); @@ -48,7 +46,10 @@ function action_legender_auteur_post($r) $statut = _request('statut'); $url_site = _request('url_site'); - list($tout, $id_auteur, $ajouter_id_article,$x,$s, $n) = $r; + $echec = array(); + + + list($tout, $id_auteur, $ajouter_id_article,$x,$s) = $r; // // si id_auteur est hors table, c'est une creation sinon une modif // @@ -59,17 +60,16 @@ function action_legender_auteur_post($r) if (!$auteur) { $id_auteur = 0; $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"); } - } else $nom = _request('nom'); // risque de conflits en globale. + } $acces = ($id_auteur == $auteur_session['id_auteur']) ? true : " a voir "; - $auteur['nom'] = corriger_caracteres($nom); + $auteur['nom'] = corriger_caracteres(_request('nom')); // login et mot de passe $modif_login = false; @@ -183,21 +183,19 @@ function action_legender_auteur_post($r) spip_query("UPDATE spip_auteurs SET $query_pass nom=" . _q($auteur['nom']) . ", login=" . _q($auteur['login']) . ", bio=" . _q($auteur['bio']) . ", email=" . _q($auteur['email']) . ", nom_site=" . _q($auteur['nom_site']) . ", url_site=" . _q($auteur['url_site']) . ", pgp=" . _q($auteur['pgp']) . (!$extra ? '' : (", extra = " . _q($extra) . "")) . " WHERE id_auteur=".$auteur['id_auteur']); } -// Si on modifie la fiche auteur, reindexer - if ($nom OR $statut) { - if ($GLOBALS['meta']['activer_moteur'] == 'oui') { - include_spip("inc/indexation"); - marquer_indexer('spip_auteurs', $id_auteur); - } - // ..et mettre a jour les fichiers .htpasswd et .htpasswd-admin - ecrire_acces(); + // Si on modifie la fiche auteur, reindexer + if ($GLOBALS['meta']['activer_moteur'] == 'oui') { + include_spip("inc/indexation"); + marquer_indexer('spip_auteurs', $id_auteur); } + // ..et mettre a jour les fichiers .htpasswd et .htpasswd-admin + ecrire_acces(); - if ($echec) $echec = '&echec=' . join('@@@', $echec); + $echec = $echec ? '&echec=' . join('@@@', $echec) : ''; // il faudrait rajouter OR $echec mais il y a conflit avec Ajax - if (($init = ($tout[0]=='0'))) { + if ($echec OR ($init = ($tout[0]=='0'))) { // tout nouveau. envoyer le formulaire de saisie du reste // en transmettant le retour eventuel // decode / encode car encode pas necessairement deja fait. @@ -205,7 +203,9 @@ function action_legender_auteur_post($r) $ret = !$redirect ? '' : ('&redirect=' . rawurlencode(rawurldecode($redirect))); - return generer_url_ecrire("auteur_infos", "id_auteur=$id_auteur&initial=$init$echec$ret",true); + $script = (_request('var_ajaxcharset') ? 'legender_auteur' : 'auteur_infos'); + + return generer_url_ecrire($script, "id_auteur=$id_auteur&initial=$init$echec$ret",true); } else { // modif: renvoyer le resultat ou a nouveau le formulaire si erreur if (!$redirect) { @@ -214,11 +214,7 @@ function action_legender_auteur_post($r) } else list($redirect,$anc) = split('#',rawurldecode($redirect)); - if (!$echec) - $redirect .= '&initial=-1' . $anc; - else { - $redirect .= $echec . '&initial=0' . $anc; - } + $redirect .= $echec . $anc . ($echec ? '' : '&initial=-1'); return $redirect; } } diff --git a/ecrire/inc/editer_auteurs.php b/ecrire/inc/editer_auteurs.php index a1f002ace5b918e8de476d6df415fa55ec808db4..32fbdb8931dbe67757c5fa4d0f1cd87e7b01299f 100644 --- a/ecrire/inc/editer_auteurs.php +++ b/ecrire/inc/editer_auteurs.php @@ -55,7 +55,7 @@ function editer_auteurs_objet($type, $id, $flag, $cherche_auteur, $ids, $les_aut $bouton_creer_auteur = $GLOBALS['connect_toutes_rubriques']; $clic = _T('icone_creer_auteur'); - $arg = "0/$id/" . ($statut ? $statut : '1comite') . '/'; + $arg = "0/$id/" . ($statut ? $statut : '1comite'); // // complement de action/editer_auteurs.php pour notifier la recherche d'auteur // @@ -67,7 +67,8 @@ function editer_auteurs_objet($type, $id, $flag, $cherche_auteur, $ids, $les_aut if ($type=='article' && $bouton_creer_auteur) { // pas generique pour le moment - $legende = redirige_action_auteur("legender_auteur", $arg . rawurlencode($cherche_auteur), "articles","id_article=$id"); + $legende = redirige_action_auteur("legender_auteur", $arg, "articles","id_article=$id"); + $legende = parametre_url($legende, 'nom', $cherche_auteur); $reponse .="<div style='width: 200px;'>" . icone_horizontale($clic, $legende, "redacteurs-24.gif", "creer.gif", false) diff --git a/ecrire/inc/instituer_auteur.php b/ecrire/inc/instituer_auteur.php index 7dd69b961078a5b56cdbfe0c17e4094561b553b9..9880600715281cbf9c83800dfdc25fd398973f07 100644 --- a/ecrire/inc/instituer_auteur.php +++ b/ecrire/inc/instituer_auteur.php @@ -43,7 +43,7 @@ function inc_instituer_auteur_dist($id_auteur, $statut, $url_self) $lien = !$modif ? '' - : array(" [<span class='spip_x-small'>" . _T('lien_supprimer_rubrique') . "</span>]"); + : array(_T('lien_supprimer_rubrique')); $res = ''; @@ -56,7 +56,9 @@ function inc_instituer_auteur_dist($id_auteur, $statut, $url_self) . typo($row_admin["multi"]) . "</a>" . (!$modif ? '' : - ajax_action_auteur('instituer_auteur', "$id_auteur/-$id_rubrique", $url_self, $modif, $lien)) + " [<span class='spip_x-small'>" + . ajax_action_auteur('instituer_auteur', "$id_auteur/-$id_rubrique", $url_self, $modif, $lien) + . "</span>]") . '</li>'; } diff --git a/ecrire/inc/legender_auteur.php b/ecrire/inc/legender_auteur.php index 7759fbb601397097e2bbed50df5c2743192d51ea..bff7a9f49f85a744c43c1a647ffb44b534f8b008 100644 --- a/ecrire/inc/legender_auteur.php +++ b/ecrire/inc/legender_auteur.php @@ -14,11 +14,12 @@ if (!defined("_ECRIRE_INC_VERSION")) return; // http://doc.spip.org/@inc_legender_auteur_dist -function inc_legender_auteur_dist($id_auteur, $auteur, $mode, $echec='', $redirect='') +function inc_legender_auteur_dist($id_auteur, $auteur, $initial, $echec='', $redirect='') { - $corps = (($mode < 0) OR !statut_modifiable_auteur($id_auteur, $auteur)) + + $corps = (($initial < 0) OR !statut_modifiable_auteur($id_auteur, $auteur)) ? legender_auteur_voir($auteur, $redirect) - : legender_auteur_saisir($id_auteur, $auteur, $mode, $echec, $redirect); + : legender_auteur_saisir($id_auteur, $auteur, $initial, $echec, $redirect); return $redirect ? $corps : ajax_action_greffe("legender_auteur-$id_auteur", $corps); @@ -26,7 +27,7 @@ function inc_legender_auteur_dist($id_auteur, $auteur, $mode, $echec='', $redire } // http://doc.spip.org/@legender_auteur_saisir -function legender_auteur_saisir($id_auteur, $auteur, $mode, $echec='', $redirect='') +function legender_auteur_saisir($id_auteur, $auteur, $initial, $echec='', $redirect='') { global $options, $connect_statut, $connect_id_auteur, $connect_toutes_rubriques; $corps = ''; @@ -55,9 +56,9 @@ function legender_auteur_saisir($id_auteur, $auteur, $mode, $echec='', $redirect . _T('entree_nom_pseudo') . ")<br />\n" . "<input type='text' name='nom' class='formo' size='40' value=\"" - . entites_html($auteur['nom']) + . entites_html(sinon($auteur['nom'], _T('ecrire:item_nouvel_auteur'))) . "\" " - . (!$mode ? '' : ' onfocus="if(!antifocus){this.value=\'\';antifocus=true;}"') + . (strlen($auteur['nom']) ? '' : ' onfocus="if(!antifocus){this.value=\'\';antifocus=true;}"') . " />\n<br />" . "<b>"._T('entree_adresse_email')."</b>"; @@ -177,9 +178,11 @@ function legender_auteur_saisir($id_auteur, $auteur, $mode, $echec='', $redirect return '<div> </div>' . "\n<div class='serif'>" . debut_cadre_relief("fiche-perso-24.gif", true, "", _T("icone_informations_personnelles")) - . ($redirect - ? generer_action_auteur('legender_auteur', $arg, $redirect, $corps) - : ajax_action_post('legender_auteur', $arg, 'auteur_infos', "id_auteur=$id_auteur&initial=-1&retour=$redirect", $corps, _T('bouton_enregistrer'), $att)) + . ( + $redirect + ? generer_action_auteur('legender_auteur', $arg, $redirect, + $corps . "<div align='right'><input type='submit' value='"._T('bouton_enregistrer')."' class='fondo' /></div>") + : ajax_action_post('legender_auteur', $arg, 'auteur_infos', "id_auteur=$id_auteur&initial=-1", $corps, _T('bouton_enregistrer'), $att)) . fin_cadre_relief(true) . '</div>'; } @@ -255,7 +258,7 @@ function legender_auteur_voir($auteur, $redirect) if (statut_modifiable_auteur($id_auteur, $auteur)) { $ancre = "legender_auteur-$id_auteur"; $clic = _T("admin_modifier_auteur"); - $h = generer_url_ecrire("auteur_infos","id_auteur=$id_auteur&initial=0"); + $h = generer_url_ecrire("auteur_infos","id_auteur=$id_auteur"); if ((_SPIP_AJAX === 1 ) AND !$redirect) { $evt = "\nonclick=" . ajax_action_declencheur($h,$ancre); $h = "<a\nhref='$h#$ancre'$evt>$clic</a>";