{{ form_start(form, {'attr': {'id': 'article-form', 'novalidate': 'novalidate', 'class': 'adm-article-form'}}) }}
{# ── Colonne principale ── #}

Contenu de l'article

{{ form_widget(form.title) }}
{{ form_errors(form.title) }}
{{ form_widget(form.slug) }} {{ form_help(form.slug) }}
{{ form_errors(form.slug) }}
{{ form_widget(form.excerpt) }} {{ form_help(form.excerpt) }}
{{ form_errors(form.excerpt) }}
{{ form_widget(form.metaTitle) }} {{ form_help(form.metaTitle) }}
{{ form_errors(form.metaTitle) }}
{{ form_widget(form.metaDescription) }} {{ form_help(form.metaDescription) }}
{{ form_errors(form.metaDescription) }}

HTML brut — commencer par <p>, sans <h1>. Inclure un <nav class="tca-article-toc"> après l'intro et les <h2 id="..."> pour la table des matières.

{{ form_widget(form.content) }}
{{ form_errors(form.content) }}
{# ── FAQ (texte simple → accordéon + JSON-LD FAQPage) ── #} {% set faq_prototype %}{% include 'admin/article/_faq_row.html.twig' with {row: form.faq.vars.prototype} only %}{% endset %}

FAQ de l'article

3 à 5 questions, réponses de 40 à 80 mots, en texte simple — aucun HTML à coller. L'accordéon et le JSON-LD FAQPage sont générés automatiquement, avec les mêmes classes que les pages services. Questions à reprendre de docs/faq.md.

{% for row in form.faq %} {% include 'admin/article/_faq_row.html.twig' with {row: row} only %} {% endfor %}

Aucune question pour l'instant. L'article s'affichera sans section FAQ.

{{ form_errors(form.faq) }}

Image à la une

Image à la une
Glissez ou cliquez pour charger
{{ form_widget(form.imageUrl) }} {{ form_help(form.imageUrl) }}
{{ form_errors(form.imageUrl) }}
{{ form_widget(form.imageAlt) }}
{{ form_errors(form.imageAlt) }}
{# ── Colonne latérale ── #}

Publication

{{ form_widget(form.publishedAt) }}
{{ form_errors(form.publishedAt) }}
{{ form_widget(form.isPublished) }}
{{ form_help(form.isPublished) }}
{{ form_errors(form.isPublished) }}

Relecture TCA

{{ form_widget(form.reviewNotes) }} {{ form_help(form.reviewNotes) }}
{{ form_errors(form.reviewNotes) }}

Classification

{{ form_widget(form.category) }}
{{ form_errors(form.category) }}
{{ form_widget(form.pillarRouteName) }}
{{ form_errors(form.pillarRouteName) }}

Auteur

Laisser vide jusqu'à confirmation avec TCA (cf. client.md §8).

{{ form_widget(form.authorName) }}
{{ form_errors(form.authorName) }}
{{ form_widget(form.authorRole) }}
{{ form_errors(form.authorRole) }}
Annuler
{{ form_end(form) }} {# ── Crop modal ── #}

Recadrer l'image

{# ── Lightbox ── #}