Typo3 et l'externalisation des fichiers de configuration

La communauté française de typo3 ne semble pas prise d'une passion débordante pour l'externalisation des fichiers de configuration typoscript (*.ts). Seul un article de Christian Reiter sur le site de typo3journal évoque les possibilités de contrôle de version avec ce CMS.

En effet typo3 dispose de son propre langage de configuration qui a le malheur d'être stocké en base et qui donc se révèle difficile à contrôler entre une version de développement et de production. De plus, son écriture n'est pas des plus facile car elle s'effectue soit en codant directement dans l'interface soit en effectuant des copier-coller d'un éditeur vers l'interface.

Face aux parts de marché en constante augmentation de typo3, les différents éditeurs se sont agrémentés de modules permettant la coloration synthaxique pour le typoscript. Le module le mieux documenté est celui conçu par l'agence allemande Area42 pour le logiciel PsPad, j'ai nommé SweeTS. La page de leur site explique en détail les avantages de leur création et la façon dont on peut externaliser les fichiers sous typo3.

Pour résumer, une fois l'éditeur configuré, on va s'absoudre d'écrire la moindre ligne de code dans l'administration du site ; on éditera uniquement des fichiers, avec l'extensions .ts, par module : nav_header.ts, nav_footer.ts, newsletter.ts... Pour les commentaires, je conseille l'utilisation de "//", un autre choix peut perturber l'interprétation.
Il est impératif de séparer les constants et le setup car les fichiers ne seront pas appelés depuis le même endroit. Ces fichiers seront rangés dans un répertoire judicieusement choisi du genre : fileadmin/typoscript/

Ensuite dans le template général du site (TS config), inscrire l'appel aux fichiers par la commande INCLUDE_TYPOSCRIPT (opération indentique pour le TSuser et TSpage).

CONSTANT :
``` < INCLUDE_TYPOSCRIPT: source="FILE: fileadmin/typoscript/constant.ts" > ```

Des constantes, sortir des fichiers celles propres à une plate-forme du style "site.baseURL = http://dev-www.monsite.fr".

SETUP :
``` < INCLUDE_TYPOSCRIPT: source="FILE: fileadmin/typoscript/nav_header.ts" > < INCLUDE_TYPOSCRIPT: source="FILE: fileadmin/typoscript/nav_footer.ts" > < INCLUDE_TYPOSCRIPT: source="FILE: fileadmin/typoscript/newsletter.ts" > ```

Désormais, coder en typoscript devient un vrai bonheur en passant par le FTP, par exemple, contrôler la modification de configuration entre deux versions peut se faire, le retour à une version antérieure de site aussi. Pour accélérer encore le procès, injecter page.config.no_cache = 1 pour ne pas avoir à supprimer le cache du site à chaque modification ; le passer à 0 une fois terminé.