- 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