Catégorie

Éditeur de contenu

Gestion des pages, articles, bibliothèque médias avec WebP, formulaires visuels et commentaires.

Le back-office de QuietCMS est construit avec un objectif en tête : permettre à un administrateur de gérer l'intégralité d'un site de contenu sans jamais toucher à un fichier ou à une ligne de code. Pages, articles, catégories, médias, formulaires, commentaires, menus de navigation, redirections, paramètres SEO — tout est administrable depuis une interface web claire, cohérente et rapide.

L'interface d'administration est elle-même une application PHP native sans framework JavaScript complexe. Elle se charge instantanément, fonctionne sans JavaScript pour les opérations de lecture, et reste opérationnelle même dans des conditions réseau dégradées. C'est un choix délibéré : un back-office qui rame ou qui s'effondre est un back-office inutilisable.

Gestion des pages statiques

Chaque page statique est stockée dans content/pages/{slug}.json et expose un formulaire d'édition complet dans le back-office. Au-delà du titre et du contenu HTML, chaque page dispose de ses propres champs SEO : balise H1 indépendante du titre d'onglet (crucial pour l'optimisation sans compromettre le <title> visible dans l'onglet), méta-description, URL canonique, directive robots (noindex, nofollow…) et JSON-LD personnalisé.

Les champs head_extra et footer_extra permettent d'injecter du HTML arbitraire dans le <head> ou en fin de <body> pour une page spécifique, sans modifier le thème. C'est le moyen recommandé pour ajouter du CSS ou du JavaScript propre à une page particulière (par exemple, une page de démonstration d'un composant interactif).

Articles de blog — trois états de publication

Le moteur de blog de QuietCMS gère trois états de publication avec une sémantique claire :

  • Brouillon — L'article est visible uniquement dans le back-office. Aucun visiteur ne peut y accéder, même en connaissant l'URL directe. Idéal pour les articles en cours de rédaction ou en attente de validation.
  • Publié — L'article est accessible publiquement à son URL canonique, inclus dans le sitemap XML et dans les archives de sa catégorie. La date de publication est enregistrée au moment de la mise en ligne.
  • Planifié — L'article est préparé à l'avance avec une date de publication future. Il passera automatiquement en état « Publié » à la date et l'heure configurées, sans intervention humaine.

Chaque article dispose d'un champ auteur assignable (parmi les utilisateurs de type Administrateur ou Auteur), d'une image à la une avec champ alt-text dédié pour l'accessibilité, d'une catégorie principale, et de l'ensemble des champs SEO identiques aux pages statiques.

Bibliothèque médias — WebP automatique

La bibliothèque médias accepte les formats image JPEG, PNG, WebP, GIF et SVG, ainsi que les vidéos MP4, WebM et OGV. Chaque image uploadée est automatiquement convertie en WebP par la classe ImageService, qui utilise l'extension GD ou Imagick selon ce qui est disponible sur le serveur. La conversion WebP réduit le poids des images de 25 à 35 % en moyenne par rapport au JPEG, sans perte visible de qualité.

Les noms de fichiers sont automatiquement slugifiés (caractères spéciaux supprimés, espaces remplacés par des tirets) et horodatés pour éviter les collisions entre des fichiers portant le même nom. Un vérificateur MIME basé sur finfo_file() valide le type réel du fichier indépendamment de son extension déclarée, éliminant les uploads malveillants masqués derrière une extension légitime.

L'alt-text de chaque média est gérable depuis la bibliothèque et pré-rempli automatiquement dans les champs d'images à la une des articles et des catégories. C'est une bonne pratique d'accessibilité (WCAG 2.1) qui améliore également l'indexation des images par les moteurs de recherche.

Constructeur de formulaires visuels

Le constructeur de formulaires de QuietCMS permet de créer des formulaires de contact, d'inscription ou de collecte de données sans écrire une ligne de code. Les types de champs disponibles sont : texte court, email, textarea, sélecteur (dropdown), boutons radio, cases à cocher et champs cachés.

Chaque champ peut être rendu obligatoire. La validation côté serveur est automatique pour les champs email. À la soumission d'un formulaire :

  1. Un token CSRF est vérifié pour éliminer les soumissions forgées
  2. La réponse est archivée en JSON dans content/forms/{slug}/submissions/
  3. Un email de notification est envoyé aux destinataires configurés via Mailer
  4. Le visiteur est redirigé vers une URL de confirmation configurable

Les soumissions sont consultables et exportables depuis le back-office. L'insertion d'un formulaire dans une page se fait via un shortcode simple : [form slug="contact"].

Commentaires et espace lecteurs

Le système de commentaires de QuietCMS repose sur un compte lecteur. Les visiteurs qui souhaitent commenter créent un compte avec email et mot de passe (haché bcrypt coût 11). L'authentification lecteur est strictement séparée de l'authentification administrateur — un compte lecteur n'a aucun accès au back-office.

La file de modération permet à l'administrateur (ou à l'auteur de l'article) de valider, refuser ou marquer comme spam chaque commentaire avant publication. Un mode d'approbation automatique est disponible pour les sites dont les auteurs ont bâti une communauté de confiance. Un système de notification par email prévient les auteurs à chaque nouveau commentaire sur leurs articles.

Maîtriser le back-office QuietCMS

Les articles de cette catégorie couvrent chaque aspect de l'édition de contenu dans QuietCMS. Voici quelques conseils pratiques pour tirer le meilleur parti du back-office au quotidien.

Organiser le contenu avec les catégories hiérarchiques

Les catégories de QuietCMS supportent une structure parent–enfant illimitée. Une catégorie enfant hérite des métadonnées SEO de sa catégorie parente si aucune valeur spécifique n'est définie — ce qui évite la duplication de méta-descriptions génériques pour des sous-catégories à faible volume de contenu. Pensez à définir des slugs courts et stables dès le départ : les URLs de catégorie participent au SEO, et les changer après indexation nécessite des redirections 301.

Utiliser head_extra pour les CSS spécifiques aux pages

Plutôt que d'alourdir le style.css du thème avec des styles qui ne concernent qu'une seule page, utilisez le champ head_extra pour injecter un bloc <style> spécifique. Cette approche garde le CSS global léger et évite les effets de bord entre pages. Le champ footer_extra permet le même pattern pour les scripts JavaScript de page.

Planifier la publication à l'avance

La fonctionnalité de publication planifiée permet de préparer plusieurs articles à l'avance et de configurer leur mise en ligne à des horaires optimaux (généralement le mardi-jeudi, 9h-11h pour un public professionnel BtoB). Les articles planifiés sont traités automatiquement au prochain chargement du site après la date configurée — il n'y a pas de cron PHP à configurer, mais le premier visiteur après l'heure prévue déclenchera la publication.

Gérer les médias efficacement

Adoptez une convention de nommage cohérente pour vos médias avant l'upload — les noms sont slugifiés automatiquement mais un nom descriptif reste plus facile à retrouver dans la bibliothèque. Pour les images à la une, dimensionnez-les à une taille raisonnable avant upload (2000px de large maximum) — QuietCMS ne redimensionne pas automatiquement les images, mais les convertit en WebP. Une image de 6 Mo uploadée resterait 6 Mo en WebP.

Rôles et délégation

Si votre site a plusieurs auteurs, créez des comptes de type Auteur plutôt qu'Administrateur. Un Auteur peut publier, éditer ses articles et gérer les médias — mais il ne peut pas modifier les paramètres système, changer de thème, installer des plugins ou accéder aux données des autres utilisateurs. Cette séparation des rôles limite l'impact d'une compromission de compte auteur sur l'ensemble du site.

Un balisage propre, gage de pérennité

L'éditeur de QuietCMS produit un HTML sobre et structuré, sans la profusion de balises superflues que génèrent certains éditeurs visuels. Cette propreté n'est pas qu'une question d'élégance : un contenu balisé proprement se rend plus vite, s'adapte mieux aux changements de thème et se prête à la migration. Les titres respectent une hiérarchie logique — un seul H1 par document, des H2 et H3 pour la structure — ce qui sert à la fois la lisibilité, l'accessibilité et le référencement, puisque les moteurs de recherche s'appuient sur cette hiérarchie pour comprendre l'organisation d'une page.

Parce que le contenu est stocké tel quel dans des fichiers JSON, ce qui est écrit est exactement ce qui est conservé. Il n'y a pas de transformation opaque entre l'édition et le stockage, pas de format propriétaire intermédiaire. Un administrateur peut, s'il le souhaite, ouvrir le fichier d'un article et lire son contenu directement, ce qui garantit que le texte produit reste accessible et réutilisable indépendamment de l'outil qui l'a créé.

Champs SEO intégrés au flux d'écriture

Le référencement ne devrait pas être une étape séparée que l'on oublie. Dans QuietCMS, chaque page et chaque article expose, à côté du corps de texte, des champs dédiés : méta-description, titre social, image de partage Open Graph et son texte alternatif, balise canonique. Ces champs sont renseignés au moment de la rédaction, dans le même écran, ce qui ancre la pratique SEO dans le geste éditorial plutôt que de la reléguer à une tâche ultérieure souvent négligée.

Un indicateur visuel accompagne la saisie de la méta-description en signalant si sa longueur est trop courte, idéale ou trop longue pour l'affichage dans les résultats de recherche. Ce retour immédiat aide le rédacteur à calibrer son texte pour maximiser le taux de clic, sans avoir à mémoriser les seuils recommandés. L'objectif est de rendre les bonnes pratiques évidentes et atteignables, plutôt que de compter sur la discipline de chacun.

Images responsives et texte alternatif automatique

Lorsqu'une image est insérée dans un contenu, QuietCMS ne se contente pas de l'afficher : il prépare des variantes adaptées aux différentes tailles d'écran et génère les attributs nécessaires pour que le navigateur télécharge la version la plus appropriée. Cette responsivité réduit le poids des pages sur mobile et améliore les indicateurs de performance, sans intervention manuelle de la part du rédacteur.

L'attribut alternatif, essentiel à l'accessibilité et au référencement des images, bénéficie d'un mécanisme de repli intelligent. Si le rédacteur ne renseigne pas d'attribut alt au téléversement, QuietCMS détermine automatiquement une valeur à partir du premier titre du document, garantissant qu'aucune image ne reste totalement dépourvue de description. Le rédacteur conserve évidemment la possibilité de saisir un texte alternatif spécifique, plus précis, mais le système assure un filet de sécurité par défaut.

Aperçu, planification et relecture

Avant publication, un contenu peut être prévisualisé tel qu'il apparaîtra réellement, dans le thème actif, ce qui évite les mauvaises surprises de mise en forme. Couplée aux trois états de publication — publié, brouillon, planifié — cette prévisualisation structure un flux de relecture sain : on rédige en brouillon, on prévisualise, on corrige, puis on programme la mise en ligne à la date voulue. La planification est particulièrement utile pour les rédactions qui préparent leur contenu à l'avance et souhaitent étaler les publications dans le temps.

Cette mécanique transforme l'édition en processus maîtrisé plutôt qu'en publication précipitée. Chaque contenu suit un cycle clair, visible depuis les listes d'articles et de pages, où les états sont distingués visuellement. Aucun article ne reste bloqué par inadvertance, et aucune publication programmée ne passe inaperçue.

Le contenu structuré au service de l'accessibilité

Produire un contenu accessible n'est pas une contrainte supplémentaire mais une conséquence naturelle d'un balisage propre. La hiérarchie correcte des titres permet aux technologies d'assistance de naviguer dans une page, les attributs alternatifs décrivent les images aux personnes qui ne les voient pas, et la sobriété du HTML évite les pièges d'accessibilité que créent les structures trop complexes. QuietCMS oriente le rédacteur vers ces bonnes pratiques par défaut, en intégrant l'accessibilité dans l'outil plutôt qu'en la présentant comme une option avancée.

Le bénéfice est double : un site accessible touche un public plus large, y compris les personnes en situation de handicap, et il est mieux compris par les moteurs de recherche, qui valorisent les contenus correctement structurés. En faisant de la qualité du balisage le comportement par défaut, l'éditeur de QuietCMS réconcilie confort de rédaction, accessibilité et référencement dans un même geste.

Médias, formulaires et interactions sans dépendance

L'expérience d'édition de QuietCMS couvre l'ensemble du cycle de vie d'un contenu sans recourir à des services externes. La bibliothèque de médias gère le téléversement, la conversion en WebP et le remplacement des originaux dans les contenus ; le constructeur de formulaires permet de créer des formulaires de contact ou de collecte sans écrire de code, et stocke chaque réponse de façon consultable depuis le back-office ; l'espace commentaires offre aux lecteurs un moyen de réagir, avec une modération centralisée et un échappement systématique des messages.

Cette intégration native a une vertu rarement soulignée : elle évite la dispersion des données entre plusieurs prestataires. Les réponses de formulaires, les commentaires et les médias résident dans le même périmètre que le reste du site, sous le contrôle direct de l'administrateur. Aucune donnée de visiteur n'est confiée à un tiers, ce qui simplifie la conformité réglementaire et renforce la maîtrise éditoriale. L'éditeur de QuietCMS n'est donc pas qu'un traitement de texte enrichi : c'est un environnement de production de contenu complet, cohérent et autosuffisant.