4.4 Fichiers de surcharge des éléments de rendu
Il est possible de paramétrer le rendu sans modifier le code existant.
4.4.1 Format
Les fichiers de configurationau sont au format format JSON,
et doivent être placés dans le répertoire DOCUMENT/customRender.d
du serveur.
Seuls les fichiers
dont l'extension est .json
sont pris en compte.
Chaque surcharge s'applique explicitement à une famille désignée, et n'est pas propagée à ses sous-familles.
le fichiers est la représentation json d'un tableau à 3 dimensions :
- la première dimension est obligatoirement
"families"
- la deuxième dimension référence une famille par son nom logique
- la troisième dimensionindique le nom d'un paramètre.
Exemple :
{ "families": { "MY_FAMILY": { "renderAccessClass": "My\\MyRenderAccess", "disableTag" : true }, "MY_WORKFLOWFAMILY": { "renderAccessTransition": "My\\MyTransitionAccess" } } }
4.4.2 Prise en compte des surcharges
Pour que les fichiers soient pris en compte, il est nécessaire de lancer la commande suivante après leur déploiement :
./wsh.php --app=DOCUMENT --action=LOAD_RENDERPARAMETERS
Cette commande peut aussi être lancée depuis le navigateur en tant qu'administrateur.
http://<yourDomain>/?app=DOCUMENT&action=LOAD_RENDERPARAMETERS
Cette commande applique les différents fichiers de configuration. Les paramètres sont fusionnés dans l'ordre croissant des noms de fichiers. Il est d'usage de préfixer le nom du fichier par 2 chiffres afin de rendre l'ordre plus explicite.
Pour une même famille, les différents paramètres sont cumulés.
Exemple :
DOCUMENT/customRender.d/10_myRender.json
{ "families": { "YOUR_FIRSTFAMILY": { "renderAccessClass": "My\\MySecondRenderAccess", "disableTag" : true }, "MY_FIRSTFAMILY": { "renderAccessClass": "My\\MyFirstRenderAccess" } } }
DOCUMENT/customRender.d/20_myRender.json
{ "families": { "YOUR_FIRSTFAMILY": { "renderAccessClass": "My\\MyOtherRenderAccess", "applyRefresh" : true }, "MY_SECONDFAMILY": { "renderAccessClass": "My\\MySecondRenderAccess" } } }
Les fichiers sont pris dans l'ordre alphabétique, soit :
- 10_myRender.json
- 20_myRender.json
Le paramétrage résultant est le suivant :
{ "families": { "YOUR_FIRSTFAMILY": { "renderAccessClass": "My\\MyOtherRenderAccess", "disableTag": true, "applyRefresh": true }, "MY_FIRSTFAMILY": { "renderAccessClass": "My\\MyFirstRenderAccess" }, "MY_SECONDFAMILY": { "renderAccessClass": "My\\MySecondRenderAccess" } } }
4.4.3 Réactiver la méthode Doc::refresh()
Par défaut l'appel à la méthode Doc::refresh()
n'est pas effectué lors de la
récupération d'un rendu. cela est nécessaire pour s'assurer que 2 Get
successifs
au même doucment retournet la même réponse (aspect REST de l'API).
Par contre, elle est effectuée lors de l'enregistrement
(POST
, PUT
) via la méthode Doc::store()
.
Si l'option applyRefresh
vaut true
, alors la méthode Doc::refresh()
est appelée à chaque récupération (GET
) de rendu.
Dans ce cas, l'etag est calculé après l'appel à la méthode
Doc::refresh()
. Si le document n'a pas été modifié et si cette méthode ne
modifie pas non plus le document, l'etag n'est pas modifié.
Exemple :
{ "families": { "MY_FAMILY": { "applyRefresh": true } } }
4.4.4 Désactiver le calcul des etag
Par défaut, l'api HTTP calcule des etag.
Lorsque ce n'est pas nécessaire, ou que ce calcul ets trop couteux,
il est posible de désactiver ce calcul au moyen du paramètre disableETag
.
lorsque disableETag
vaut true
, l'etag n'est ni calculé, ni transmis ni vérifié.
Exemple :
{ "families": { "MY_FAMILY": { "disableEtag": true } } }
4.4.5 Définir l'accès à un rendu de document
Le paramètre renderAccessClass
indique la
classe d'accès à un rendu de document.
Exemple :
{ "families": { "MY_FAMILY": { "renderAccessClass": "My\\MyRenderAccess" } } }
4.4.6 Définir l'accès à un rendu de transition
Le paramètre renderTransitionClass
indique la
classe d'accès à un rendu de transition.
Exemple :
{ "families": { "MY_WORKFLOWFAMILY": { "renderTransitionClass": "My\\MyTransitionAccess" } } }