Aller au contenu principal
Version: 0.5.0

Template

Nouvelle gestion de la hiérarchie des templates.

L'objectif étant de ne plus avoir à créer de fichier tel que : page.php, single.php, archive.php, etc. à la racine du thème.
Ce qui va permettre, au besoin, de créer des plugins qui vont pouvoir gérer également les templates des post types qu'ils vont créer.

astuce

Via la configuration config/templates.yaml vous pouvez définir si votre thème accepte que des plugins injecte des vues Twig par le biais de l'attribut #[Template()].

Pour en apprendre plus sur la configuration de templates, rendez-vous sur la page Configuration.

Exemple d'utilisation

Ici, on retourne une vue Twig pour afficher un article de blog. Ce code permet de remplacer la création d'un fichier front-page.php à la racine du thème.

app/Controllers/BlogController.php
#[Template('front_page')]
public function homePage()
{
    $currentDate = date('d/m/Y');
    $readingTime = 5;

    $this->render('@theme/front-page.twig', [
        'currentDate' => $currentDate,
        'readingTime' => $readingTime
    ]);
}

Page d'accueil et archive

Lors de l'activation d'Elementum, il créer une page Accueil et une page Actualités afin que les spécifié comme page d'accueil et d'archive par défaut.

Dans ce contexte, pour éditer la page d'accueil, il faut spécifier #[Template('front_page')].

Pour éditer la page d'actualités, il faut spécifier #[Template('home')].

Archive de post type

Pour éditer l'archive de post type, il faut spécifier #[Template('post_type_archive', params: ['mon_post_type'])].

Il est préférable d'utiliser la constante SLUG du post type : #[Template('post_type_archive', params: [MyPostType::SLUG])].

Modèle de page

Au préalable, il faut créer le modèle de page depuis la configuration config/templates.yaml.

Configuration des modèles de page

Une fois le modèle de page créé, il faut spécifier #[Template('page', customTemplate: 'mon_modele')].

Arguments

name

string Nom du template.

id

string ID du template.
(optionnel) | "" L'idée est généré automatiquement mais il est fortement recommandé de le spécifier pour facilement identifier le template.

priority

int Priorité du template. Permet de définir l'ordre d'exécution des templates. Principalement fait pour insérer un template dans un autre.
(optionnel) | 10

params

array Paramètres à passer au template.
(optionnel) | []

customTemplate

string Spécifie le nom du template si il s'agit d'une page. Remplace l'utilisation de la hiérarchie de base tel que : page-{template}.php.
(optionnel) | ""