Adapter l’affichage d’une notice sans toucher le code : le plugin UiTemplates

Ce plugin est une version simplifiée de celui utilisé pour le projet e-Man.

Il permet de gérer l’affichage de la notice (item/show dans le nommage Omeka) via une interface graphique, sans avoir à retoucher les fichiers de thème.

Pré-requis : pour profiter de la présentation en deux colonnes, le thème doit utiliser le tag “aside”.

Ce plugin vise :

  • à factoriser autant que possible les personnalisations
  • à les rendre paramétrables via l’IHM
  • à s’affranchir des fichiers du thème

Pour ce faire, le plugin propose une interface avec tous les paramètres utiles (titres, champs à afficher dans un bloc, ordre, colonnes, etc.). Les valeurs de ces paramètres sont stockées en base de données, et peuvent donc être différentes pour chaque projet.

En terminologie Zend : nous avons déporté un certain nombre de paramètres de la page de la Vue vers le Contrôleur ; les fichiers du niveau Vue sont donc les mêmes pour tous les projets ; seules les données et leur structure (Modèle et Contrôleur, donc) sont différentes d’un projet à l’autre.

De plus, le plugin utilise ses propres fichiers Vue, afin d’exploiter au maximum la logique qu’il implémente.

Donc, les anciens fichiers du thème ne sont plus utilisés quand l’option « remplacer xxx/show » est active.

Ce qui signifie que tout changement dans ces fichiers sera sans effet tant que l’option sera active.

Des améliorations sont possibles comme faire une interface “drag and drop” pour la configuration de la page.

L’explication du fonctionnement du plugin UiTemplates est présenté dans le document joint.

Le plugin est disponible sur GitHub : https://github.com/ENS-ITEM/UiTemplates


Rappel sur la structure du framework Zend (pour expert)

Zend fonctionne sur le modèle MVC.
Concrètement, et de façon simplifiée, toute page est gérée par trois fichiers :
– Le modèle, qui gère les accès à la base de données
– Le contrôleur, qui structure le contenu et la logique qui préside à son exploitation
– La vue, qui affiche le contenu et sa mise en forme finale
Donc, et grossièrement, Modèle = données, Contrôleur = logique fonctionnelle, Vue = apparence
et IHM.

Vincent Buard