Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [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

Reply #1 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

Reply #2 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

Reply #3 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

 
Page
  1. Re: [résolu] Specifier une URL de retour