{# # PAGE: SLIDIA — RÉDACTION MANUELLE : TITRE ET MASQUE # Troisième voie de la page de choix. Aucune IA, aucun token : on nomme la présentation, on # choisit le masque qui fournira les mises en page, et l'éditeur s'ouvre sur une présentation # vide. # # DONNÉES REQUISES (SlidiaController::manual) : templates, lastUsedTemplateId. # # Avant, cette voie créait la présentation sur un simple GET, sans rien demander : le titre # était générique et le masque absent — donc aucune mise en page à proposer dans l'éditeur. #} {% extends 'base.html.twig' %} {% block title %}Nouvelle présentation — Slidia{% endblock %} {% block meta_description %}Créez une présentation Slidia vide et composez-la vous-même, slide par slide.{% endblock %} {% block body %} {% set sdColor = tool_color_details['slidia'] %} {% set sdRgb = sdColor.primary|hex_to_rgb %} {# Recoloration en ambre sur CE conteneur racine — les composants partagés sont écrits sur les variables de thème, jamais sur une couleur en dur. #}
{% include '_atoms/icon/icon.html.twig' with { name: 'edit', size: 'xl', colorPrimary: 'current', colorSecondary: 'current' } only %}

Composez vous-même

Nommez votre présentation et choisissez son masque : l'éditeur fera le reste.

{# Même identifiant de jeton que les autres créations Slidia : `createManual()` l'attend sous ce nom. Cette action écrit en base, elle ne peut pas se déclencher sur un GET. #}
Masques Aucun masque sélectionné
{% if templates is empty %}

Aucun masque disponible

Importez un modèle .pptx depuis votre bibliothèque : sans masque, l'éditeur n'a aucune mise en page à proposer.

{% else %}
{# `withActions: false` est obligatoire : la gestion des masques vit dans la bibliothèque, pas ici, et ce contrôleur n'a aucune des méthodes que le menu ⋯ appellerait. #} {% for template in templates %} {% set cardAccent = template.accentColor ?? sdColor.primary %} {% include '_molecules/slidia-template-card/slidia-template-card.html.twig' with { id: template.id, name: template.name, layoutCount: template.layouts|length, thumbnailsReady: template.isThumbnailsReady, accentColor: cardAccent, accentRgb: cardAccent|hex_to_rgb, layoutNames: template.layouts|map(l => l.name), layoutPaths: template.layouts|map(l => l.path), loopIndex: loop.index0, isSystem: template.isSystem, withActions: false, controller: 'slidia--configure' } only %} {% endfor %}
{% endif %}

Aucun token n'est consommé : rien n'est généré.

{# Navigation : sous la carte, nue sur le fond de page — même molécule que les autres écrans. Elle reste dans le : c'est elle qui porte le bouton de soumission. #} {% include '_molecules/step-nav/step-nav.html.twig' with { class: 'pt-8', back: { href: path('app_slidia_new') }, next: { label: "Ouvrir l'éditeur", type: 'submit', disabled: true, gradientFrom: sdColor.primary, gradientTo: sdColor.secondary, attr: { 'data-slidia--configure-target': 'submitBtn' } } } only %}
{% endblock %}