SourceML

Modifier l'affichage

Un mécanisme basique de gestion de thèmes est disponible sur Sourceml.

Si vous souhaitez modifier l'affichage de Sourceml, vous pouvez créer un dossier pour votre thème, et copier dedans les fichiers sur lesquels vous voulez faire des modifications. Ces fichiers seront utilisés à la place des fichiers d'origine de Sourceml.

Ainsi vous pouvez modifier l'affichage, tout en gardant la possibilité d'upgrader votre installation de Sourceml sans perdre vos modifications.

Déclarer un nouveau thème

Commencez par indiquer dans la configuration que vous voulez utiliser un thème, en remplaçant, dans le fichier config/packages/app.yaml la ligne :

    sourceml_theme: null

Par :

    sourceml_theme: my_theme

En remplaçant my_theme par un nom de cotre choix pour votre thème.

Puis supprimez le dossier de cache, pour forcer Sourceml à recharger la configuration. Effacez le dossier prod (ou dev selon votre installation) :

var/cache/prod

Modifier les fichiers publics

Tous les fichiers publics de Sourceml (CSS, Javascript, miages...) sont dans le dossier public.

Pour modifier un fichier public, commencez par créer un dossier portant le nom de votre thème, dans le répertoire public/themes :

public/themes/my_theme

Mettons que vous souhaitez modifier le fichier :

public/app/css/style.css

Copiez-le dans votre dossier de thème, en conservant le chemin et le nom du fichier :

public/themes/my_theme/app/css/style.css

Et voilà. Votre fichier sera utilisé à la place de celui de Sourceml.

Modifier les fichiers de template HTML

Chaque bout de code HTML que Sourceml envoie aux navigateurs vient d'un fichier de template Twig. Ces fichiers se trouvent dans le dossier templates et ont une extension .twig.

Pour modifier un fichier de template, le mécanisme est le même que pour les fichiers publics, en faisant une copie du fichier twig à modifier dans votre dossier de thème. Pour les templates, ce dossier doit se trouver dans le répertoire templates/themes :

templates/themes/my_theme

Mettons par exemple que vous voulez modifier le fichier :

templates/App/base.html.twig

Copiez-le dans votre dossier de thème, en conservant le chemin et le nom du fichier :

templates/themes/my_theme/App/base.html.twig

Ce fichier sera alors utilisé à la place de celui de Sourceml.

Rafraichir le cache

Symfony utilise un mécanisme de cache pour le rendu des fichiers twig. Si après avoir modifié un fichier twig dans votre thème vous ne voyez pas la modification dans votre navigateur, videz le dossier de cache pour forcer Sourceml à regénérer le rendu des fichiers twig. Supprimez le dossier prod (ou dev selon votre installation) :

var/cache/prod

Localiser les fichier utilisés par Sourceml

Les fichiers publics

Les fichiers publics sont relativement faciles à localiser, en utilisant par exemple un outil d'inspection de code dans un navigateur.

Concernant les règles CSS, la plupart des modifications seront à faire l'un de ces fichiers :

public/app/css/style.css
public/sources/css/admin.css
public/sources/css/sources.css

Les fichiers de template

Les fichiers twigs sont pour leur part moins évidents à trouver.

Ils sont répartis dans le dossier templates, dans 3 principaux répertoires :

  • App : les fichiers twigs qui traitent de la structure globale du site
  • Sources : la quasi-totalité des contenus
  • JQFileUpload : les fichiers twig pour les formulaires d'upload

Chacun de ces répertoires contient des fichiers et des sous-dossiers, avec des noms plus ou moins explicitent...

Un bon point de départ serait de jeter un oeil au fichier twig qui défini la structure de base du site :

templates/App/base.html.twig

Localiser un fichier twig

Sourceml est basé sur Symfony. Une approche un peu plus formelle, pour localiser un fichier twig, serait de suivre les mécanismes de Symfony qui mènent à son utilisation.

En résumé, ça pourrait donner :

  • Commencez par regarder l'URL, pour trouver la route correspondante dans l'un des fichiers .yaml du dossier config/routes
  • Dans la définition de la route, vous trouverez l'action et le controlleur utilisé
  • Dans le code de l'action, vous verrez quel fichier twig est utilisé
  • Suivez les inclusions dans le fichier twig s'il ne contient pas lui-même la partie HTML que vous cherchez à modifier

Mais Symfony est très bien documenté et si vous découvrez ce framework, je vous invite à consulter la documentation de Symfony.