diff --git a/ecrire/balise/formulaire_admin.php b/ecrire/balise/formulaire_admin.php index 22caea822445ee307e41cb016089b263f0ed8705..f8f35c8e50df50392971cf063f283339643bdd41 100644 --- a/ecrire/balise/formulaire_admin.php +++ b/ecrire/balise/formulaire_admin.php @@ -156,7 +156,7 @@ function balise_FORMULAIRE_ADMIN_dyn($float='', $debug='') { // Preparer le #ENV des boutons $env = array( 'ecrire' => $ecrire, - 'action' => self(), + 'action' => self('&'), 'divclass' => $float, 'lang' => $lang, 'calcul' => (_request('var_mode') ? 'recalcul' : 'calcul'), diff --git a/ecrire/balise/formulaire_inscription.php b/ecrire/balise/formulaire_inscription.php index 782b089c27f4e24871a7c5f5423ad55fd5bcedfd..906188070b51054dfd170015c5452411e2121b53 100644 --- a/ecrire/balise/formulaire_inscription.php +++ b/ecrire/balise/formulaire_inscription.php @@ -78,7 +78,9 @@ function balise_FORMULAIRE_INSCRIPTION_dyn($mode, $focus, $id=0) { 'commentaire' => $commentaire, 'nom_inscription' => _request('nom_inscription'), 'mail_inscription' => _request('mail_inscription'), - 'self' => str_replace('&','&',(self())))); + 'self' => self('&') + ) + ); } // http://doc.spip.org/@test_mode_inscription diff --git a/ecrire/balise/formulaire_site.php b/ecrire/balise/formulaire_site.php index 0d88f15089746a22b935e19f53a3decec9964196..a697bda0c47c7aabe55bb3ace2f4ebf29c6d3269 100644 --- a/ecrire/balise/formulaire_site.php +++ b/ecrire/balise/formulaire_site.php @@ -62,7 +62,7 @@ function balise_FORMULAIRE_SITE_dyn($id_rubrique) { return array('formulaires/site', $GLOBALS['delais'], array( - 'self' => str_replace('&', '&', self()), + 'self' => self('&'), 'message_ok' => $message_ok, 'message_erreur' => $message_erreur, 'nom_site' => $nom, diff --git a/ecrire/balise/login_public.php b/ecrire/balise/login_public.php index 1d14c52b00f4ea37b42cea09d5a5bdb661e8373b..9cca3625e18bb7d988f02821b485aff859088194 100644 --- a/ecrire/balise/login_public.php +++ b/ecrire/balise/login_public.php @@ -172,7 +172,7 @@ function login_pour_tous($login, $cible, $action) { 'echec_visiteur' => $echec_visiteur, 'login' => $login, 'login_alt' => (isset($login_alt) ? $login_alt : $login), - 'self' => str_replace('&', '&', self()), + 'self' => self('&'), 'rester_connecte' => $rester_connecte ) ) diff --git a/ecrire/balise/menu_lang_ecrire.php b/ecrire/balise/menu_lang_ecrire.php index 5f630de55c18a0f37c3326c9b34eb76fdd725503..a880a50a6868bad33c37a447be89d7584f7c07b1 100644 --- a/ecrire/balise/menu_lang_ecrire.php +++ b/ecrire/balise/menu_lang_ecrire.php @@ -52,7 +52,8 @@ function menu_lang_pour_tous($nom, $default) { if (!$opt) return ''; - $cible = str_replace('&', '&', parametre_url(self( /* racine */ true), 'lang' , '')); # lien a partir de / + # lien a partir de / + $cible = parametre_url(self('&', /* racine */ true), 'lang' , '', '&'); $post = generer_url_action('converser', 'redirect='. rawurlencode($cible), '&'); return array('formulaires/menu_lang', diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php index e3d652c4363adcd4cb549f9bd5b947b83a612e08..c5f3a4ff38fd1933e000befc99f90b6eca1db762 100644 --- a/ecrire/inc/filtres.php +++ b/ecrire/inc/filtres.php @@ -1027,7 +1027,7 @@ function agenda_affiche($i) $sinon = array_shift($args); $type = array_shift($args); if (!$nb){ - return http_calendrier_init('', ($type != 'periode') ? $type : 'mois', '', '', str_replace('&', '&', self()), $sinon); + return http_calendrier_init('', ($type != 'periode') ? $type : 'mois', '', '', self('&'), $sinon); } $agenda = agenda_memo(0); $evt = array(); @@ -1058,7 +1058,7 @@ function agenda_affiche($i) $evt = array('', $evt, $min, $max); $type = 'mois'; } - return http_calendrier_init($start, $type, '', '', str_replace('&', '&', self()), $evt); + return http_calendrier_init($start, $type, '', '', self('&'), $evt); } // diff --git a/ecrire/inc/forum.php b/ecrire/inc/forum.php index 06411a4bf1a5f3e956fa0cce92ca26805f25de96..78ba0699ed65a414833cc3502512e153aa442960 100644 --- a/ecrire/inc/forum.php +++ b/ecrire/inc/forum.php @@ -120,7 +120,7 @@ function boutons_controle_forum($id_forum, $forum_stat, $forum_id_auteur=0, $ref return; } - $lien = str_replace('&', '&', self()) . "#id$id_forum"; + $lien = self('&') . "#id$id_forum"; $boutons =''; if ($suppression) $boutons .= icone_inline(_T('icone_supprimer_message'), generer_action_auteur('instituer_forum',"$id_forum-$suppression", _DIR_RESTREINT_ABS . $lien), diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index 3d1ad11b13ec590a59fe56b079fee910426329d0..f3af945afb822f27a3b14c11658b05aa22f30cb0 100644 --- a/ecrire/inc/utils.php +++ b/ecrire/inc/utils.php @@ -443,7 +443,7 @@ function nettoyer_uri() { // les trucs inutiles // // http://doc.spip.org/@self -function self($root = false) { +function self($amp = '&', $root = false) { $url = nettoyer_uri(); if (!$root) $url = preg_replace(',^[^?]*/,', '', $url); @@ -465,6 +465,10 @@ function self($root = false) { // eviter les hacks $url = htmlspecialchars($url); + // & ? + if ($amp != '&') + $url = str_replace('&', $amp, $url); + // Si c'est vide, donner './' $url = preg_replace(',^$,', './', $url); diff --git a/ecrire/public.php b/ecrire/public.php index e17ef8f403bbacae7f81e7de778626990fd0bf52..bd2a66ab396c2636fd8ae6830bfda98f34412356 100644 --- a/ecrire/public.php +++ b/ecrire/public.php @@ -123,8 +123,7 @@ if (defined('_INC_PUBLIC')) { if ($var_preview AND $html) { include_spip('inc/minipres'); // pour http_img_pack - $x = _T('previsualisation'); - $page['texte'] .= '<div class="spip_large" style=" + $x = '<div class="spip_large" style=" display: block; color: #eeeeee; background-color: #111111; @@ -135,8 +134,11 @@ if (defined('_INC_PUBLIC')) { left: 0px; position: absolute; ">' - . http_img_pack('naviguer-site.png', $x, '') - . ' ' . majuscules($x) . '</div>'; + . http_img_pack('naviguer-site.png', _T('previsualisation'), '') + . ' ' . majuscules(_T('previsualisation')) . '</div>'; + if (!$pos = strpos($page['texte'], '</body>')) + $pos = strlen($page['texte']); + $page['texte'] = substr_replace($page['texte'], $x, $pos, 0); } // est-on admin ? diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php index 3089b1a84dc302130bcba7f526b3cbf92afa2f0b..11e08e6e9ddfbe1f4a966f9e05cb993f72e8209f 100644 --- a/ecrire/public/balises.php +++ b/ecrire/public/balises.php @@ -908,7 +908,7 @@ function balise_PARAMETRES_FORUM_dist($p) { // http://www.spip.net/@self // http://doc.spip.org/@balise_SELF_dist function balise_SELF_dist($p) { - $p->code = 'quote_amp(self())'; + $p->code = 'self()'; $p->interdire_scripts = false; return $p; }