- 1
[Opened] [résolu] Specifier une URL de retour
Posted by foxmask on 07/06/2009 07:20
Bonjour,
Je me trouve dans une page de sujets de forum.
Sur cette page je peux donner une note au sujet.
Problème : Quand je note je ne parviens pas à revenir à ma page listant mes sujets.
au lieu de cela je me retrouve sur l'action par défaut du contrôleur de mon module de note. (http://localhost/index.php?module=hfnurates&action=default:index), action qui en passant n'existe pas :P
exemple je suis ici http://localhost/post/1-mon-bo-poste et une fois la soumission de ma note je veux retourner à cette même url.
Dans ma zone "Rates" j'ai tenté d'affecter l'url courante dans un input hidden puis dans le controleur de rediriger dessus mais en vain :
ca donne ceci :
zone
$this->_tpl->assign('redirect',$GLOBALS['gJCoord']->request->urlPathInfo);
template de la zone
<input type="hidden" value="{$redirect}" name="redirect" />
controller
function Rateit() {
$rep = $this->getResponse('redirect');
$rep->url = (string) $this->param('redirect');
return $rep;
}
PS : j'ai regarde comment jCommunity gérait le "retour" à une URL après la connexion à une page requérant d'être identifié, mais pas trouvé mon bonheur.
PSS : ceci est une version sans Ajax.
J'ai implémenté la même version en ajax (avec JQuery Star RAting) qui tourne impeccable.
@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !
[Opened] Re: Specifier une URL de retour
Posted by foxmask on 07/06/2009 11:17
apres décortication de jComments je me suis inspire de l'implentation pour fauire ceci :
template 'utilisattrice' utilisant la zone
dans le template où j'ai besoin j'appelle ma zone, j'ajuote 2 parms "return_url" et "return_url_params".
{zone 'hfnurates~rates' , array('id_source'=>$post->id_post,
'source'=>'post',
'return_url'=>'havefnubb~posts:view',
'return_url_params'=>
array('id_post'=>$id_post,'parent_id'=>$parent_id,'id_forum'=>$id_forum,'ftitle'=>$forum_name,'ptitle'=>$ptitle)
)}
zone rates
récupération des parms :
$id_source = (int) $this->param('id_source');
$source = (string) $this->param('source');
$return_url = (string) $this->param('return_url');
$return_url_params = $this->param('return_url_params');
...
$this->_tpl->assign('id_source',$id_source);
$this->_tpl->assign('source',$source);
$this->_tpl->assign('return_url',$return_url);
$this->_tpl->assign('return_url_params',$return_url_params);
template de la zone rates
<form id="form{$id_source}" action="{formurl 'hfnurates~default:rate_it'}" method="post">
<div class="post-rates">
<input type="hidden" value="{$id_source}" id="id_source" name="id_source"/>
<input type="hidden" value="{$source}" id="source" name="source"/>
<input type="hidden" value="{$return_url}" name="return_url" />
{foreach $return_url_params as $key => $value}
<input type="hidden" value="{$value}" name="return_url_params[{$key}]" />
{/foreach}
...
</form>
controller rates
dans le contrôleur un classique :
$rep = $this->getResponse('redirect');
$rep->action= (string) $this->param('return_url');
$rep->params= (array) $this->param('return_url_params');
return $rep;
fait l'affaire pour me renvoyer sur la page d'où j'etais avec de soumettre ma "note" ;)
@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !
[Opened] Re: [résolu] Specifier une URL de retour
Posted by foxmask on 07/06/2009 11:20
nota :
avec jForms, un {formfull ..... 'return_url_params'=>$return_url_params} affiche un (seul) champ cache et vide !
@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !
[Opened] Re: [résolu] Specifier une URL de retour
Posted by Julien on 07/06/2009 18:04
Hello,
je viens après la guerre comme ton problème semble réglé, mais il y avait aussi la possibilité d'utiliser le plugin history, qui a l'avantage de permettre de revenir à la page précédente, quelle qu'elle soit (si par exemple ton action de rating peut être appelée à différents endroits).
Julien
- 1

