forked from jelix/jelix-manuel-fr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathredirections.gtw
72 lines (51 loc) · 2.14 KB
/
redirections.gtw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
~~LANG:EN@enman:redirection~~
Il existe deux types d'objets de redirection possible :
* @@C@jResponseRedirect@@ : redirige vers une action de l'application avec la
possibilité de passer des paramètres
* @@C@jResponseRedirectUrl@@ : 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 :
<code php>
$rep = $this->getResponse('redirect');
</code>
Vous avez alors dans @@V@$rep@@ une instance de la classe @@C@jResponseRedirect@@.
Vous avez ensuite trois propriétés sur cet objet :
* @@P@action@@ pour indiquer l'action vers laquelle rediriger
* @@P@params@@ pour indiquer les paramètre d'une action (tableau associatif)
* @@P@anchor@@ pour indiquer la partie "ref" de l'url (#anchor)
Exemple :
<code php>
$rep->action = "monmodule~moncontroleur:mamethode";
$rep->params = array('foo' => 'bar');
$rep->anchor = 'yo';
</code>
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.
<code php>
return $rep;
</code>
===== jResponseRedirectUrl =====
Pour spécifier une redirection vers une URL quelconque, vous indiquez le type
'redirectUrl'. Vous récupérez la réponse comme ceci :
<code php>
$rep = $this->getResponse('redirectUrl');
</code>
Vous avez alors dans @@V@$rep@@ une instance de la classe
@@C@jResponseRedirectUrl@@. Cet objet possède une unique propriété, @@P@$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).
<code php>
$rep->url = "http://jelix.org";
return $rep;
</code>
===== 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é
@@P@temporary@@ à @@false@@.
<code php>
$rep->temporary = false;
</code>