- ^ Fondamentaux
- Principes de fonctionnement
- Développement d'un module
- Les réponses: générer du contenu
- Définir une réponse générale personnalisée
- Faire une redirection
- Services web
- Effectuer des traitements en ligne de commande
- Définir des traitements communs à plusieurs actions
- Créer une interface d'administration
Chapitre: Faire une redirection
« Définir une réponse générale personnalisée | ^ Fondamentaux | Services web » |
− Table des matières
Il existe deux types d'objets de redirection possible :
jResponseRedirect
: redirige vers une action de l'application avec la possibilité de passer des paramètresjResponseRedirectUrl
: redirige vers une URL quelconque, en particulier une URL externe à votre application jelix
jResponseRedirect ¶
Pour spécifier une redirection vers une action, vous indiquez le type 'redirect'. Vous récupérez la réponse comme ceci :
$rep = $this->getResponse('redirect');
Vous avez alors dans $rep une instance de la classe jResponseRedirect
.
Vous avez ensuite trois propriétés sur cet objet :
action
pour indiquer l'action vers laquelle redirigerparams
pour indiquer les paramètre d'une action (tableau associatif)anchor
pour indiquer la partie "ref" de l'url (#anchor)
Exemple :
$rep->action = "monmodule~moncontroleur:mamethode";
$rep->params = array('foo' => 'bar');
$rep->anchor = 'yo';
Définir ces propriétés est facultatif. Ainsi, si on n'indique pas l'action, ce sera l'action actuelle.
Et ensuite il n'y a plus qu'à renvoyer la réponse.
return $rep;
jResponseRedirectUrl ¶
Pour spécifier une redirection vers une URL quelconque, vous indiquez le type 'redirectUrl'. Vous récupérez la réponse comme ceci :
$rep = $this->getResponse('redirectUrl');
Vous avez alors dans $rep une instance de la classe jResponseRedirectUrl
. Cet objet possède une unique propriété, $url
qui doit contenir une chaine, l'url de la page vers laquelle rediriger (en général, il s'agira d'une url externe à l'application jelix, jResponseRedirect étant plus approprié pour les urls vers l'application jelix).
$rep->url = "http://jelix.org";
return $rep;
Redirection temporaire ou permanente ¶
Par défaut, les redirections sont déclarées temporaires (code http 303). Si vous voulez indiquer au navigateur une redirection permanente, mettez la propriété temporary
à false
.
$rep->temporary = false;