Accueil

Introduction

Cette documentation se concentre sur la partie développeur du site. Elle présente l'arborescence des fichiers, l'architecture du programme, ...

Le site se compose de plusieurs parties interagissant entre elles :

  • WordPress : Le site est construit avec un des CMS les plus connu. Il est développé en PHP mais il utilise également React pour son éditeur de page.
  • Le thème Safer : le thème est la partie du programme qui s'occupe de l'aspect général du site. Il regroupe également les bibliothèque utilisées par le thème et le plugin.
  • Le plugin Safer : le plugin se charge de mettre à disposition des blocs pour l'éditeur et de fournir des fonctionnalités aux blocs comme l'accès à la base de données, la gestion des fonctions, ...

Seul les deux dernières parties seront détaillées dans cette documentation.

Système de dépendances

Le thème et le plugin dépendent de plus bibliothèques, scripts et styles. Le système de gestion des dépendances est dans le thème.

Fonctionnement

Le système de dépendances est basé sur un objet global array $SAFER_DEPENDENCIES, il contient la liste des dépendances en fonction de la page qui doit être rendue.

<?php
[
	'echarts' => [
		'type' => 'js',
		'version' => '5.5.0',
		'path' => get_template_directory() . '/src/assets/js/echarts-${version}.min.js',
		'constraint' => 'front',
		'dependencies' => ['tom_select_style'],
    ],
    'tom_select_style' => [ ... ],
    ...
]
  • string type : Type de dépendance JavaScript (js) ou CSS (css).
  • string version : Version de la dépendance.
  • string path : Chemin absolu vers le fichier de la dépendance. ${version} est remplacé par la version de la dépendance.
  • string|array constraint : Contrainte pour l'inclusion de la dépendance :
    • front : pages côté client (visiteur)
    • admin : pages administrateurs (tableau de bord et éditeur Gutenberg)
    • editor : seulement l'éditeur Gutenberg
    • block : seulement les blocs de l'éditeur Gutenberg
    • all : front, admin, editor et block
  • array dependencies : Dépendances de la dépendance.

Cet objet n'est utilisé qu'à la fin du chargement du thème et des plugins donc cela laisse du temps pour le compléter avec les dépendances de chaque plugin/thème.

Exemple :

<?php

if (!isset($SAFER_DEPENDENCIES))
    $SAFER_DEPENDENCIES = [];

$SAFER_DEPENDENCIES = array_merge($SAFER_DEPENDENCIES, [ ... ]);

Thème Safer

La suite c'est par ici.

Plugin Safer

La suite c'est par ici.

Traductions

Que ce soit pour le thème ou le plugin, les traductions sont gérées par un script contenu dans le dossier languages (make-pot.bat pour le thème et make-pot.ps1 pour le plugin). Après, avoir modifier le programme, il faut lancer le script pour mettre à jour les fichiers de traduction.

Ensuite, il est possible d'utiliser un logiciel comme Poedit pour traduire les chaînes de caractères. Les fichiers de traduction sont au format .po et .mo.

Une fois généré, il faudra exécuter le script make-json.ps1 (pour le plugin uniquement) pour générer le fichier de traduction à destination des navigateurs.