# Structure des dossiers

# Dossier templates

Nous utilisons le principe "Convention is better than configuration".

Chaque fichier de template se nomme index.twig. Nous créons un chemin de dossiers vers ce fichier selon son section type à partir du dossier templates/_sections.

# Structure générale

TEMPLATES
  ├── _base
  │   ├── critical (critical CSS qui sera ajouté inline dans le head)
  │   └── hash (hash créés par Webpack vers les fichiers CSS et JS)
  ├── _macros
  ├── _navigation (votre navbar et menus)
  ├── _sections
  │   ├── single
  │   │   ├── home (exemple pour un single singleHome )
  │   │   │   └── index.twig
  │   │   └── news (exemple pour un single singleNews, la page d'archive )
  │   │       └── index.twig
  │   ├── channel
  │   │   ├── events (exemple pour un channel channelEvents, la page de chaque entrée )
  │   │   │   └── index.twig
  │   │   └── news (exemple pour un channel channelNews, la page de chaque entrée )
  │   │       └── index.twig
  │   ├── structure (même principe pour vos structures)
  │   ├── category (même principe pour vos catégories, si elles ont une page template)
  ├── _shared
  │   └── pagination.twig (exemple)
  ├── 404.twig
  ├── sitemap.xlm.twig (sitemap, modifiez selon votre contenu)
  ├── human.txt
  └── robot.txt

TIP

Le underscore devant les dossiers empêche d'accéder à ces dossiers à partir du web.

# Dossier _sections

nomenclature sections

# Multiple entry types

nomenclature sections

# Handle vs Dossiers

La structure des dossiers est créée selon une combinaison du nom du handle

nomenclature sections

# Multiple entry types

nomenclature sections

# Category Groups

nomenclature category group

# Dossiers SRC et config

SRC
  ├── ejs (templates utilisés par Webpack pour le hash des fichiers)
  ├── js (nos fichiers JS)
  ├── sass (nos fichiers SCSS)
  └── svg (svg qui seront optimisés et ajoutés dans web/img/svg-sprite.svg)
      └── temp-optimized (dossier temporaire avec les svg optimisés)
CONFIG
  ├── project (fichiers yaml de structure de l'admin, générés automatiquement)
  ├── redactor (customs configs pour l'éditeur Redactor)
  └── general.php (fichier de config du projet)

# URI et slugs

Lors de la création d'une section, que ce soit une structure, un channel ou un single, il vous sera demandé pour chaque langue :

Entry URI Format Template
{slug} _sections/ma-structure/index

# Incluant un path

La balise {slug} dit d'utiliser le champ slug de l'entrée en question. Vous pouvez donc combiner, exemple :

nouvelles/{slug}

# Incluant de la logique Twig

Ce champ accepte de la logique Twig, par exemple, la création d'un slug basé sur la valeur d'un champ checkbox.

Cette façon dynamique peut s'avérer intéressante pour utiliser une valeur d'un champ categories pour créer le slug de l'entrée :

{exempleCatRelation.one().slug}/{slug}

TIP

Essayez toutefois de garder cela le plus simple et "hardcodé" possible, pour faciliter la maintenance future.

# Uri spéciaux

Si vous avez des besoins plus spécifiques, pour une page de résultat de recherche sans "entrée" ou autre, vous pouvez utiliser des routes custom:

Idéalement, utilisez le fichier routes.php dans config plutôt que le panneau d'administration.

Documentation officielle sur les custom routes(opens new window)

Date de modification: 5/17/2021, 3:08:04 PM