diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index 0bec2213739da6cdda271adcadc21e7ee524ad4d..96d12e2c4a3c98b5cc349d5843b7eabc33876555 100644 --- a/ecrire/inc/utils.php +++ b/ecrire/inc/utils.php @@ -922,19 +922,26 @@ function generer_form_public($script, $corps, $atts='') { // http://doc.spip.org/@generer_url_action function generer_url_action($script, $args="", $no_entities=false ,$rel = false) { + // si script=redirect, on veut basculer vers le public ! + if ($script=='redirect') { + return generer_url_public('', + "action=$script" .($args ? "&$args" : ''), + $no_entities,$rel); + } + // sinon, on reste ou on est $url = './'; $url = parametre_url($url,'action',$script); if ($args) $url .= quote_amp('&'.$args); if ($redirect = parametre_url($url,'redirect')){ + // si jamais l'url d'action contient un redirect=ecrire/... + // supprimer ce ecrire/ si on y est deja puisqu'on ne le quitte pas if (test_espace_prive() AND substr($redirect,0,strlen(_DIR_RESTREINT_ABS))==_DIR_RESTREINT_ABS) $redirect = './'.substr($redirect,strlen(_DIR_RESTREINT_ABS)); $url = parametre_url($url,'redirect',$redirect); } + if ($no_entities) $url = str_replace('&','&',$url); - /*return generer_url_public('', - "action=$script" .($args ? "&$args" : ''), - $no_entities,$rel);*/ return $url; }