Avec ParoiCMS, les pages web sont appelées des "documents". La structure d'un document est définie dans un type de document. C'est dans le type de document que l'on définit la manière dont l'URL d'un document est construite. Cela fonctionne un peu comme le chemin d'un fichier dans un système de fichiers : la dernière partie d'une URL sert à identifier le document parmi les enfants du même parent.
Il existe deux grandes familles de types de documents sur ParoiCMS :
Les points de routage sont les types de document qui forment l'armature du site web. La portion d'URL d'un point de routage est définie en dur et ne dépend donc pas de l'utilisateur. En outre, il est généré automatiquement par le moteur de ParoiCMS. L'utilisateur peut ensuite l'éditer mais ne peut pas ajouter ou supprimer des documents de ce type. Voici un exemple de point de routage :
{ "kind": "document", "typeName": "posts", "route": { "en": "posts", "fr": "articles" }, ... },
Il s'agit ici du type de document utilisé pour la page web qui liste des articles sur le site. Les portions d'URL sont données pour chaque langage supporté par le site : ce sera dans notre exemple posts
pour le site en anglais, et articles
pour le site en français. L'URL de la page web sera alors :
Remarque : il est possible de donner une simple chaîne de caractères pour la
"route"
. Toutes les langues du site utilisent alors cette valeur comme portion d'URL.
Dans un type de document normal, une portion de l'URL (le slug) est éditable depuis l'espace d'administration, et elle est générée par défaut à partir du titre.
Voici un exemple de type de document normal :
{ "kind": "document", "typeName": "post", "route": ":yyyy/:mm/:dd/:relativeId-:slug", ... },
Cet exemple définit un type de document pour les articles du site. Ils sont habituellement des enfants du routing point de la section qui précède. Voici l'URL de l'un de ces articles :
Dans cet exemple, la route est composée de :
Les deux valeurs possibles pour une route de type de document normal sont :
":relativeId-:slug"
":yyyy/:mm/:dd/:relativeId-:slug"