Skip to content
Extraits de code Groupes Projets
Valider 3d8349f7 rédigé par Fil's avatar Fil
Parcourir les fichiers

pas mal de bugs sur la creation d'un auteur :

- le bouton 'enregistrer' n'apparaissait pas
- des erreurs d'autorisation lorsqu'on demandait de 'creer un auteur nomme' avec un nom contenant un caractere special (par exemple espace)

tout ca a cause des auteurs restreints
parent 15119eef
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -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;
}
}
......
......@@ -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)
......
......@@ -43,7 +43,7 @@ function inc_instituer_auteur_dist($id_auteur, $statut, $url_self)
$lien = !$modif
? ''
: array("&nbsp;&nbsp;&nbsp;&nbsp;[<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))
"&nbsp;&nbsp;&nbsp;&nbsp;[<span class='spip_x-small'>"
. ajax_action_auteur('instituer_auteur', "$id_auteur/-$id_rubrique", $url_self, $modif, $lien)
. "</span>]")
. '</li>';
}
......
......@@ -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>&nbsp;</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>";
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter