forked from jelix/jelix-manuel-fr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdetails-configuration.gtw
570 lines (437 loc) · 18.4 KB
/
details-configuration.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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
~~LANG:EN@enman:configuration-details~~
===== Le fichier project.xml =====
Le fichier @@[email protected]@@ contient des informations sur l'application, dont
certaines sont importantes puisqu'elles servent à l'installateur, entre autre.
C'est un fichier XML avec une balise racine @@E@<project>@@, qui contient 4
autres balises.
<code xml>
<project xmlns="http://jelix.org/ns/project/1.0">
<info id="[email protected]" name="testapp" createdate="2005-01-01">
...
</info>
<dependencies>
...
</dependencies>
<directories>
...
</directories>
<entrypoints>
...
</entrypoints>
</project>
</code>
==== info ====
Dans la balise @@E@info@@, il y a des informations purement indicatives sur
l'application, comme le nom, une description, le copyright, le créateur etc.
Notez que cet élément peut être aussi utilisé dans un fichier @@[email protected]@@
pour identifier un module. Voici un exemple:
<code xml>
<info id="[email protected]" name="testapp" createdate="2005-01-01">
<version>1.0</version>
<label lang="en-EN">Testapp</label>
<description lang="en-EN">Application to test Jelix</description>
<licence URL="http://www.gnu.org/licenses/gpl.html">GPL</licence>
<copyright>2005-2010 Laurent Jouanneau and other contributors</copyright>
<creator name="Laurent Jouanneau" email="[email protected]" active="true" />
<contributor name="Superman" email="[email protected]" active="true" since="" role=""/>
<homepageURL>http://jelix.org</homepageURL>
</info>
</code>
Seuls la balise @@E@<version>@@ et les attributs @@A@id@@ et @@A@name@@ sur
@@E@<info>@@ sont obligatoires. Les autres éléments sont optionnels.
L'attribut id doit être un identifiant unique. Il est donc recommandé d'avoir un
identifiant qui ressemble à un email (ou alors un UUID mais c'est moins
lisible).
L'attribut @@A@name@@ doit être un nom "informatique" (en général, le nom du
répertoire de l'application, ou celui du module). L'élément @@E@label@@ contient
un nom affichable.
==== dependencies ====
Cet élément @@E@<directories>@@ doit contenir des informations sur les
dépendances de l'application. Pour le moment, seules des informations sur la
version de jelix requises sont nécessaires.
<code xml>
<dependencies>
<jelix minversion="1.3.0" maxversion="1.3.*" />
</dependencies>
</code>
Cet élément peut être utilisé aussi dans un fichier @@[email protected]@@, et peut
contenir alors une ou plusieurs balises @@E@<module>@@, indiquant alors que ce
ou ces modules doivent être installés pour que le module puisse fonctionner
correctement.
<code xml>
<module name="testurls" minversion="2.2" maxversion="2.3" />
<module name="jauthdb" />
<module name="jacl2db" />
</code>
==== directories ====
Cet élément indique le chemin de certains répertoires, relatifs au répertoire de
l'application. Toutes les balises de l'exemple suivant sont obligatoires :
<code xml>
<directories>
<config>var/config</config>
<log>var/log</log>
<var>var</var>
<www>www</www>
<temp>../temp/testapp</temp>
</directories>
</code>
==== entrypoints ====
La balise @@E@entrypoints@@ liste tout les points d'entrée de l'application
(qu'ils soient dans @@F@www/@@ ou @@F@scripts/@@), leur fichier de configuration
et leur type.
<code xml>
<entrypoints>
<entry file="index.php" config="index/config.ini.php" />
<entry file="soap.php" config="soap/config.ini.php" type="soap"/>
<entry file="jsonrpc.php" config="jsonrpc/config.ini.php" type="jsonrpc"/>
<entry file="cmdline.php" config="cmdline/config.ini.php" type="cmdline"/>
</entrypoints>
</code>
===== Le fichier module.xml =====
Un fichier module.xml doit se trouver dans chacun des répertoires de module. Il
contient une balise racine @@E@module@@ qui doit contenir une balise
@@E@<info>@@ et @@E@<dependencies>@@. Voir plus haut pour savoir comment écrire
ces balises. voici un exemple:
<code xml>
<module xmlns="http://jelix.org/ns/module/1.0">
<info id="[email protected]" name="jelix_tests">
<version>1.0</version>
<label>Jelix tests</label>
<description>unit tests for jelix</description>
</info>
<dependencies>
<jelix minversion="1.2" maxversion="1.2.*" />
<module name="testurls" minversion="1.0.2" maxversion="1.1b1" />
<module name="jauthdb" />
<module name="jacl2db" />
<module name="jacldb" />
</dependencies>
</module>
</code>
===== Les fichiers mainconfig.ini et config.ini =====
Pour avoir la liste complète des options, voir le fichier commenté
@@F@lib/jelix/core/defaultconfig.ini.php@@, qui est "l'original" du fichier
@@F@var/config/mainconfig.ini.php@@.
Voici cependant quelques explications sur les différentes sections.
==== section générale ====
Ce sont les paramètres situés en début de fichier. Ils définissent des valeurs
par défaut ou génériques à l'application.
<code ini>
startModule = "jelix"
startAction = "default:index"
locale = "fr_FR"
charset = "UTF-8"
timeZone = "Europe/Paris"
pluginsPath = lib:jelix-plugins/,app:plugins/
modulesPath = lib:jelix-modules/,app:modules/
theme = default
use_error_handler = on
</code>
Détails des paramètres :
* **startModule, startAction** : module et action par défaut (redéfinis en
général pour chaque type de réponse. Voir la section
[[configuration#organisation|précédente]])
* **locale, charset** : langue et encodage par défaut des réponses
* **timeZone** : définit le décalage horaire pour toutes les fonctions de
dates et heures
* **pluginsPath** : liste des chemins d'accès aux plugins
* **theme** : nom du thème sélectionné par défaut. Voir la description du
système des [[themes|thèmes]] de Jelix
* **use_error_handler** : cette option devrait rester à //on// pour que Jelix
retourne des informations pertinentes sur les erreurs et exceptions des
scripts.
==== section modules ====
Elle indique, pour chaque module, leur niveau d'accés.
* 0: le module ne doit pas être installé, et n'est pas utilisé
* 1: le module est utilisé, mais ne doit pas être accessible directement par
le web, et ne peut donc être appelé que par des modules (il n'a donc en
général pas de contrôleur, juste des ressources daos, forms etc)
* 2: module utilisable normalement
==== section coordplugins ====
Doit contenir les noms des plugins à activer. Ils seront chargés à partir des
chemins définis dans le paramètre général pluginsPath.
Par exemple, ci-dessous la configuration active le plugin de coordinateur gérant
l'authentification et dont les paramètres se trouve dans le fichier
auth.coord.ini.php. Pour plus de détails, voir la documentation sur
[[authentification|l'authentification]]
<code ini>
[coordplugins]
auth = "auth.coord.ini.php"
</code>
==== section responses ====
Cette section permet de personnaliser les types réponses et leurs alias. Chaque
ligne est un couple @@<alias de réponse>=<class de la réponse>@@.
Par exemple, Il est assez courant de vouloir surcharger la réponse html par
défaut (jResponseHtml) en introduisant une ligne @@html=myhtmlresponse@@. Voir
plus en détails dans [[traitements_communs#personnalisation-de-reponse-commune|personnalisation de réponse commune]]
Ci-dessous les valeurs par défaut des différents type de réponses:
<code ini>
[responses]
html = jResponseHtml
redirect = jResponseRedirect
redirectUrl = jResponseRedirectUrl
binary = jResponseBinary
text = jResponseText
jsonrpc = jResponseJsonrpc
json = jResponseJson
xmlrpc = jResponseXmlrpc
xml = jResponseXml
zip = jResponseZip
rss2.0 = jResponseRss20
atom1.0 = jResponseAtom10
css= jResponseCss
tcpdf = jResponseTcpdf
</code>
==== section error_handling ====
Les paramètres de cette section permettent de configurer les notifications
survenant lors de l'exécution d'un script de l'application. Pour plus de
détails, voir la documentation sur la [[errormanager|gestion d'erreurs]].
Les notifications ont différents niveaux d'importance. Jelix définit les niveaux
suivants correspondant à ceux de PHP :
* //default// = niveau sélectionné si aucun autre niveau ne correspond
* //error// = signale une erreur nécessitant l'interruption du script
* //warning// = signale un mauvais traitement sans toutefois nécessiter l'interruption du script
* //notice// = signale une erreur potentielle
* //deprecated// = signale une fonction dépréciée (php 5.3)
* //strict// = signale des messages de moteur PHP pour améliorer l'interopérabilité et la compatibilité du script
Ci-dessous, l'ensemble des paramètres de la section :
<code ini>
[error_handling]
messageLogFormat = "%date%\t%ip\t[%code%]\t%msg%\t%file%\t%line%\n"
logFile = error.log
email = root@localhost
emailHeaders = "Content-Type: text/plain; charset=UTF-8\nFrom: [email protected]\nX-Mailer: Jelix\nX-Priority: 1 (Highest)\n"
quietMessage="A technical error has occured. Sorry for this trouble."
showInFirebug = off
; mots-clés que vous pouvez utiliser : ECHO, ECHOQUIET, EXIT, LOGFILE, SYSLOG, MAIL, TRACE
default = ECHO EXIT
error = ECHO EXIT
warning = ECHO
notice = ECHO
deprecated = ECHO
strict = ECHO
; pour les exceptions, il y a implicitement un EXIT
exception = ECHO
</code>
* **messageLogFormat** et **logFile** configurent la sortie en fichier de log (LOGFILE ou SYSLOG)
* **email** et **emailHeaders** configurent la sortie sous forme de mail (MAIL)
* **quietMessage** définit un message neutre pour l'utilisateur (ECHOQUIET)
* **showInFirebug** : si affectée à on, toutes les notifications seront renvoyées vers la console de l'extension Firebug du navigateur Firefox via son api //console.//
les dernières options permettent d'associer un format de sortie à chaque niveau de notification.
==== section compilation ====
Définit le comportement du moteur de template de Jelix. Et notamment de la phase
de compilation. Voir la documentation sur les [[templates|templates]] pour plus
de détails.
<code>
[compilation]
checkCacheFiletime = on
force = off
</code>
* **checkCacheFiletime ** : si //on// alors un template est recompilé si sa
date de modification est plus récente que le fichier PHP résultant de la
compilation.
* **force** : si //on//, le template est recompilé systématiquement.
==== section zones ====
Parfois, il peut arriver que l'on veuille désactiver le cache des zones, pour
voir le résultat quand on modifie leur contenus. Pour cela, vous pouvez modifier
un paramètre dans la configuration, au niveau de la section "zones"
<code ini>
[zones]
disableCache = on // off par defaut
</code>
==== section urlengine ====
définition du moteur d'url utilisé.
<code ini>
[urlengine]
engine = significant
enableParser = on
multiview = off
scriptNameServerVariable =
pathInfoInQueryParameter =
basePath = ""
jelixWWWPath = "jelix/"
defaultEntrypoint= index
simple_urlengine_https =
</code>
Détails des paramètres :
* **engine** : les moteurs existants sont : simple, basic_significant ou
significant
* **enableParser** : active la lecture de l'URL. Désactivez le paramètre si
l'URL est déjà gérée par un autre programme ( comme le mod_rewrite
d'apache), si la réécriture de l'URL correspond à une URL simple et que vous
utilisez le moteur "significant". Si vous utilisez le moteur d'URL "simple"
désactivez ce paramètre.
* **multiView** : si le paramètre est activé dans Apache, vous ne devez pas
indiquez le suffix ".php", alors activez ce paramètre
* **scriptNameServerVariable** : le nom de la variable $_SERVER qui contient
le nom du script exemple : si vous appelez http://mysite.com/foo/index.php,
c'est la variable qui contient "/foo/index.php". Ce nom peut être
SCRIPT_NAME, ORIG_SCRIPT_NAME, PHP_SELF ou REDIRECT_SCRIPT_URL. Il est
automatiquement détecté par jelix mais peut parfois échouer, donc vous
pourriez le définir ici.
* **pathInQueryParameter** : si vous utilisez des règles de réécriture qui
déplacent le pathinfo dans le queryparameter comme @@RewriteRule ^(.*)$ index.php/?jpathinfo=$1 [L,QSA]@@
alors vous devriez indiquer dans pathInfoInQueryParameter le nom du
paramètre qui contient la valeur de pathinfo (exemple "jpathinfo"), laissez
vide si vous n'utilisez pas de telles règles de réécriture
* **basePath** : ce paramètre correspond au répertoire "de base" de votre
application, indiquez /aaa/bbb/www si vous accédez à votre application par
http://foo.com/aaa/bbb/www/index.php, ou indiquez juste / si l'accès se fait
via http://foo.com/index.php
* **jelixWWWPath** : contient le chemin vers les CSS de Jelix, si vous le
modifiez voyez également les chemins du **[[configuration#section-htmleditors|htmleditors]]**
* **defaultEntrypoint** : contient le nom du pont d'entrée de l'application
* **simple_urlengine_https** : contient la liste des actions requérant le
protocole HTTPS
=== notfound ===
Gestion des redirections vers une page 404 quand l'url n'est pas trouvée
<code ini>
notfoundAct =
</code>
* **notfoundAct** : contient le nom de l'action qui affichera l'erreur 404. Si le
paramètre est laissé vide alors c'est l'action @@jelix~error:notfound@@ qui sera
utilisée.
Utiliser la syntaxe des sélecteurs (Cf.[[selecteurs|L'utilité des sélecteurs]])
et placer le sélecteur de votre action entre guillemet :
<code ini>
notfoundAct = "monModule~monControleur:monAction"
</code>
=== urls.xml ===
Nom du fichier contenant le mapping entre l'URL tappée dans le navigateur et
Module/action/parametres, voir la documentation du le [[/urls/significant|moteur significant]]
<code ini>
significantFile = "urls.xml"
</code>
* **significantFile** : nom du fichier contenant les regles de réécritures de
l'application
==== section logfiles ====
Cette section définit comment seront écrits les logs à l'aide de [[deboggage|jLog]].
Les fichiers logs sont stockés dans le dossier /var/log/ de votre application.
Vous pouvez définir un fichier de log par module en associant le nom du module à
un nom de fichier log et faisant un appel à jLog en passant en dernier argument
le nom du module.
<code ini>
; log par défaut
default = messages.log
; log "news"
news = news.log
</code>
Autre exemple utilisant l'extension Firebug du navigateur Firefox (ce qui permet
une vision très rapide des messages de débogage).
<code ini>
[logfiles]
default="!firebug"
file = "messages.log"
</code>
Et pour un dump de contenu de taille importante, il suffit d'indiquer le type
'file' au dernier paramètres des méthodes de jLog pour l'obtenir à nouveau dans
un fichier de log classique.
Pour plus de détails sur l'utilisation des fichiers log dans Jelix se reporter
au manuel concernant [[deboggage|jLog]].
==== section mailer ====
Définit les paramètres d'envoi de mail à travers l'application, comme par
exemple pour une authentification ou encore au plus bas niveau pour les
notifications.
<code ini>
[mailer]
webmasterEmail = root@localhost
webmasterName =
; How to send mail : "mail" (mail()), "sendmail" (call sendmail), or "smtp" (send directly to a smtp)
mailerType = mail
; Sets the hostname to use in Message-Id and Received headers
; and as default HELO string. If empty, the value returned
; by SERVER_NAME is used or 'localhost.localdomain'.
hostname =
sendmailPath = "/usr/sbin/sendmail"
; if mailer = smtp , fill the following parameters
; SMTP hosts. All hosts must be separated by a semicolon : "smtp1.example.com:25;smtp2.example.com"
smtpHost = "localhost"
; default SMTP server port
smtpPort = 25
; SMTP HELO of the message (Default is hostname)
smtpHelo =
; SMTP authentication
smtpAuth = off
smtpUsername =
smtpPassword =
; SMTP server timeout in seconds
smtpTimeout = 10
</code>
==== section acl et acl2 ====
Définit les paramètres de la gestion des droits d'accès dans l'application. Voir
la documentation sur la [[/droits2|gestion des droits]]. Vous choisirez
d'utiliser soit jAcl, soit jAcl2 mais il n'est pas recommandé d'utiliser les
deux en même temps.
<code ini>
[acl]
; exemple de driver: "db"
driver =
[acl2]
; exemple de driver: "db"
driver =
</code>
==== section sessions ====
Définit le mode de gestion des sessions PHP (fichier ou bases de données). Pour
plus de détails, voir la documentation sur les
[[/classes-utiles/jsession|sessions]]
<code ini>
[sessions]
shared_session = off
; Use alternative storage engines for sessions
;
; usage :
;
; storage = "files"
; files_path = "app:var/sessions/"
;
; or
;
; storage = "dao"
; dao_selector = "jelix~jsession"
; dao_db_profile = ""
</code>
==== section forms ====
définition de la forme du datepicker
<code ini>
[forms]
; define input type for datetime widgets : "textboxes" or "menulists"
controls.datetime.input = "menulists"
; define the way month labels are displayed widgets: "numbers", "names" or "shortnames"
controls.datetime.months.labels = "names"
; define the default config for datepickers in jforms
datepicker = default
</code>
definition du chemin du javascript vers le datepicker
<code ini>
[datepickers]
default = jelix/js/jforms/datepickers/default/init.js
</code>
==== section htmleditors ====
définition du chemin de l'editeur html
<code ini>
[htmleditors]
default.engine.name = wymeditor
default.engine.file[] = jelix/jquery/jquery.js
default.engine.file[] = jelix/wymeditor/jquery.wymeditor.js
default.config = jelix/wymeditor/config/default.js
default.skin.default = jelix/wymeditor/skins/default/screen.css
</code>
==== section classbindings ====
Rôle : FIXME
<code ini>
[classbindings]
; bindings for class and interfaces : selector_of_class/iface = selector_of_implementation
</code>
==== section wikieditors ====
définition de la barre d'outils de l'éditeur wiki
<code ini>
[wikieditors]
default.engine.name = wr3
default.wiki.rules = wr3_to_xhtml
; path to the engine file
default.engine.file = jelix/markitup/jquery.markitup.js
; define the path to the "internationalized" file to translate the label of each button
default.config.path = jelix/markitup/sets/wr3/
; define the path to the image of buttons of the toolbar
default.image.path = jelix/markitup/sets/wr3/images/
default.skin = jelix/markitup/skins/simple/style.css </code>