/
selecteurs.gtw
77 lines (53 loc) · 2.79 KB
/
selecteurs.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
72
73
74
75
76
77
~~LANG:EN@enman:core/selectors~~
===== L'utilité des sélecteurs =====
Les sélecteurs sont très utilisés dans Jelix. Ils permettent d'indiquer une
ressource, un fichier, sans avoir à connaître son chemin. En effet,
l'arborescence d'une application Jelix n'est pas figée et peut être modifiée
selon les normes en vigueur sur le serveur (le répertoire var de l'application
myapp allant dans le répertoire /var/myapp/var par exemple, sur un serveur
unix).
De plus les bibliothèques de Jelix peuvent être installées dans une arborescence
différente de celle de l'application.
Aussi les sélecteurs permettent de ne pas avoir à modifier son application quand
elle est installée différemment. Et ils permettent aussi d'éviter à devoir taper
de long chemins de fichiers...
===== Comment est défini un sélecteur =====
Un sélecteur est une chaîne ayant ce format : "unModule~uneRessource" . On peut
omettre le module si on se trouve actuellement dans le module en question. Dans
ce cas on écrit "uneRessource".
Un sélecteur désigne une ressource d'un type précis. Voici donc les différents
types de sélecteurs :
^ Ressource ^ Préfixe ^ Classe ^
| une action | act | jSelectorAct |
| une classe | class | jSelectorClass |
| une locale | loc | jSelectorLoc |
| un dao | dao | jSelectorDao |
| un template | tpl | jSelectorTpl |
| une zone | zone | jSelectorZone |
| un plugin | plug | jSelectorPlugin |
| fichier dans var/ | var | jSelectorVar |
| fichier de configuration | cfg | jSelectorCfg |
| fichier dans temp/ | tmp | jSelectorTmp |
| fichier de log | log | jSelectorLog|
| fichier dans lib/ | lib | jSelectorLib |
En règle générale, vous aurez à donner un sélecteur en paramètre de certaines
méthodes sans avoir à indiquer son type. Très souvent en effet ces méthodes
savent qu'il s'agira d'un sélecteur sur une ressource d'un type précis.
jDao::create("myModule~myDao");
Ici jDao cherchera un fichier DAO de nom myDAO.dao.xml dans le module myModule.
===== Définir un sélecteur d'un type précis =====
Il peut arriver (mais c'est en fait très rare dans l'API de Jelix) que la
méthode attende n'importe quel type de sélecteur. Dans ce cas là il faut ajouter
un préfixe au sélecteur de manière à indiquer son type. Ce préfixe est indiqué
dans le tableau du dessus. La notation d'un sélecteur est alors :
"type:unModule~uneRessource"
On appelle cela un "sélecteur complet".
On utilisera alors l'objet jSelectorFactory pour récupérer l'objet sélecteur
correspondant (voir la colonne classe dans le tableau) et donc le chemin
physique de la ressource indiquée.
<code php>
$unSelecteur = "tpl:foo~bar";
...
$selector = jSelectorFactory::create($unSelecteur); // $selector sera un objet de type jSelectorTpl
$chemin_du_template = $selector->getPath();
</code>