bonjour
soit le lien suivant d'exemple suivant:
http://thierry.schmit.free.fr/spip/spip.php?page=article&id_article=3
qui théoriquement affiche une invite de connexion en haut à droite.
log: test
pass: justeuntest
Si vous vous connectez, aucun problème.
A la place de l'invite de connexion vous obtenez une invite de déconnexion construite à partir de la balise #URL_LOGOUT.
Si vous vous déconnectez.... erreur 404.
Regardez bien l'url dans votre navigateur, elle devrait être:
http://thierry.schmit.free.fr/spip/spip.php?page=article&id_article=3
---------------------------------------------------------^
si on supprime à la main le amp; tout redevient normal.
Est ce un bug, ou un mésusage de cette balise ?
merci d'avance
thierry
tu dois mettre l'url que tu souhaites en te deconnectant
ex : <a href='#URL_LOGOUT{#URL_PAGE{sommaire}} '>Se déconnecter</a>
tu peux aussi faire un truc avec #ENV pour rester sur la page en cours.
thierry a écrit :
bonjour
soit le lien suivant d'exemple suivant:
Les balises dynamiques - spip de madbuilder
qui théoriquement affiche une invite de connexion en haut à droite.
log: test
pass: justeuntest
Si vous vous connectez, aucun problème.
A la place de l'invite de connexion vous obtenez une invite de déconnexion construite à partir de la balise #URL_LOGOUT.
Si vous vous déconnectez.... erreur 404.
Regardez bien l'url dans votre navigateur, elle devrait être:
http://thierry.schmit.free.fr/spip/spip.php?page=article&id_article=3
---------------------------------------------------------^
si on supprime à la main le amp; tout redevient normal.
Est ce un bug, ou un mésusage de cette balise ?
je ne sais pas mais il y a un encodage de trop.
ton url de logout est
http://thierry.schmit.free.fr/spip/spip.php?action=logout&logout=public&url=spip.php%3Fpage%3Darticle%26amp%3Bid_article%3D3
mais devrait etre :
http://thierry.schmit.free.fr/spip/spip.php?action=logout&logout=public&url=spip.php%3Fpage%3Darticle%26id_article%3D3
comment tu generes le logout ?
#URL_LOGOUT{#SELF} ?
Peut etre essayer avec la derniere version de spip aussi (http://files.spip.org/spip/SPIP-v1-9-2.zip), la c'est une 1.9.2a, ca a peut etre été corrigé depuis
thierry a écrit :
donc je redis :
peux-tu essayer en mettant à jour en 1.9.2b (version SVN) ?
@++
je suis en 1.9.2.b en config de dev et c'est pire.
et ca, ca vaut au moins 2 "ca marche pô"...

mon code est:
<div style="font-size:70%; margin-bottom:10px">
<?php if (($auteur_session)) { echo $auteur_session['nom'].'<br />';?>
<a href="#URL_LOGOUT">se déconnecter</a>
<?php } else {?>
#LOGIN_PUBLIC
<?php } ?>
</div>
inclus avec un
<INCLURE{fond=plugin_se_connecter.html}>
je confirme, c'est un bug et toujours present en 1.9.2b
Est-ce que ca aurait été corrigé sur la branche de dev ?
à priori je ne pense pas, sauf si c'est dans generer_url_action que ca a bougé
j'ai le probleme avec #URL_LOGOUT et #URL_LOGOUT{#SELF} dès qu'il y a un & dans l'url (spip.php?page=rubrique&id_rubrique=1)
Voila une rustine qui a l'air de marcher, mais il y a surement mieux (un des filtres de spip mais lequel ?)
dans ecrire/balise/url_logout.php :
30c30
< return generer_url_action('logout',"logout=public&url=" . rawurlencode($cible ? $cible : self()));
re bonjour,
En attendant mieux, ca a le merite de marcher...
@++
merci pour la rustine.
je vais me permettre de rajouter une couche:
Le problème n'est toujours pas résolu, même en 1.9.3.
j'observe de plus un comportement bizarre.
soit le code plugin_se_connecter.html suivant
<div style="font-size:70%; margin-bottom:10px">
<?php if (($auteur_session)) { echo $auteur_session['nom'].'<br />';?>
<a href="#URL_LOGOUT">se déconnecter</a>
<?php } else {?>
#LOGIN_PUBLIC
<?php } ?>
<hr />
[(#ENV{id_article}|?{
#URL_LOGOUT,
pas article
})]
</div>
inclus dans article.html par
<INCLURE{fond=plugin_se_connecter} {id_article}>
Alors, le code de la balise #URL_LOGOUT ne semble pas interprt. Comme
illustr par le lien suivant:
Est ce que j'en demande trop au compilateur ?
merci d'avance
thierry
PS: meme comportement avec le code
[(#ENV{id_article}|?{
[(#URL_LOGOUT)],
pas article
})]
spipcarto a écrit :
thierry a écrit :
donc je redis :
peux-tu essayer en mettant à jour en 1.9.2b (version SVN) ?
@++
je suis en 1.9.2.b en config de dev et c'est pire.
et ca, ca vaut au moins 2 "ca marche pô"...

mon code est:
<div style="font-size:70%; margin-bottom:10px">
<?php if (($auteur_session)) { echo $auteur_session['nom'].'<br />';?>
<a href="#URL_LOGOUT">se déconnecter</a>
<?php } else {?>
#LOGIN_PUBLIC
<?php } ?>
</div>
inclus avec un
<INCLURE{fond=plugin_se_connecter.html}>
je confirme, c'est un bug et toujours present en 1.9.2b
Est-ce que ca aurait été corrigé sur la branche de dev ?
à priori je ne pense pas, sauf si c'est dans generer_url_action que ca a bougé
j'ai le probleme avec #URL_LOGOUT et #URL_LOGOUT{#SELF} dès qu'il y a un & dans l'url (spip.php?page=rubrique&id_rubrique=1)
Voila une rustine qui a l'air de marcher, mais il y a surement mieux (un des filtres de spip mais lequel ?)
dans ecrire/balise/url_logout.php :
30c30
< return generer_url_action('logout',"logout=public&url=" . rawurlencode($cible ? $cible : self()));
---
> return generer_url_action('logout',"logout=public&url=" . rawurlencode(str_replace('&','&',($cible ? $cible : self()))));
En attendant mieux, ca a le merite de marcher...
Je crois que le patch à faire, en fait, c'est
return generer_url_action('logout',"logout=public&url=" .
rawurlencode($cible ? $cible : self('&')));
C'est la fonction self() qui a bougé (mais je ne sais pas quand)
et prend un ou deux paramètres optionnels. C'est
récurrent sur URL_LOGOUT 
pour faire la noisette Formulaire de connexion/Déconnexion, il y
a la balise #SESSION qui existe déjà :
http://spip-zone.info/spip.php?page=session
Mais c'est comme vous voulez 
thierry a écrit :
[(#ENV{id_article}|?{
#URL_LOGOUT,
pas article
})]
Les balises dynamiques - spip de madbuilder
Est ce que j'en demande trop au compilateur ?
oui... pas de balises dynamiques en parametre de filtres.
mais
[(#ENV{id_article}|?{' ',''})#URL_LOGOUT]
[(#ENV{id_article}|?{'',' '})pas article]
ca marche
James a écrit :
return generer_url_action('logout',"logout=public&url=" .
rawurlencode($cible ? $cible : self('&')));
ben si je passe une url avec & en cible, le probleme sera le meme, non ?
et le logout=public, il sert à quoi au fait ?
@++
Je crois que le patch faire, en fait, c'est
return generer_url_action('logout',"logout=public&url=" .
rawurlencode($cible ? $cible : self('&')));
je confirme 
c'est commitable ?
pour faire la noisette Formulaire de connexion/Dconnexion, il y
a la balise #SESSION qui existe dj :
effectivement, merci
je profite de l'occasion pour poser une autre question:
pq
[(#URL_LOGOUT|replace{amp;})]
ne vire pas le amp; ??
encore merci
thierry
je profite de l'occasion pour poser une autre question:
pq
[(#URL_LOGOUT|replace{amp;})]
ne vire pas le amp; ??
Il est sans doute rétabli après le passage du filtre...
spipcarto a écrit :
James a écrit :
return generer_url_action('logout',"logout=public&url=" .
rawurlencode($cible ? $cible : self('&')));
ben si je passe une url avec & en cible, le probleme sera le meme, non ?
Oui, mais il ne faut pas de & ici
cette url servira après la suppression du cookie dans une redirection, via header().
et le logout=public, il sert à quoi au fait ?
je suppose que c'est lié au répertoire ecrire/, qu'il n'est pas nécessaire de supprimer quand tu te déconnectes depuis l'espace public... c'est peut-être plus subtil
Bref, j'envoie la correction 