Raccourcis : Contenu - rubriques - sous rubriques
EN FR

Il peut arriver que vous utilisiez un module fourni par un tiers, et que certains fichiers ne vous conviennent pas tout à fait. Plutôt que de les modifier directement, Jelix propose un moyen de redéfinir ces fichiers sans les toucher. Cela permet plus tard de mettre à jour ce module tiers sans écraser vos modifications.

Les fichiers d'un module que vous pouvez redefinir sont :

Pour les thèmes, voir la page spécifique. Le thème par défaut se nommant "default", il suffit de mettre les nouveaux templates dans le répertoire de ce thème.

Pour les autres types de fichiers, il faut mettre les nouveaux fichiers dans le répertoire app/overloads/. Ce répertoire contient des sous-répertoires ayant les noms des modules. Ces sous-répertoires sont alors organisés comme les modules.

Par exemple, imaginons que vous vouliez redéfinir des fichiers du module exemple.

  • vous placerez les daos dans app/overloads/exemple/daos/
  • vous placerez les forms dans app/overloads/exemple/forms/
  • vous placerez les locales dans app/overloads/exemple/locales/

Les noms des fichiers doivent être les mêmes que les originaux. Pour les daos, n'oubliez pas de respecter l'api du dao original. C'est à dire que si des méthodes sont définies dans le dao original, il faut aussi les définir dans le nouveau fichier, sinon vous risquez d'avoir des erreurs PHP parce que les classes du module ne pourront appeler lesdites méthodes.

Ensuite c'est tout. Le fait de mettre un fichier dans le répertoire app/overloads/ redéfinit automatiquement le fichier original correspondant. Ce sera ce nouveau fichier qui sera utilisé et non pas l'original.

Note : dans Jelix 1.6 et inférieur, le répertoire overloads/ était dans var/ et non dans app/. Dans Jelix 1.7 et suivant, cela est toujours possible, mais reservez var/overloads/ pour les fichiers qui sont générés à la volée par votre application (comme des formulaires construits par l'utilisateur par exemple), ou qui sont spécifiques à l'environnement dans lequel est installé l'application. Ceux que vous créez durant le développement sont donc dorénavant à mettre dans app/overloads/.