Les objectifs principaux de cette usine à site sont les suivants:
A ces objectifs initiaux s'ajoutent certaines fonctionnalités attendues, dont les principales:
Typo3 intègre un système d'extensions bien conçu, ce qui autorise un développement organisé et modulaire dans lequel chaque problématique peut correspondre à une extension dédiée.
Cependant, le risque lié à une multiplication des extensions reste une interdépendance de ces extensions (l'effet "spaghetti")
Pour éviter ça, on se tiendra donc à ce principe:
graph TD;
OtCore-->OtAdmin;
OtCore-->OtTemplating;
OtCore-->OtConnect;
OtCore-->OtStats;
OtCore-->...etc.;
La multiplicité des contenus, des templates et des supports rend le design graphique délicat à maintenir.
Afin de permettre une maintenabilité du code front, les choix suivants ont été faits:
Le partage d'une authentification entre le logiciel et les sites est effectué par l'intermédiaire de cookies.
L'extension dédiée OtConnect permet de soumettre ces cookies à l'API pour obtenir l'identité de l'utilisateur connecté.
Ce fonctionnement rencontre cependant des difficultés liées aux règles de sécurité des navigateurs liées aux cookies,
ainsi qu'aux structures possédant leur propre nom de domaine (domaines qui ne sont donc plus en .opentalent.fr)
Tout adapté qu'il soit à l'architecture multi-sites, Typo3 n'a pas été pensé pour héberger une telle quantité de sites. De nombreuses difficultés liées à ce nombre ont donc dû être contournées.
C'est la raison d'être de l'extension OtOptimizer, dont le rôle est de surcharger le fonctionnement de certaines fonctions natives de Typo3 pour des raisons de performance.
Les sites doivent être à tout moment cohérents avec les données de la base de données Opentalent (structures, utilisateurs, paramètre...).
Pour ce faire, l'extension OtAdmin fournit une API accessible par HTTP et en ligne de commande. Cette API est appellées par des hooks côté logiciel et permet de déclencher par exemple la création d'un nouveau site, sa mise à jour, ou son archivage.
LE Typoscript. C'est le langage historique de Typo3. Très puissant, mais... fiou.
Bref, le Typoscript étant assez difficile d'accès, le choix a été fait de privilégier l'usage du langage de templating Fluid dès que c'était possible.
Plus d'infos ici.
Et si vous avez lu jusqu'ici, vous avez mérité un cookie: