{# Widget « Fiches de jeux » — cartes produit avec caractéristiques. Le widget « Cartes » générique sait montrer une image, un titre et un texte, mais un catalogue de jeux (ou d'ateliers, de séjours, de formations) se décide sur des critères courts et comparables : nombre de joueurs, âge, durée, prix, disponibilité. Noyés dans un paragraphe, ces critères ne se comparent plus d'une carte à l'autre. Ils ont donc ici leur propre rangée de pastilles, et la disponibilité se lit sur l'image avant même le titre. #} {% set games = games|default([]) %} {% if games|length > 0 %} {% set ratioMap = {'4-3': '4 / 3', '3-2': '3 / 2', '1-1': '1 / 1', '3-4': '3 / 4', '16-9': '16 / 9'} %} {% set ratio = ratioMap[imageRatio]|default('4 / 3') %}
{% for game in games %} {% set status = game.status|default('none') %} {% set statusLabel = game.statusLabel|default({ 'available': 'Disponible', 'soon': 'Bientôt disponible', 'development': 'En développement', 'soldout': 'Épuisé' }[status]|default('')) %} {% set specs = game.specs|default([])|filter(s => s.label|default('') is not empty) %} {% set link = game.buttonUrl|default('') %}
{% if game.image|default('') %}
{{ game.imageAlt|default(game.title|default('')) }} {% if statusLabel %} {{ statusLabel }} {% endif %}
{% endif %}
{% if game.tagline|default('') %}

{{ game.tagline }}

{% endif %} {% if game.title|default('') %}

{% if link %} {{ game.title }} {% else %} {{ game.title }} {% endif %}

{% endif %} {% if specs|length > 0 %} {# Une liste, pas une suite de : les caractéristiques forment un ensemble que les lecteurs d'écran annoncent alors comme tel, avec son nombre d'éléments. #}
    {% for spec in specs %}
  • {% if spec.icon|default('') %} {% endif %} {{ spec.label }}
  • {% endfor %}
{% endif %} {% if game.description|default('') %}
{{ game.description|raw }}
{% endif %}
{% endfor %}
{% else %}

Aucun jeu configuré.

{% endif %}