Initial commit

This commit is contained in:
2026-05-12 23:33:46 +02:00
commit ccf32dcece
104 changed files with 17439 additions and 0 deletions

21
templates/404.twig Normal file
View File

@@ -0,0 +1,21 @@
{% extends "base.twig" %}
{% block content %}
<div class="full-block hero-header" style="min-height: 300px;">
<div class="hero-content">
<p class="error-404__code">404</p>
<p class="error-404__title">
{{ current_language == 'en' ? 'Page not found' : 'Page introuvable' }}
</p>
<h1 style="font-size: 1.2rem; margin-top: 1rem;">
{{ current_language == 'en'
? 'The page you are looking for does not exist or has been moved.'
: "La page que vous cherchez n'existe pas ou a été déplacée." }}
</h1>
<a href="{{ function('home_url', '/') }}" class="link-button">
{{ current_language == 'en' ? '← Back to home' : "← Retour à l'accueil" }}
</a>
</div>
<div id="sketch"></div>
</div>
{% endblock %}

181
templates/author.twig Normal file
View File

@@ -0,0 +1,181 @@
{% extends "base.twig" %}
{% block content %}
<div class="article category--le-laboratoire">
<div class="full-block">
<div class="category-header-top">
<nav class="breadcrumb" aria-label="Fil d'Ariane">
<a href="{{ function('home_url', '/') }}">{{ current_language == 'en' ? 'Home' : 'Accueil' }}</a>
<span class="breadcrumb__separator">&rarr;</span>
<a class="breadcrumb__cat" href="{{ current_language == 'en' ? function('home_url', '/en/le-laboratoire/') : function('home_url', '/le-laboratoire/') }}">{{ current_language == 'en' ? 'The department' : 'Le laboratoire' }}</a>
<span class="breadcrumb__separator">&rarr;</span>
<a class="breadcrumb__cat" href="{{ current_language == 'en' ? function('home_url', '/en/membres/') : function('home_url', '/membres/') }}">{{ current_language == 'en' ? 'Lab members' : 'Membres du laboratoire' }}</a>
</nav>
{% if author_edit_link %}
<a href="{{ author_edit_link }}" class="link-button" target="_blank" rel="noopener">
<i class="iconoir-edit-pencil"></i>{{ current_language == 'en' ? 'Edit profile' : 'Éditer le profil' }}
</a>
{% endif %}
</div>
{% if author.avatar_url %}
<div class="author-header">
<div class="author-avatar">
<img src="{{ author.avatar_url }}" alt="{{ author.display_name }}">
</div>
<div class="author-identity">
<h2><p>{{ author.display_name }}</p></h2>
{% if author.role_label or author.role_complement or author.affiliation %}
<p class="author-role">
{{ author.role_label }}{% if author.role_complement %} {{ author.role_complement }}{% if author.affiliation %},{% endif %}{% endif %}{% if author.affiliation %} {{ author.affiliation }}{% endif %}
</p>
{% endif %}
<p class="maj">{{ current_language == 'en' ? 'Updated on' : 'Mis à jour le' }} {{ author.user_since }}</p>
</div>
</div>
{% endif %}
<div class="article-content">
{% if author.email or author.liens_externes or author.documents or author.hal_publications_url %}
<div class="sidebar">
<div class="sidebar-container">
<div class="sidebar-section">
{% if author.email %}
<a href="mailto:{{ author.email }}" class="link-button"><i class="iconoir-mail"></i>{{ author.email }}</a>
{% endif %}
{% for doc in author.documents %}
<a href="{{ doc.url }}" class="link-button{% if ' ' in doc.title %} link-button--wrap-word{% endif %}" target="_blank" rel="noopener"><i class="iconoir-page"></i>{{ doc.title }}</a>
{% endfor %}
{% for lien in author.liens_externes %}
<a href="{{ lien.url }}" class="link-button{% if ' ' in lien.titre %} link-button--wrap-word{% endif %}" target="_blank" rel="noopener"><i class="iconoir-open-new-window"></i>{{ lien.titre }}</a>
{% endfor %}
{% if author.hal_publications_url %}
<a href="{{ author.hal_publications_url }}" class="link-button link-button--wrap-word" target="_blank" rel="noopener"><i class="iconoir-open-new-window"></i>Publications HAL</a>
{% endif %}
</div>
</div>
</div>
{% endif %}
<div class="main-content-text">
{% if not author.avatar_url %}
<div class="author-identity">
<h2><p>{{ author.display_name }}</p></h2>
{% if author.role_label or author.role_complement or author.affiliation %}
<p class="author-role">
{{ author.role_label }}{% if author.role_complement %} {{ author.role_complement }}{% if author.affiliation %},{% endif %}{% endif %}{% if author.affiliation %} {{ author.affiliation }}{% endif %}
</p>
{% endif %}
<p class="maj">{{ current_language == 'en' ? 'Updated on' : 'Mis à jour le' }} {{ author.user_since }}</p>
</div>
{% endif %}
{% if current_language == 'en' and author.bio_en %}
<div class="author-bio">{{ author.bio_en|raw }}</div>
{% elseif author.bio %}
<div class="author-bio">{{ author.bio|raw }}</div>
{% endif %}
{% if author.domaines_tags %}
<p class="article-field mots-cles">
<span class="inline-title">{{ current_language == 'en' ? 'Research areas' : 'Domaines de recherches' }} :</span>
{% for tag in author.domaines_tags %}
<a href="{{ tag.url }}" class="keyword-link">{{ tag.name }}</a>{% if not loop.last %}, {% endif %}
{% endfor %}
</p>
{% endif %}
{% if current_language == 'en' and author.domaines_en %}
<div class="article-field domaines-autres">
{% if not author.domaines_tags %}<span class="inline-title">Research areas :</span>{% endif %}
{{ author.domaines_en|raw }}
</div>
{% elseif author.domaines %}
<div class="article-field domaines-autres">
{% if not author.domaines_tags %}<span class="inline-title">{{ current_language == 'en' ? 'Research areas' : 'Domaines de recherches' }} :</span>{% endif %}
{{ author.domaines|raw }}
</div>
{% endif %}
{% if current_language == 'en' and author.recherches_en %}
<div class="article-field recherches-en-cours">
<span class="inline-title">Current research :</span>
{{ author.recherches_en|raw }}
</div>
{% elseif author.recherches %}
<div class="article-field recherches-en-cours">
<span class="inline-title">{{ current_language == 'en' ? 'Current research' : 'Recherches en cours' }} :</span>
{{ author.recherches|raw }}
</div>
{% endif %}
{% if author.axes %}
<p class="article-field mots-cles">
<span class="inline-title">{{ current_language == 'en' ? 'Thematic axes' : 'Axes thématiques' }} :</span>
{% for axe in author.axes %}
<a href="{{ axe.url }}" class="keyword-link">{{ axe.name }}</a>{% if not loop.last %}, {% endif %}
{% endfor %}
</p>
{% endif %}
{% if author.titre_these or author.resume_these or author.resume_these_en %}
<section class="seances-section">
<h3>{{ current_language == 'en' ? 'Thesis' : 'Thèse' }}</h3>
{% if author.titre_these %}
<p class="author-titre-these">{{ author.titre_these }}</p>
{% endif %}
{% if author.date_soutenance %}
<p class="article-field">
<span class="these-inline-title">{{ current_language == 'en' ? 'Defended in' : 'Soutenue en' }} </span>
{{ author.date_soutenance }}
</p>
{% endif %}
{% if author.directeur_thalim or author.autre_directeur %}
<p class="article-field">
<span class="these-inline-title">{{ current_language == 'en' ? 'Supervisor' : 'Direction' }} :</span>
{% if author.directeur_thalim %}
<a href="{{ author.directeur_thalim.url }}">{{ author.directeur_thalim.name }}</a>{% if author.autre_directeur %}, {% endif %}
{% endif %}
{% if author.autre_directeur %}{{ author.autre_directeur }}{% endif %}
</p>
{% endif %}
{% if current_language == 'en' and author.resume_these_en %}
<div class="author-resume-these">{{ author.resume_these_en|raw }}</div>
{% elseif author.resume_these %}
<div class="author-resume-these">{{ author.resume_these|raw }}</div>
{% endif %}
</section>
{% endif %}
{% if author_posts %}
<div class="author-posts-section">
{% for group in author_posts %}
<div class="author-posts-item">
<h3 class="author-posts-header" data-seance-toggle>
{{ group.cat_name }}
<i class="iconoir-nav-arrow-down author-posts-chevron"></i>
</h3>
<div class="author-posts-content" style="display: none;">
<div class="author-post-grid">
{% for post in group.posts %}
{% include 'partials/post-card.twig' with {
post: post,
card: group.cards[post.ID],
show_category: false
} %}
{% endfor %}
</div>
</div>
</div>
{% endfor %}
</div>
{% endif %}
</div>
</div>
</div>
</div>
{% endblock %}

21
templates/base.twig Normal file
View File

@@ -0,0 +1,21 @@
<!DOCTYPE html>
<html {{ site.language_attributes }}>
<head>
<meta charset="{{ site.charset }}">
<meta name="viewport" content="width=device-width, initial-scale=1">
{{ function('wp_head') }}
</head>
<body class="{{ body_class }}">
{% include 'partials/header.twig' %}
<main>
<div class="container">
{% block content %}{% endblock %}
</div>
</main>
{% include 'partials/footer.twig' %}
{{ function('wp_footer') }}
</body>
</html>

132
templates/category.twig Normal file
View File

@@ -0,0 +1,132 @@
{% extends "base.twig" %}
{% block content %}
<main class="category-archive">
<div class="container">
<div class="full-block category--{{ parent_slug }}">
<header class="category-header">
<div class="category-header-top">
<nav class="breadcrumb" aria-label="Fil d'Ariane">
<a href="{{ function('home_url', '/') }}">{{ current_language == 'en' ? 'Home' : 'Accueil' }}</a>
{% if not is_parent and category.parent %}
<span class="breadcrumb__separator">&rarr;</span>
<a class="breadcrumb__cat" href="{{ function('get_category_link', category.parent) }}">{{ function('thalim_cat_name', category.parent) }}</a>
<span class="breadcrumb__separator">&rarr;</span>
<a class="breadcrumb__cat" href="{{ function('get_category_link', category.term_id) }}"><span class="breadcrumb__current">{{ category|cat_name }}</span></a>
{% elseif is_direct %}
<span class="breadcrumb__separator">&rarr;</span>
<a class="breadcrumb__cat" href="{{ function('get_category_link', category.term_id) }}">{{ category|cat_name }}</a>
<span class="breadcrumb__separator">&rarr;</span>
<span class="breadcrumb__current">{{ current_language == 'en' ? 'Other' : 'Autre' }}</span>
{% else %}
<span class="breadcrumb__separator">&rarr;</span>
<a class="breadcrumb__cat" href="{{ function('get_category_link', category.term_id) }}"><span class="breadcrumb__current">{{ category|cat_name }}</span></a>
{% endif %}
</nav>
<a href="{{ agenda_toggle_url }}" class="link-button agenda-toggle-btn">
{% if view_mode == 'agenda' %}
<i class="iconoir-view-grid"></i>{{ current_language == 'en' ? 'Switch to grid view' : 'Passer à la vue grille' }}
{% else %}
<i class="iconoir-calendar"></i>{{ current_language == 'en' ? 'Switch to agenda view' : 'Passer à la vue agenda' }}
{% endif %}
</a>
</div>
<h1 class="category-header__title">
{%- if is_direct -%}
{{ current_language == 'en' ? 'Other' : 'Autres' }} {{ (category|cat_name)|lower }}
{%- else -%}
{{ category|cat_name }}
{%- endif -%}
</h1>
{% if term_presentation %}
<div class="taxonomy-description">{{ term_presentation|raw }}</div>
{% endif %}
</header>
{% include 'partials/category-filters.twig' %}
<div id="grid-sections"{% if view_mode == 'agenda' %} style="display:none"{% endif %}>
{% if is_parent %}
{% for subcategory in subcategories %}
{% if subcategory.posts is not empty %}
<section class="subcategory-section">
<h2 class="subcategory-section__title">{{ subcategory.term|cat_name }}</h2>
<div class="post-grid">
{% for post in subcategory.posts %}
{% include 'partials/post-card.twig' with { post: post, card: cards[post.ID], show_category: true, type_only: true } %}
{% endfor %}
</div>
<div class="category-section-footer">
{% if current_language == 'en' %}
<a href="{{ subcategory.term.link }}" class="link-button"><i class="iconoir-plus-circle"></i>See all {{ (subcategory.term|cat_name)|lower }}</a>
{% else %}
{% set is_fem = subcategory.term.description == 'f' %}
<a href="{{ subcategory.term.link }}" class="link-button"><i class="iconoir-plus-circle"></i>Voir {{ is_fem ? 'toutes les' : 'tous les' }} {{ (subcategory.term|cat_name)|lower }}</a>
{% endif %}
</div>
</section>
{% endif %}
{% endfor %}
{% if direct_posts is defined and direct_posts is not empty %}
<section class="subcategory-section">
<h2 class="subcategory-section__title">{{ current_language == 'en' ? 'Other' : 'Autres' }}</h2>
<div class="post-grid">
{% for post in direct_posts %}
{% include 'partials/post-card.twig' with { post: post, card: cards[post.ID], show_category: true, type_only: true } %}
{% endfor %}
</div>
<div class="category-section-footer">
{% if current_language == 'en' %}
<a href="{{ autres_link }}" class="link-button"><i class="iconoir-plus-circle"></i>See all other {{ (category|cat_name)|lower }}</a>
{% else %}
<a href="{{ autres_link }}" class="link-button"><i class="iconoir-plus-circle"></i>Voir toutes les autres {{ (category|cat_name)|lower }}</a>
{% endif %}
</div>
</section>
{% endif %}
{% else %}
<section class="subcategory-section">
<div class="post-grid" id="post-grid">
{% for post in posts %}
{% include 'partials/post-card.twig' with { post: post, card: cards[post.ID], show_category: true, type_only: true } %}
{% endfor %}
</div>
<div id="scroll-sentinel"
data-category="{{ category_id }}"
data-axe="{{ active_axe }}"
data-date-from="{{ active_date_from }}"
data-date-to="{{ active_date_to }}"></div>
<div id="scroll-spinner" class="scroll-spinner" style="display: none;">
<div class="scroll-spinner__dot"></div>
<div class="scroll-spinner__dot"></div>
<div class="scroll-spinner__dot"></div>
</div>
</section>
{% endif %}
</div>
{# Agenda view — shared by parent and leaf categories #}
<div class="agenda-view-container{% if view_mode == 'agenda' %} is-active{% endif %}"
id="agenda-view"
data-category="{{ category_id }}"
data-include-children="{{ agenda_include_children }}"
data-axe="{{ active_axe }}"
data-date-from="{{ active_date_from }}"
data-date-to="{{ active_date_to }}">
<h2 class="agenda-view-title">Agenda</h2>
<div class="agenda-swiper-wrap">
<button class="agenda-swiper-prev" aria-label="{{ current_language == 'en' ? 'Previous' : 'Précédent' }}"><i class="iconoir-arrow-left"></i></button>
<div class="swiper agenda-swiper">
<div class="swiper-wrapper" id="agenda-swiper-wrapper"></div>
</div>
<button class="agenda-swiper-next" aria-label="{{ current_language == 'en' ? 'Next' : 'Suivant' }}"><i class="iconoir-arrow-right"></i></button>
</div>
<div id="agenda-spinner" class="scroll-spinner" style="display:none;">
<div class="scroll-spinner__dot"></div>
<div class="scroll-spinner__dot"></div>
<div class="scroll-spinner__dot"></div>
</div>
</div>
</div>
</div>
</main>
{% endblock %}

135
templates/index.twig Normal file
View File

@@ -0,0 +1,135 @@
{% extends "base.twig" %}
{% block content %}
<div class="full-block hero-header">
<div class="hero-content">
<div class="hero-logos">
<a href="https://www.cnrs.fr/" target="_blank">
<img src="{{ theme.uri }}/assets/images/cnrs.png" alt="Logo CNRS">
</a>
<a href="https://www.sorbonne-nouvelle.fr/" target="_blank">
<img src="{{ theme.uri }}/assets/images/sorbonne.png" alt="Logo Sorbonne Nouvelle">
</a>
<a href="https://www.ens.psl.eu/" target="_blank">
<img src="{{ theme.uri }}/assets/images/ens.png" alt="Logo ENS">
</a>
</div>
<p class="hero-presentation">
{{ gc.presentation }}
</p>
<p class="hero-presentation-detail">
{{ gc.presentation_detail }}
</p>
<a href="{{ current_language == 'en' ? function('home_url', '/en/le-laboratoire/') : function('home_url', '/le-laboratoire/') }}" class="link-button">
{{ current_language == 'fr' ? 'En savoir plus' : 'Learn more' }}
</a>
</div>
<div id="sketch"></div>
</div>
{% include 'partials/swiper-section.twig' with {
section_posts: annonces,
section_cards: annonces_cards,
section_title: current_language == 'en' ? 'Announcements' : 'Annonces',
all_link: annonces_link,
all_label: current_language == 'en' ? 'All announcements' : 'Toutes les annonces'
} %}
{% if messages_labo or agenda_items %}
<section class="message-agenda-section">
{% if messages_labo %}
<div class="message-du-labo">
<div class="section-title">
<p>{{ current_language == 'en' ? 'Laboratory messages' : 'Messages du laboratoire' }}</p>
</div>
<div class="messages-list">
{% for message in messages_labo %}
<div class="message-item">
<time class="message-date" datetime="{{ message.date('Y-m-d') }}">{{ message.date('d/m/Y') }}</time>
<div class="message-content">
{{ message.content | raw }}
<a href="{{ message.link | en_url }}" class="message-read-more">
{{ current_language == 'en' ? 'Read more' : 'Lire la suite' }}
</a>
</div>
</div>
{% endfor %}
</div>
<div class="button-messages">
<a href="{{ message_labo_link }}" class="link-button">
{{ current_language == 'en' ? 'All laboratory messages' : 'Tous les messages du laboratoire' }}
</a>
</div>
</div>
{% endif %}
{% if agenda_items %}
<div class="agenda">
<div class="section-title">
<p>{{ current_language == 'en' ? 'Upcoming' : 'À venir' }}</p>
</div>
<div class="agenda-content">
{% for item in agenda_items %}
<a href="{{ item.link | en_url }}" class="agenda-item">
<div class="date-container">
<p>{% if item.day == 1 %}1<sup>{{ current_language == 'en' ? 'st' : 'er' }}</sup>{% else %}{{ item.day }}{% endif %}</p>
<p>{{ item.month }}</p>
</div>
<div class="event-content">
<div class="meta">
{% if item.type_label %}<p>{{ item.type_label }}</p>{% endif %}
{% if item.lieu %}<p>{{ item.lieu }}</p>{% endif %}
</div>
<div class="event-title">
<p>{{ item.post.title | bilingual(current_language) }}</p>
</div>
</div>
</a>
{% endfor %}
</div>
<div class="button-agenda">
<a href="{{ manifestations_link }}" class="link-button">
{{ current_language == 'en' ? 'All events' : 'Tous les événements' }}
</a>
</div>
</div>
{% endif %}
</section>
{% endif %}
{% include 'partials/swiper-section.twig' with {
section_posts: publications,
section_cards: publications_cards,
section_title: current_language == 'en' ? 'Books & journals' : 'Ouvrages et Revues',
all_link: publications_link,
all_label: current_language == 'en' ? 'All publications' : 'Toutes les publications'
} %}
{% if has_tags %}
<section class="keyword-cloud">
<div id="keyword-container"></div>
</section>
{% endif %}
<div class="quick-links">
<ul>
<li>
<a href="{{ quick_links.agenda }}">
<p>Agenda</p>
<i class="iconoir-calendar"></i>
</a>
</li>
<li>
<a href="{{ quick_links.contacts }}">
<p>Contacts</p>
<i class="iconoir-mail"></i>
</a>
</li>
<li>
<a href="{{ quick_links.newsletter }}">
<p>Newsletter</p>
<i class="iconoir-message-text"></i>
</a>
</li>
</ul>
</div>
{% endblock %}

View File

@@ -0,0 +1,43 @@
{% extends "base.twig" %}
{% block content %}
<main class="category-archive">
<div class="container">
<div class="full-block">
<header class="category-header">
<div class="category-header-top">
<nav class="breadcrumb" aria-label="Fil d'Ariane">
<a href="{{ function('home_url', '/') }}">{{ current_language == 'en' ? 'Home' : 'Accueil' }}</a>
<span class="breadcrumb__separator">&rarr;</span>
<span class="breadcrumb__current">{{ current_language == 'en' ? 'Announcements' : 'Annonces' }}</span>
</nav>
</div>
<h1 class="category-header__title">{{ current_language == 'en' ? 'Announcements' : 'Annonces' }}</h1>
</header>
{% include 'partials/category-filters.twig' %}
<section class="subcategory-section">
<div class="post-grid" id="post-grid">
{% for post in posts %}
{% include 'partials/post-card.twig' with { post: post, card: cards[post.ID], show_category: true } %}
{% endfor %}
</div>
<div id="scroll-sentinel"
data-exclude-cats="12,31"
data-filter-cat="{{ active_cat_id }}"
data-filter-autres="{{ filter_autres }}"
data-axe="{{ active_axe }}"
data-date-from="{{ active_date_from }}"
data-date-to="{{ active_date_to }}"></div>
<div id="scroll-spinner" class="scroll-spinner" style="display: none;">
<div class="scroll-spinner__dot"></div>
<div class="scroll-spinner__dot"></div>
<div class="scroll-spinner__dot"></div>
</div>
</section>
</div>
</div>
</main>
{% endblock %}

View File

@@ -0,0 +1,123 @@
{% extends "base.twig" %}
{% block content %}
<div class="article category--le-laboratoire">
<div class="full-block">
<div class="category-header-top">
<nav class="breadcrumb" aria-label="Fil d'Ariane">
<a href="{{ function('home_url', '/') }}">{{ current_language == 'en' ? 'Home' : 'Accueil' }}</a>
<span class="breadcrumb__separator">&rarr;</span>
<a class="breadcrumb__cat" href="{{ current_language == 'en' ? function('home_url', '/en/le-laboratoire/') : function('home_url', '/le-laboratoire/') }}">{{ current_language == 'en' ? 'The department' : 'Le laboratoire' }}</a>
<span class="breadcrumb__separator">&rarr;</span>
<span class="breadcrumb__current">{{ post.title | bilingual(current_language) }}</span>
</nav>
{% if page_edit_link %}
<a href="{{ page_edit_link }}" class="link-button" target="_blank" rel="noopener">
<i class="iconoir-edit-pencil"></i>{{ current_language == 'en' ? 'Edit page' : 'Éditer la page' }}
</a>
{% endif %}
</div>
<h2><p>{{ post.title | bilingual(current_language) }}</p></h2>
{% if images %}
<div class="labo-images">
{% for img in images %}
<figure class="labo-image">
<img src="{{ img.url }}" alt="{{ img.alt }}" loading="lazy">
{% if img.title %}
<figcaption>{{ img.title }}</figcaption>
{% endif %}
</figure>
{% endfor %}
</div>
{% endif %}
<div class="article-content">
{% if liens %}
<div class="sidebar">
<div class="sidebar-container">
<div class="sidebar-section">
{% for lien in liens %}
<a href="{{ lien.url }}" class="link-button">{{ lien.title }}</a>
{% endfor %}
</div>
</div>
</div>
{% endif %}
<div class="main-content-text">
{% if current_language == 'en' and body_en %}
{{ body_en|raw }}
{% else %}
{{ post.content }}
{% endif %}
{% if axes_groups %}
<div class="labo-dropdowns">
{% for group in axes_groups %}
<div class="labo-dropdown-item">
<h3 class="labo-dropdown-header" data-seance-toggle>
{{ group.label }}
<i class="iconoir-nav-arrow-down labo-dropdown-chevron"></i>
</h3>
<div class="labo-dropdown-content" style="display: none;">
<ul class="labo-axes-list">
{% for axe in group.terms %}
<li><a href="{{ axe.url }}">{{ axe.name | bilingual(current_language) }}</a></li>
{% endfor %}
</ul>
</div>
</div>
{% endfor %}
</div>
{% endif %}
{% if partenaires_internationaux or partenaires_nationaux %}
<section class="labo-section">
<h3>{{ current_language == 'en' ? 'Partner institutions' : 'Institutions partenaires' }}</h3>
<div class="labo-dropdowns">
{% if partenaires_internationaux %}
<div class="labo-dropdown-item">
<h4 class="labo-dropdown-header" data-seance-toggle>
{{ current_language == 'en' ? 'International partners' : 'Partenaires internationaux' }}
<i class="iconoir-nav-arrow-down labo-dropdown-chevron"></i>
</h4>
<div class="labo-dropdown-content" style="display: none;">
{{ partenaires_internationaux|raw }}
</div>
</div>
{% endif %}
{% if partenaires_nationaux %}
<div class="labo-dropdown-item">
<h4 class="labo-dropdown-header" data-seance-toggle>
{{ current_language == 'en' ? 'National partners' : 'Partenaires nationaux' }}
<i class="iconoir-nav-arrow-down labo-dropdown-chevron"></i>
</h4>
<div class="labo-dropdown-content" style="display: none;">
{{ partenaires_nationaux|raw }}
</div>
</div>
{% endif %}
</div>
</section>
{% endif %}
{% if bibliotheques %}
<section class="labo-section">
<h3>{{ current_language == 'en' ? 'Libraries' : 'Bibliothèques' }}</h3>
<div class="labo-bibliotheques">
{{ bibliotheques|raw }}
</div>
</section>
{% endif %}
</div>
</div>
</div>
</div>
{% endblock %}

107
templates/page-membres.twig Normal file
View File

@@ -0,0 +1,107 @@
{% extends "base.twig" %}
{% block content %}
<main class="category-archive">
<div class="container">
<div class="full-block category--le-laboratoire">
<header class="category-header">
<div class="category-header-top">
<nav class="breadcrumb" aria-label="Fil d'Ariane">
<a href="{{ function('home_url', '/') }}">{{ current_language == 'en' ? 'Home' : 'Accueil' }}</a>
<span class="breadcrumb__separator">&rarr;</span>
<a class="breadcrumb__cat" href="{{ current_language == 'en' ? function('home_url', '/en/le-laboratoire/') : function('home_url', '/le-laboratoire/') }}">{{ current_language == 'en' ? 'The department' : 'Le laboratoire' }}</a>
<span class="breadcrumb__separator">&rarr;</span>
<span class="breadcrumb__current">{{ current_language == 'en' ? 'Lab members' : 'Membres du laboratoire' }}</span>
</nav>
</div>
<h1 class="category-header__title">{{ current_language == 'en' ? 'Lab members' : 'Membres du laboratoire' }}</h1>
</header>
<div class="filters-bar">
<button class="filters-toggle-btn" id="membres-filters-toggle" aria-expanded="false">
{{ current_language == 'en' ? 'Filters' : 'Filtres' }}
<i class="iconoir-nav-arrow-down filters-chevron"></i>
</button>
<div class="filters-active-chips" id="membres-active-chips"></div>
</div>
<div class="category-filters" id="membres-filters">
<div class="filtre-role">
<div class="filter-section-header">
<p class="section-title">{{ current_language == 'en' ? 'Filter by status' : 'Filtrer par statut' }}</p>
<a href="#" class="date-reset-link" id="role-reset" style="display:none">
{{ current_language == 'en' ? 'Reset' : 'Réinitialiser' }}
</a>
</div>
<div class="filter-dd" id="filter-role-dd">
<div class="dd-title" id="filter-role-btn">
<p id="filter-role-label">{{ current_language == 'en' ? 'All statuses' : 'Tous les statuts' }}</p>
<i class="iconoir-nav-arrow-down"></i>
</div>
<div class="dd-content" id="filter-role-popover" style="display:none;">
<ul>
<li data-role="">{{ current_language == 'en' ? 'All statuses' : 'Tous les statuts' }}</li>
{% for role in filter_roles %}
<li data-role="{{ role.name }}">{{ role.name }}</li>
{% endfor %}
</ul>
</div>
</div>
</div>
<div class="filtre-recherche">
<div class="filter-section-header">
<p class="section-title">{{ current_language == 'en' ? 'Search a member' : 'Rechercher un membre' }}</p>
<a href="#" class="date-reset-link" id="search-reset" style="display:none">
{{ current_language == 'en' ? 'Reset' : 'Réinitialiser' }}
</a>
</div>
<input type="search" id="membres-search" class="membres-search-input"
placeholder="{{ current_language == 'en' ? 'Name…' : 'Nom…' }}"
autocomplete="off">
</div>
</div>
<section class="membres-section">
{% for group in groups %}
<div class="membres-item">
<h3 class="membres-header" data-seance-toggle>
{{ group.title }}
<i class="iconoir-nav-arrow-down membres-chevron"></i>
</h3>
<div class="membres-content" style="display: none;">
<table class="membres-table"{% if group.fixed_order %} data-fixed-order{% endif %}>
<thead>
<tr>
<th data-sort="nom">{{ current_language == 'en' ? 'Name' : 'Nom' }} <i class="iconoir-nav-arrow-down membres-sort-chevron"></i></th>
<th data-sort="statut">{{ current_language == 'en' ? 'Status' : 'Statut' }} <i class="iconoir-nav-arrow-down membres-sort-chevron"></i></th>
<th data-sort="affiliation">{{ current_language == 'en' ? 'Affiliation' : 'Affiliation' }} <i class="iconoir-nav-arrow-down membres-sort-chevron"></i></th>
</tr>
</thead>
<tbody>
{% for member in group.members %}
<tr onclick="window.location.href='{{ member.url }}'"
data-name="{{ member.display_name }}"
data-sort-name="{{ member.sort_key }}"
data-roles="{{ member.role_names|join('|') }}"
data-avatar="{{ member.avatar_url }}"
data-status="{{ member.status }}"
data-affiliation="{{ member.affiliation }}"
data-domaines="{{ member.domaines|join(', ') }}"
data-autres-domaines="{{ member.autres_domaines }}">
<td>{{ member.display_name }}</td>
<td>{{ member.status }}</td>
<td>{{ member.affiliation }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
{% endfor %}
</section>
</div>
</div>
</main>
{% endblock %}

View File

@@ -0,0 +1,60 @@
{% extends "base.twig" %}
{% block content %}
<div class="article category--le-laboratoire">
<div class="full-block">
<div class="category-header-top">
<nav class="breadcrumb" aria-label="Fil d'Ariane">
<a href="{{ function('home_url', '/') }}">{{ current_language == 'en' ? 'Home' : 'Accueil' }}</a>
<span class="breadcrumb__separator">&rarr;</span>
<a class="breadcrumb__cat" href="{{ current_language == 'en' ? function('home_url', '/en/le-laboratoire/') : function('home_url', '/le-laboratoire/') }}">{{ current_language == 'en' ? 'The department' : 'Le laboratoire' }}</a>
<span class="breadcrumb__separator">&rarr;</span>
<span class="breadcrumb__current">{{ current_language == 'en' ? 'Research programs' : 'Programmes de recherche' }}</span>
</nav>
{% if page_edit_link %}
<a href="{{ page_edit_link }}" class="link-button" target="_blank" rel="noopener">
<i class="iconoir-edit-pencil"></i>{{ current_language == 'en' ? 'Edit page' : 'Éditer la page' }}
</a>
{% endif %}
</div>
<h2><p>{{ post.title | bilingual(current_language) }}</p></h2>
<div class="article-content">
<div class="main-content-text">
{% for section in sections %}
{% if section.items %}
<section class="labo-section">
<h3>{{ section.label }}</h3>
<div class="labo-dropdowns">
{% for programme in section.items %}
<div class="labo-dropdown-item">
<h4 class="labo-dropdown-header" data-seance-toggle>
{{ programme.name }}
<i class="iconoir-nav-arrow-down labo-dropdown-chevron"></i>
</h4>
<div class="labo-dropdown-content" style="display: none;">
{% if programme.description %}
<div class="programme-description">{{ programme.description|raw }}</div>
{% endif %}
<div class="programme-link">
<a href="{{ programme.url }}" class="link-button">
<i class="iconoir-open-new-window"></i>{{ current_language == 'en' ? 'View programme' : 'Voir le programme' }}
</a>
</div>
</div>
</div>
{% endfor %}
</div>
</section>
{% endif %}
{% endfor %}
</div>
</div>
</div>
</div>
{% endblock %}

30
templates/page.twig Normal file
View File

@@ -0,0 +1,30 @@
{% extends "base.twig" %}
{% block content %}
<div class="article category--le-laboratoire">
<div class="full-block">
<div class="category-header-top">
<nav class="breadcrumb" aria-label="Fil d'Ariane">
<a href="{{ function('home_url', '/') }}">{{ current_language == 'en' ? 'Home' : 'Accueil' }}</a>
<span class="breadcrumb__separator">&rarr;</span>
<a class="breadcrumb__cat" href="{{ current_language == 'en' ? function('home_url', '/en/le-laboratoire/') : function('home_url', '/le-laboratoire/') }}">{{ current_language == 'en' ? 'The department' : 'Le laboratoire' }}</a>
</nav>
{% if page_edit_link %}
<a href="{{ page_edit_link }}" class="link-button" target="_blank" rel="noopener">
<i class="iconoir-edit-pencil"></i>{{ current_language == 'en' ? 'Edit page' : 'Éditer la page' }}
</a>
{% endif %}
</div>
<h2><p>{{ post.title | bilingual(current_language) }}</p></h2>
<div class="article-content">
<div class="main-content-text">
{{ post.content }}
</div>
</div>
</div>
</div>
{% endblock %}

View File

@@ -0,0 +1,25 @@
<a href="{{ link ?: post.link }}" class="swiper-slide agenda-card" dir="ltr">
<div class="agenda-card__dates">
<div class="agenda-date-box">
<span class="agenda-date-day">{{ day }}{% if day == 1 %}<sup>er</sup>{% endif %}</span>
<span class="agenda-date-month">{{ month }}</span>
<span class="agenda-date-year">{{ year }}</span>
</div>
{% if end_day %}
<span class="agenda-date-arrow">→</span>
<div class="agenda-date-box">
<span class="agenda-date-day">{{ end_day }}</span>
<span class="agenda-date-month">{{ end_month }}</span>
<span class="agenda-date-year">{{ end_year }}</span>
</div>
{% endif %}
</div>
<div class="agenda-card__body">
<div class="agenda-card__meta">
{% if date_label %}<span class="agenda-card__date-label">{{ date_label }}</span>{% endif %}
{% if type_label %}<span>{{ type_label }}</span>{% endif %}
{% if lieu %}<span>{{ lieu }}</span>{% endif %}
</div>
<p class="agenda-card__title">{{ post.title }}</p>
</div>
</a>

View File

@@ -0,0 +1,18 @@
<article class="author-card">
<a href="{{ author.url }}" class="author-card__visual" tabindex="-1" aria-hidden="true">
{% if author.avatar_url %}
<img src="{{ author.avatar_url }}" alt="{{ author.name }}" loading="lazy">
{% else %}
<span class="author-card__initials">{{ author.initials }}</span>
{% endif %}
</a>
<div class="author-card__info">
<h2 class="author-card__name"><a href="{{ author.url }}">{{ author.name }}</a></h2>
{% if author.role_label %}
<p class="author-card__role">{{ author.role_label }}</p>
{% endif %}
{% if author.affiliation %}
<p class="author-card__affiliation">{{ author.affiliation }}</p>
{% endif %}
</div>
</article>

View File

@@ -0,0 +1,171 @@
<div class="filters-bar">
<button class="filters-toggle-btn" id="category-filters-toggle" aria-expanded="false">
{{ current_language == 'en' ? 'Filters' : 'Filtres' }}
<i class="iconoir-nav-arrow-down filters-chevron"></i>
</button>
<div class="filters-active-chips">
{% if filter_parents is defined and active_rubrique %}
{% for parent in filter_parents %}
{% if parent.id == active_rubrique %}
<a href="{{ annonces_url }}" class="filter-chip">{{ parent.name }}<i class="iconoir-xmark"></i></a>
{% endif %}
{% endfor %}
{% endif %}
{% if filter_categories is defined and active_category_id and active_category_id != active_rubrique %}
{% for cat in filter_categories %}
{% if cat.id == active_category_id %}
{% set cat_reset_url = annonces_url %}
{% if filter_parents is defined %}
{% for parent in filter_parents %}
{% if parent.id == active_rubrique %}{% set cat_reset_url = parent.link %}{% endif %}
{% endfor %}
{% endif %}
<a href="{{ cat_reset_url }}" class="filter-chip">{{ cat.name }}<i class="iconoir-xmark"></i></a>
{% endif %}
{% endfor %}
{% endif %}
{% if active_date_from or active_date_to %}
<a href="{{ function('remove_query_arg', ['date_from', 'date_to'])|en_url }}" class="filter-chip">
{%- if active_date_from %}{{ active_date_from|date('d/m/Y') }}{% endif -%}
{{- active_date_from and active_date_to ? ' → ' : '' -}}
{%- if active_date_to %}{{ active_date_to|date('d/m/Y') }}{% endif -%}
<i class="iconoir-xmark"></i>
</a>
{% endif %}
{% if active_axe is defined and active_axe and filter_axes is defined %}
{% for axe in filter_axes %}
{% if axe.id == active_axe %}
<a href="{{ (axe_taxonomy_mode ? annonces_url : function('remove_query_arg', ['axe']))|en_url }}" class="filter-chip">{{ axe.name }}<i class="iconoir-xmark"></i></a>
{% endif %}
{% endfor %}
{% endif %}
</div>
</div>
<div class="category-filters" id="category-filters">
{% if filter_parents is defined and filter_parents %}
<div class="filtre-rubrique">
<div class="filter-section-header">
<p class="section-title">{{ current_language == 'en' ? 'Filter by section' : 'Filtrer par rubrique' }}</p>
{% if active_rubrique %}
<a href="{{ annonces_url }}" class="date-reset-link">
{{ current_language == 'en' ? 'Reset' : 'Réinitialiser' }}
</a>
{% endif %}
</div>
<ul>
{% for parent in filter_parents %}
<li{% if parent.id == active_rubrique %} class="is-active"{% endif %}>
<a href="{{ parent.link }}">{{ parent.name }}</a>
</li>
{% endfor %}
</ul>
</div>
{% endif %}
{% if filter_categories is defined and filter_categories %}
<div class="filtre-categorie">
<div class="filter-section-header">
<p class="section-title">{{ current_language == 'en' ? 'Filter by category' : 'Filtrer par catégorie' }}</p>
{% if active_category_id and active_category_id != active_rubrique %}
{% for parent in filter_parents %}
{% if parent.id == active_rubrique %}
<a href="{{ parent.link }}" class="date-reset-link">
{{ current_language == 'en' ? 'Reset' : 'Réinitialiser' }}
</a>
{% endif %}
{% endfor %}
{% endif %}
</div>
<ul>
{% for cat in filter_categories %}
<li{% if cat.id == active_category_id %} class="is-active"{% endif %}>
<a href="{{ cat.link }}">{{ cat.name }}</a>
</li>
{% endfor %}
</ul>
</div>
{% endif %}
<div class="filtre-date">
<div class="filter-section-header">
<p class="section-title">{{ current_language == 'en' ? 'Filter by date' : 'Filtrer par date' }}</p>
{% if active_date_from or active_date_to %}
<a href="{{ function('remove_query_arg', ['date_from', 'date_to'])|en_url }}" class="date-reset-link">
{{ current_language == 'en' ? 'Reset' : 'Réinitialiser' }}
</a>
{% endif %}
</div>
<div class="filter-dd{% if active_date_from or active_date_to %} is-active{% endif %}" id="filter-date-dd">
<div class="dd-title" id="filter-date-btn">
<p id="filter-date-label">
{%- if active_date_from or active_date_to -%}
{%- if active_date_from -%}{{ active_date_from|date('d/m/Y') }}{%- endif -%}
{{- active_date_from and active_date_to ? ' → ' : '' -}}
{%- if active_date_to -%}{{ active_date_to|date('d/m/Y') }}{%- endif -%}
{%- else -%}
{{ current_language == 'en' ? 'Show all' : 'Tout afficher' }}
{%- endif -%}
</p>
<i class="iconoir-nav-arrow-down"></i>
</div>
<div class="dd-content" id="filter-date-popover" style="display: none;">
<ul>
<li data-preset="week">{{ current_language == 'en' ? 'This week' : 'Cette semaine' }}</li>
<li data-preset="month">{{ current_language == 'en' ? 'This month' : 'Ce mois-ci' }}</li>
<li data-preset="upcoming">{{ current_language == 'en' ? 'Upcoming' : 'À venir' }}</li>
<li data-preset="lastmonth">{{ current_language == 'en' ? 'Last month' : 'Le mois dernier' }}</li>
</ul>
<div class="dd-date-fields">
<label>
{{ current_language == 'en' ? 'From' : 'De' }}
<input type="date" id="filter-date-from" value="{{ active_date_from }}" lang="{{ current_language == 'en' ? 'en-GB' : 'fr-FR' }}">
</label>
<label>
{{ current_language == 'en' ? 'To' : 'À' }}
<input type="date" id="filter-date-to" value="{{ active_date_to }}" lang="{{ current_language == 'en' ? 'en-GB' : 'fr-FR' }}">
</label>
<button type="button" class="link-button dd-date-apply" id="filter-date-apply">
{{ current_language == 'en' ? 'Apply' : 'Appliquer' }}
</button>
</div>
</div>
</div>
</div>
{% if filter_axes is defined and filter_axes %}
<div class="filtre-axe">
<div class="filter-section-header">
<p class="section-title">{{ current_language == 'en' ? 'Filter by thematic axis' : 'Filtrer par axe thématique' }}</p>
{% if active_axe and not axe_taxonomy_mode %}
<a href="{{ function('remove_query_arg', ['axe'])|en_url }}" class="date-reset-link">
{{ current_language == 'en' ? 'Reset' : 'Réinitialiser' }}
</a>
{% endif %}
</div>
<div class="filter-dd{% if active_axe %} is-active{% endif %}" id="filter-axe-dd">
<div class="dd-title" id="filter-axe-btn">
<p id="filter-axe-label">
{%- set axe_label = current_language == 'en' ? 'All axes' : 'Tous les axes' -%}
{%- for axe in filter_axes -%}
{%- if axe.id == active_axe -%}
{%- set axe_label = axe.name -%}
{%- endif -%}
{%- endfor -%}
{{ axe_label }}
</p>
<i class="iconoir-nav-arrow-down"></i>
</div>
<div class="dd-content" id="filter-axe-popover" style="display: none;">
<ul>
{% if not axe_taxonomy_mode %}
<li data-axe-id="">{{ current_language == 'en' ? 'All axes' : 'Tous les axes' }}</li>
{% endif %}
{% for axe in filter_axes %}
<li data-axe-id="{{ axe.id }}"{% if not axe_stay_on_page %} data-axe-href="{{ axe.href }}"{% endif %}>{{ axe.name }}</li>
{% endfor %}
</ul>
</div>
</div>
</div>
{% endif %}
</div>

View File

@@ -0,0 +1,24 @@
<footer>
<div class="footer-content">
<nav class="footer-nav">
<ul id="{{ current_language == 'en' ? 'menu-footer-en' : 'menu-footer' }}">
{% for item in footer_menu.items %}
<li class="{{ item.classes|join(' ') }}">
<a href="{{ item.url }}">{{ item.title | bilingual(current_language) }}</a>
</li>
{% endfor %}
</ul>
</nav>
<div class="footer-logos">
<a href="https://www.cnrs.fr/" target="_blank">
<img src="{{ theme.uri }}/assets/images/cnrs.png" alt="Logo CNRS">
</a>
<a href="https://www.sorbonne-nouvelle.fr/" target="_blank">
<img src="{{ theme.uri }}/assets/images/sorbonne.png" alt="Logo Sorbonne Nouvelle">
</a>
<a href="https://www.ens.psl.eu/" target="_blank">
<img src="{{ theme.uri }}/assets/images/ens.png" alt="Logo ENS">
</a>
</div>
</div>
</footer>

View File

@@ -0,0 +1,57 @@
<header>
<div class="header-left">
<div class="main-logo-container">
<div class="main-logo">
<a href="{{ current_language == 'en' ? function('home_url', '/en/') : site.url }}">
<img src="{{ theme.uri }}/assets/images/thalim-logo.svg" alt="Logo Thalim">
</a>
</div>
</div>
<div class="description">
<div>{{ gc.umr }}</div>
<div>{{ gc.thalim }}</div>
<div>{{ gc.siecles }}</div>
</div>
</div>
<div class="header-right">
<div class="secondary-logo-container">
<div class="main-logo">
<a href="{{ current_language == 'en' ? function('home_url', '/en/') : site.url }}">
<img src="{{ theme.uri }}/assets/images/thalim-logo.svg" alt="Logo Thalim">
</a>
</div>
</div>
<div class="lang-switch">
{% if languages %}
<ul class="language-switcher">
{% for lang in languages %}
<li class="{{ lang.current_lang ? 'active' : '' }}">
<a href="{{ lang.url }}">
{{ lang.slug == 'fr' ? 'Français' : 'English' }}
</a>
</li>
{% endfor %}
</ul>
{% endif %}
</div>
<div class="search-button">
<div>
<i class="iconoir-search"></i>
</div>
</div>
<div class="menu-toggle">
<div>
<div>
<i class="iconoir-menu"></i>
</div>
<p>Menu</p>
</div>
</div>
</div>
</header>
<div class="overlay"></div>
{% include 'partials/search-panel.twig' %}
{% include 'partials/navigation.twig' %}

View File

@@ -0,0 +1,34 @@
<nav class="main-menu">
<div class="{{ current_language == 'en' ? 'menu-navigation-en-container' : 'menu-navigation-container' }}">
<ul>
{% for item in menu.items %}
{% set is_first_col = loop.index == 1 %}
<li class="{{ item.classes|join(' ') }}">
<a href="{{ item.url }}">{{ item.title | bilingual(current_language) }}</a>
{% if item.children %}
<ul class="sub-menu">
{% for child in item.children %}
<li class="{{ child.classes|join(' ') }}">
<a href="{{ child.url }}">{{ child.title | bilingual(current_language) }}</a>
</li>
{% if is_first_col and loop.index == 2 and axes_courants %}
<li class="nav-axes-item">
<div class="nav-axes-trigger" aria-expanded="false">
{{ current_language == 'en' ? 'Thematic axes' : 'Axes thématiques' }}
<i class="iconoir-nav-arrow-down"></i>
</div>
<ul class="nav-axes-list">
{% for axe in axes_courants %}
<li><a href="{{ axe.link }}">{{ axe.name }}</a></li>
{% endfor %}
</ul>
</li>
{% endif %}
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
</div>
</nav>

View File

@@ -0,0 +1,116 @@
<article class="post-card gradient--{{ card.parent_slug }}">
<a href="{{ card.card_link ?: post.link }}" class="gradient-container">
{% if card.card_image %}
<img src="{{ card.card_image }}" alt="{{ post.title|bilingual(current_language) }}" loading="lazy">
{% else %}
<h2>{{ post.title|bilingual(current_language) }}</h2>
{% endif %}
</a>
<div class="contextual-infos">
<div class="authors">
{% set autres = post.meta('autrepersonnes') %}
{% set autres_list = autres ? autres|split(', ') : [] %}
{% set membres_count = card.card_membres|length %}
{% set total = membres_count + autres_list|length %}
{% set slots_left = 3 - membres_count %}
{% for membre in card.card_membres|slice(0, 3) %}
<span><a href="{{ membre.url }}">{{ membre.name }}</a></span>
{% endfor %}
{% if slots_left > 0 and autres_list|length > 0 %}
<span>{{ autres_list|slice(0, slots_left)|join(', ') }}</span>
{% endif %}
{% if total > 3 %}{% endif %}
</div>
{% if show_category %}
<div class="date-category">
<time class="date" datetime="{{ card.card_event_date_iso ?: post.date('Y-m-d') }}">{{ card.card_event_date ?: post.date('d/m/Y') }}</time>
{% if card.card_type %}
<a class="card-type" href="{{ card.card_category_url }}">{{ card.card_type }}</a>
{% elseif card.card_category_name and not type_only %}
<a class="card-type" href="{{ card.card_category_url }}">{{ card.card_category_name }}</a>
{% endif %}
</div>
{% else %}
<time class="date" datetime="{{ card.card_event_date_iso ?: post.date('Y-m-d') }}">{{ card.card_event_date ?: post.date('d/m/Y') }}</time>
{% endif %}
</div>
{% if card.card_image %}
<h2 class="title-bottom">
<a href="{{ card.card_link ?: post.link }}">{{ post.title|bilingual(current_language) }}</a>
</h2>
{% endif %}
</article>
{#
<article class="post-card">
{% if card.card_image %}
<div class="post-card__image">
<img src="{{ card.card_image }}" alt="{{ post.title }}" loading="lazy">
</div>
{% endif %}
<div class="post-card__content">
<h3 class="post-card__title">
<a href="{{ post.link }}">{{ post.title }}</a>
</h3>
{% if post.meta('sous-titre') %}
<p class="post-card__subtitle">{{ post.meta('sous-titre') }}</p>
{% endif %}
<time class="post-card__date" datetime="{{ post.date('Y-m-d') }}">{{ post.date('d/m/Y') }}</time>
{% if card.card_membres is not empty or post.meta('autrepersonnes') %}
<div class="post-card__authors">
{% for name in card.card_membres %}
<span class="post-card__author">{{ name }}</span>
{% endfor %}
{% if post.meta('autrepersonnes') %}
<span class="post-card__author post-card__author--external">{{ post.meta('autrepersonnes') }}</span>
{% endif %}
</div>
{% endif %}
{% if post.meta('fonction_auteur') %}
<span class="post-card__role">{{ post.meta('fonction_auteur') }}</span>
{% endif %}
{% if post.meta('editeur') %}
<span class="post-card__publisher">{{ post.meta('editeur') }}</span>
{% endif %}
{% if post.meta('journal') %}
<span class="post-card__journal">{{ post.meta('journal') }}</span>
{% endif %}
{% if card.card_axes is not empty %}
<div class="post-card__axes">
{% for axe in card.card_axes %}
<span class="post-card__axe">{{ axe }}</span>
{% endfor %}
</div>
{% endif %}
{% if card.card_etiquettes is not empty %}
<div class="post-card__tags">
{% for tag in card.card_etiquettes %}
<span class="post-card__tag">{{ tag }}</span>
{% endfor %}
</div>
{% endif %}
<div class="post-card__links">
{% if post.meta('lien_externe_1') %}
<a href="{{ post.meta('lien_externe_1') }}" class="post-card__link" target="_blank" rel="noopener">
{{ post.meta('titre_du_lien_externe_1') ?: post.meta('lien_externe_1') }}
</a>
{% endif %}
{% if post.meta('hal_url') %}
<a href="{{ post.meta('hal_url') }}" class="post-card__link post-card__link--hal" target="_blank" rel="noopener">
HAL
</a>
{% endif %}
</div>
</div>
</article>
#}

View File

@@ -0,0 +1,17 @@
<div class="search-panel">
<div class="search-panel__inner">
<p class="search-panel__title">{{ current_language == 'en' ? 'Search the site' : 'Rechercher sur le site' }}</p>
<p class="search-panel__desc">{{ current_language == 'en' ? 'Search for an event, a lab member, a publication…' : 'Rechercher un événement, un membre du laboratoire, un ouvrage…' }}</p>
<form class="search-panel__form" role="search" method="get" action="{{ function('home_url', current_language == 'en' ? '/en/' : '/') }}">
<div class="search-panel__input-wrap">
<input type="search" name="s" class="search-panel__input"
placeholder="{{ current_language == 'en' ? 'Type your search…' : 'Écrire la recherche…' }}"
autocomplete="off">
<button type="submit" class="search-panel__icon-btn" aria-label="{{ current_language == 'en' ? 'Search' : 'Rechercher sur le site' }}"><i class="iconoir-search"></i></button>
</div>
<button type="submit" class="search-panel__submit">
{{ current_language == 'en' ? 'Search' : 'Rechercher sur le site' }}
</button>
</form>
</div>
</div>

View File

@@ -0,0 +1,27 @@
{% if section_posts %}
<section class="swiper-section full-block" data-swiper>
<div class="section-title">
<p>{{ section_title }}</p>
</div>
<div class="swiper_content_controls">
<div class="swiper-button-prev">
<i class="iconoir-arrow-left"></i>
</div>
<div class="swiper">
<div class="swiper-wrapper">
{% for post in section_posts %}
<div class="swiper-slide">
{% include 'partials/post-card.twig' with { post: post, card: section_cards[post.ID], show_category: true } %}
</div>
{% endfor %}
</div>
</div>
<div class="swiper-button-next">
<i class="iconoir-arrow-right"></i>
</div>
</div>
<div class="button-annonces">
<a href="{{ all_link }}" class="link-button">{{ all_label }}</a>
</div>
</section>
{% endif %}

92
templates/search.twig Normal file
View File

@@ -0,0 +1,92 @@
{% extends "base.twig" %}
{% block content %}
<main class="category-archive">
<div class="container">
<div class="full-block">
<header class="category-header">
<div class="category-header-top">
<nav class="breadcrumb" aria-label="Fil d'Ariane">
<a href="{{ function('home_url', '/') }}">{{ current_language == 'en' ? 'Home' : 'Accueil' }}</a>
<span class="breadcrumb__separator">&rarr;</span>
<span class="breadcrumb__current">{{ current_language == 'en' ? 'Search the site' : 'Recherche sur le site' }}</span>
</nav>
</div>
<h1 class="category-header__title">{{ current_language == 'en' ? 'Search the site' : 'Recherche sur le site' }}</h1>
</header>
<div class="search-page-form">
<p class="search-panel__desc">{{ current_language == 'en' ? 'Search for an event, a lab member, a publication…' : 'Rechercher un événement, un membre du laboratoire, un ouvrage…' }}</p>
<form class="search-panel__form" role="search" method="get" action="{{ function('home_url', '/') }}">
<div class="search-panel__input-wrap">
<input type="search" name="s" class="search-panel__input"
value="{{ search_query }}"
placeholder="{{ current_language == 'en' ? 'Type your search…' : 'Écrire la recherche…' }}"
autocomplete="off">
<button type="submit" class="search-panel__icon-btn" aria-label="{{ current_language == 'en' ? 'Search' : 'Rechercher sur le site' }}"><i class="iconoir-search"></i></button>
</div>
<button type="submit" class="search-panel__submit">
{{ current_language == 'en' ? 'Search' : 'Rechercher sur le site' }}
</button>
</form>
</div>
{% if author_cards is not empty %}
<section class="author-results">
<h2 class="author-results__title">{{ current_language == 'en' ? 'Lab members' : 'Membres du laboratoire' }}</h2>
<div class="author-cards-grid">
{% for author in author_cards %}
{% include 'partials/author-card.twig' %}
{% endfor %}
</div>
</section>
{% endif %}
{% if taxonomy_cards is not empty %}
<section class="taxonomy-results">
<h2 class="taxonomy-results__title">{{ current_language == 'en' ? 'Axes & research programs' : 'Axes & programmes de recherche' }}</h2>
<ul class="taxonomy-results__list">
{% for term in taxonomy_cards %}
<li class="taxonomy-results__item">
<a href="{{ term.url }}" class="taxonomy-results__link">
<span class="taxonomy-results__name">{{ term.name }}</span>
<span class="taxonomy-results__meta">{{ term.taxonomy_label }}{% if term.count %} · {{ term.count }} {{ term.count > 1 ? (current_language == 'en' ? 'posts' : 'publications') : (current_language == 'en' ? 'post' : 'publication') }}{% endif %}</span>
</a>
</li>
{% endfor %}
</ul>
</section>
{% endif %}
{% include 'partials/category-filters.twig' %}
<section class="subcategory-section">
{% if posts is not empty %}
<div class="post-grid" id="post-grid">
{% for post in posts %}
{% include 'partials/post-card.twig' with { post: post, card: cards[post.ID], show_category: true } %}
{% endfor %}
</div>
<div id="scroll-sentinel"
data-search="{{ search_query }}"
data-exclude-cats="31"
data-filter-cat="{{ active_cat_id }}"
data-filter-autres="{{ filter_autres }}"
data-axe="{{ active_axe }}"
data-date-from="{{ active_date_from }}"
data-date-to="{{ active_date_to }}"></div>
<div id="scroll-spinner" class="scroll-spinner" style="display: none;">
<div class="scroll-spinner__dot"></div>
<div class="scroll-spinner__dot"></div>
<div class="scroll-spinner__dot"></div>
</div>
{% else %}
<p class="search-no-results">
{{ current_language == 'en' ? 'No results for' : 'Aucun résultat pour' }} « {{ search_query }} ».
</p>
{% endif %}
</section>
</div>
</div>
</main>
{% endblock %}

487
templates/single.twig Normal file
View File

@@ -0,0 +1,487 @@
{% extends "base.twig" %}
{% block content %}
<div class="article category--{{ article.parent_slug }}">
<div class="full-block">
<div class="category-header-top">
<nav class="breadcrumb" aria-label="Fil d'Ariane">
<a href="{{ function('home_url', '/') }}">{{ current_language == 'en' ? 'Home' : 'Accueil' }}</a>
{% if article.parent_name %}
<span class="breadcrumb__separator">&rarr;</span>
<a class="breadcrumb__cat" href="{{ article.parent_link }}">{{ article.parent_name }}</a>
{% endif %}
{% if article.category_name and article.category_name != article.parent_name %}
<span class="breadcrumb__separator">&rarr;</span>
<a class="breadcrumb__cat" href="{{ article.category_link }}">{{ article.category_name }}</a>
{% endif %}{#
<span class="breadcrumb__separator">&rarr;</span>
<span class="breadcrumb__current">{{ post.title }}</span> #}
</nav>
{% if post.edit_link %}
<a href="{{ post.edit_link }}" class="link-button" target="_blank" rel="noopener">
<i class="iconoir-edit-pencil"></i>{{ current_language == 'en' ? 'Edit post' : 'Éditer l\'annonce' }}
</a>
{% endif %}
</div>
<h2>
<p>{{ post.title | bilingual(current_language) }}</p>
{% if article.sous_titre %}
<p>{{ article.sous_titre }}</p>
{% endif %}
</h2>
{% if article.type_label %}
<span class="article-type">{{ article.type_label }}</span>
{% endif %}
{% set landscape_images = [] %}
{% set portrait_images = [] %}
{% for img in article.images %}
{% if img.portrait %}
{% set portrait_images = portrait_images|merge([img]) %}
{% else %}
{% set landscape_images = landscape_images|merge([img]) %}
{% endif %}
{% endfor %}
{% if landscape_images %}
{% if landscape_images|length > 1 %}
<div class="imgs imgs--swiper" data-image-swiper>
<div class="swiper">
<div class="swiper-wrapper">
{% for img in landscape_images %}
<div class="swiper-slide">
<figure>
<img src="{{ img.url }}" alt="{{ img.alt }}" loading="lazy">
{% set legend = article.show_image_titles and img.title ? img.title : img.caption %}
{% if legend %}
<figcaption>{{ legend }}</figcaption>
{% endif %}
</figure>
</div>
{% endfor %}
</div>
<div class="swiper-pagination"></div>
</div>
</div>
{% else %}
<div class="imgs">
{% for img in landscape_images %}
<figure>
<img src="{{ img.url }}" alt="{{ img.alt }}" loading="lazy">
{% set legend = article.show_image_titles and img.title ? img.title : img.caption %}
{% if legend %}
<figcaption>{{ legend }}</figcaption>
{% endif %}
</figure>
{% endfor %}
</div>
{% endif %}
{% endif %}
<div class="article-content">
{% if portrait_images or article.date_de_debut or article.date_de_fin or article.datetime
or article.lieu|trim or article.adresse|trim
or article.documents or article.liens_externes or article.hal_url or article.hal_file
or article.reference_bibliographique %}
<div class="sidebar">
<div class="sidebar-container">
{% if portrait_images %}
{% if portrait_images|length > 1 %}
<div class="imgs imgs--swiper imgs--portrait" data-image-swiper>
<div class="swiper">
<div class="swiper-wrapper">
{% for img in portrait_images %}
<div class="swiper-slide">
<figure class="sidebar-portrait">
<img src="{{ img.url }}" alt="{{ img.alt }}" loading="lazy">
{% set legend = article.show_image_titles and img.title ? img.title : img.caption %}
{% if legend %}
<figcaption>{{ legend }}</figcaption>
{% endif %}
</figure>
</div>
{% endfor %}
</div>
<div class="swiper-pagination"></div>
</div>
</div>
{% else %}
<figure class="sidebar-portrait">
<img src="{{ portrait_images[0].url }}" alt="{{ portrait_images[0].alt }}" loading="lazy">
{% set legend = article.show_image_titles and portrait_images[0].title ? portrait_images[0].title : portrait_images[0].caption %}
{% if legend %}
<figcaption>{{ legend }}</figcaption>
{% endif %}
</figure>
{% endif %}
{% endif %}
{% if article.date_de_debut or article.date_de_fin or article.datetime %}
<div class="sidebar-section">
{% if article.date_de_debut or article.date_de_fin %}
<p>
{% if article.date_debut_ymd and article.date_fin_ymd and article.date_debut_ymd == article.date_fin_ymd %}
{% if article.heure_de_debut and article.heure_de_fin %}
{{ current_language == 'en' ? 'On' : 'Le' }} {{ article.date_de_debut }} {{ current_language == 'en' ? 'from' : 'de' }} {{ article.heure_de_debut }} {{ current_language == 'en' ? 'to' : 'à' }} {{ article.heure_de_fin }}
{% elseif article.heure_de_debut %}
{{ article.date_de_debut }} {{ current_language == 'en' ? 'at' : 'à' }} {{ article.heure_de_debut }}
{% else %}
{{ article.date_de_debut }}
{% endif %}
{% elseif article.date_de_debut and article.date_de_fin %}
{{ current_language == 'en' ? 'From' : 'Du' }} {{ article.date_de_debut }} <br> {{ current_language == 'en' ? 'to' : 'au' }} {{ article.date_de_fin }}
{% elseif article.date_de_debut %}
{% if article.heure_de_debut %}
{{ article.date_de_debut }} {{ current_language == 'en' ? 'at' : 'à' }} {{ article.heure_de_debut }}
{% else %}
{{ article.date_de_debut }}
{% endif %}
{% else %}
{{ current_language == 'en' ? 'Until' : "Jusqu'au" }} {{ article.date_de_fin }}
{% endif %}
</p>
{% else %}
<p>
{{ article.datetime }}
{% if article.heure_de_debut %}
{{ current_language == 'en' ? 'at' : 'à' }} {{ article.heure_de_debut }}
{% endif %}
</p>
{% endif %}
</div>
{% endif %}
{% if article.lieu|trim or article.adresse|trim %}
<div class="sidebar-section">
{% if article.lieu|trim %}
<p>{{ article.lieu }}</p>
{% endif %}
{% if article.adresse|trim %}
{{ article.adresse|raw }}
{% endif %}
</div>
{% endif %}
{% if article.documents or article.liens_externes or article.hal_url or article.hal_file %}
<div class="sidebar-section">
{% for doc in article.documents %}
<a href="{{ doc.url }}" class="link-button{% if ' ' in doc.title %} link-button--wrap-word{% endif %}" target="_blank" rel="noopener"><i class="iconoir-page"></i>{{ doc.title }}</a>
{% endfor %}
{% for lien in article.liens_externes %}
<a href="{{ lien.url }}" class="link-button{% if ' ' in lien.titre %} link-button--wrap-word{% endif %}" target="_blank" rel="noopener"><i class="iconoir-open-new-window"></i>{{ lien.titre }}</a>
{% endfor %}
{% if article.hal_url %}
<a href="{{ article.hal_url }}" class="link-button" target="_blank" rel="noopener"><i class="iconoir-open-new-window"></i>{{ current_language == 'en' ? 'On HAL' : 'Sur HAL' }}</a>
{% endif %}
{% if article.hal_file %}
<a href="{{ article.hal_file }}" class="link-button" target="_blank" rel="noopener"><i class="iconoir-page"></i>{{ current_language == 'en' ? 'HAL Document' : 'Document HAL' }}</a>
{% endif %}
</div>
{% endif %}
{% if article.reference_bibliographique %}
<div class="sidebar-section reference-bibliographique">{{ article.reference_bibliographique|raw }}</div>
{% endif %}
</div>
</div>
{% endif %}
<div class="main-content-text">
{% if article.membres is not empty or article.autrepersonnes %}
<p class="article-field">
{% if article.fonction_label %}
<span class="inline-title">{{ article.fonction_label }} :</span>
{% endif %}
{% for m in article.membres %}
<a href="{{ m.url }}">{{ m.name }}</a>{% if not loop.last %}, {% endif %}
{% endfor %}
{% if article.autrepersonnes %}{% if article.membres is not empty %}, {% endif %}{{ article.autrepersonnes }}{% endif %}
</p>
{% endif %}
{% if article.autre_membres is not empty or article.autre_autrepersonnes %}
<p class="article-field">
{% if article.autre_fonction_label %}
<span class="inline-title">{{ article.autre_fonction_label }} :</span>
{% endif %}
{% for m in article.autre_membres %}
<a href="{{ m.url }}">{{ m.name }}</a>{% if not loop.last %}, {% endif %}
{% endfor %}
{% if article.autre_autrepersonnes %}{% if article.autre_membres is not empty %}, {% endif %}{{ article.autre_autrepersonnes }}{% endif %}
</p>
{% endif %}
{% if article.editeur %}
<p class="article-field">
<span class="inline-title">{{ current_language == 'en' ? 'Publisher' : 'Éditeur' }} :</span>
{{ article.editeur }}
</p>
{% endif %}
{% if article.journal %}
<p class="article-field">
<span class="inline-title">Journal :</span>
{{ article.journal }}
</p>
{% endif %}
{% if current_language == 'en' and article.body_en %}
{{ article.body_en|raw }}
{% else %}
{{ post.content }}
{% endif %}
{% if article.canal_u %}
<div class="canal-u-embeds">
{% for embed_url in article.canal_u %}
<div class="canal-u-embed">
<iframe src="{{ embed_url }}" allowfullscreen></iframe>
</div>
{% endfor %}
</div>
{% endif %}
{% if article.youtube %}
<div class="youtube-embeds">
{% for embed_url in article.youtube %}
<div class="video-embed">
<iframe src="{{ embed_url }}"
title="YouTube video player"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
referrerpolicy="strict-origin-when-cross-origin"
allowfullscreen></iframe>
</div>
{% endfor %}
</div>
{% endif %}
{% if article.axes %}
<p class="article-field mots-cles">
<span class="inline-title">{{ current_language == 'en' ? 'Thematic axes' : 'Axes thématiques' }} :</span>
{% for kw in article.axes %}
<a href="{{ kw.url }}" class="keyword-link">{{ kw.name }}</a>{% if not loop.last %}, {% endif %}
{% endfor %}
</p>
{% endif %}
{% if article.programmes %}
<p class="article-field mots-cles">
<span class="inline-title">{{ current_language == 'en' ? 'Research programmes' : 'Programmes de recherche' }} :</span>
{% for kw in article.programmes %}
<a href="{{ kw.url }}" class="keyword-link">{{ kw.name }}</a>{% if not loop.last %}, {% endif %}
{% endfor %}
</p>
{% endif %}
{% if article.etiquettes %}
<p class="article-field mots-cles">
<span class="inline-title">{{ current_language == 'en' ? 'Keywords' : 'Mots-clés' }} :</span>
{% for kw in article.etiquettes %}
<a href="{{ kw.url }}" class="keyword-link">{{ kw.name }}</a>{% if not loop.last %}, {% endif %}
{% endfor %}
</p>
{% endif %}
{% if article.annonces_liees is not empty %}
<section class="related-posts">
<h3>{{ current_language == 'en' ? 'Related posts' : 'Annonces liées' }}</h3>
<div class="post-grid">
{% for related in article.annonces_liees %}
{% include 'partials/post-card.twig' with { post: related, card: related_cards[related.ID], show_category: true } %}
{% endfor %}
</div>
</section>
{% endif %}
{% if article.seances_a_venir is not empty %}
<section class="seances-section">
<h3>{{ current_language == 'en' ? 'Upcoming sessions' : 'Séances à venir' }}</h3>
<div class="seances-list">
{% for s in article.seances_a_venir %}
<div class="seance-item" id="seance-{{ s.post.ID }}">
<div class="seance-header" data-seance-toggle>
<div class="seance-date">
<span class="seance-date__day">{{ s.day }}</span>
<span class="seance-date__month">{{ s.month }}</span>
{% if s.year %}<span class="seance-date__year">{{ s.year }}</span>{% endif %}
</div>
<div class="seance-info">
<h4 class="seance-title">{{ s.post.title | bilingual(current_language) }}</h4>
{% if s.intervenants is not empty or s.autrepersonnes %}
<span class="seance-intervenants">
{% for i in s.intervenants %}
<a href="{{ i.url }}">{{ i.name }}</a>{% if not loop.last %}, {% endif %}
{% endfor %}
{% if s.autrepersonnes %}{% if s.intervenants is not empty %}, {% endif %}{{ s.autrepersonnes }}{% endif %}
</span>
{% endif %}
</div>
<i class="iconoir-nav-arrow-down seance-chevron"></i>
</div>
<div class="seance-content" style="display: none;">
<div class="seance-content-infos">
<div class="seance-content-date">
{% if s.date_full %}
<p>
{{ s.date_full }}
{% if s.heure_de_debut and s.heure_de_fin %}
{{ current_language == 'en' ? 'from' : 'de' }} {{ s.heure_de_debut }} {{ current_language == 'en' ? 'to' : 'à' }} {{ s.heure_de_fin }}
{% elseif s.heure_de_debut %}
{{ current_language == 'en' ? 'at' : 'à' }} {{ s.heure_de_debut }}
{% endif %}
{% if s.date_fin %}{{ s.date_fin }}{% endif %}
</p>
{% endif %}
</div>
<div class="seance-content-lieu">
{% if s.lieu %}<p>{{ s.lieu }}</p>{% endif %}
{% if s.adresse %}<p>{{ s.adresse|raw }}</p>{% endif %}
</div>
</div>
{% if current_language == 'en' and s.body_en %}
{{ s.body_en|raw }}
{% else %}
{{ s.post.content }}
{% endif %}
{% if s.images is not empty %}
<div class="seance-images imgs">
{% for img in s.images %}
<figure>
<img src="{{ img.url }}" alt="{{ img.alt }}" loading="lazy">
{% set legend = s.show_image_titles and img.title ? img.title : img.caption %}
{% if legend %}
<figcaption>{{ legend }}</figcaption>
{% endif %}
</figure>
{% endfor %}
</div>
{% endif %}
{% if s.documents is not empty or s.liens_externes is not empty %}
<div class="seance-extras sidebar-section">
{% for doc in s.documents %}
<a href="{{ doc.url }}" class="link-button{% if ' ' in doc.title %} link-button--wrap-word{% endif %}" target="_blank" rel="noopener"><i class="iconoir-page"></i>{{ doc.title }}</a>
{% endfor %}
{% for lien in s.liens_externes %}
<a href="{{ lien.url }}" class="link-button{% if ' ' in lien.titre %} link-button--wrap-word{% endif %}" target="_blank" rel="noopener"><i class="iconoir-open-new-window"></i>{{ lien.titre }}</a>
{% endfor %}
</div>
{% endif %}
{% if s.annonces_liees is not empty %}
<div class="seance-related">
<h4>{{ current_language == 'en' ? 'Related posts' : 'Annonces liées' }}</h4>
<div class="post-grid">
{% for related in s.annonces_liees %}
{% include 'partials/post-card.twig' with { post: related, card: related_cards[related.ID] is defined ? related_cards[related.ID] : {}, show_category: true } %}
{% endfor %}
</div>
</div>
{% endif %}
</div>
</div>
{% endfor %}
</div>
</section>
{% endif %}
{% if article.seances_passees is not empty %}
<section class="seances-section">
<h3>{{ current_language == 'en' ? 'Past sessions' : 'Séances passées' }}</h3>
<div class="seances-list">
{% for s in article.seances_passees %}
<div class="seance-item" id="seance-{{ s.post.ID }}">
<div class="seance-header" data-seance-toggle>
<div class="seance-date">
<span class="seance-date__day">{{ s.day }}</span>
<span class="seance-date__month">{{ s.month }}</span>
{% if s.year %}<span class="seance-date__year">{{ s.year }}</span>{% endif %}
</div>
<div class="seance-info">
<h4 class="seance-title">{{ s.post.title | bilingual(current_language) }}</h4>
{% if s.intervenants is not empty or s.autrepersonnes %}
<span class="seance-intervenants">
{% for i in s.intervenants %}
<a href="{{ i.url }}">{{ i.name }}</a>{% if not loop.last %}, {% endif %}{% endfor %}{% if s.autrepersonnes %}{% if s.intervenants is not empty %}, {% endif %}{{ s.autrepersonnes }}{% endif %}
</span>
{% endif %}
</div>
<i class="iconoir-nav-arrow-down seance-chevron"></i>
</div>
<div class="seance-content" style="display: none;">
<div class="seance-content-infos">
<div class="seance-content-date">
{% if s.date_full %}
<p>
{{ s.date_full }}
{% if s.heure_de_debut and s.heure_de_fin %}
{{ current_language == 'en' ? 'from' : 'de' }} {{ s.heure_de_debut }} {{ current_language == 'en' ? 'to' : 'à' }} {{ s.heure_de_fin }}
{% elseif s.heure_de_debut %}
{{ current_language == 'en' ? 'at' : 'à' }} {{ s.heure_de_debut }}
{% endif %}
{% if s.date_fin %}{{ s.date_fin }}{% endif %}
</p>
{% endif %}
</div>
<div class="seance-content-lieu">
{% if s.lieu %}<p>{{ s.lieu }}</p>{% endif %}
{% if s.adresse %}<p>{{ s.adresse|raw }}</p>{% endif %}
</div>
</div>
{% if current_language == 'en' and s.body_en %}
{{ s.body_en|raw }}
{% else %}
{{ s.post.content }}
{% endif %}
{% if s.images is not empty %}
<div class="seance-images imgs">
{% for img in s.images %}
<figure>
<img src="{{ img.url }}" alt="{{ img.alt }}" loading="lazy">
{% set legend = s.show_image_titles and img.title ? img.title : img.caption %}
{% if legend %}
<figcaption>{{ legend }}</figcaption>
{% endif %}
</figure>
{% endfor %}
</div>
{% endif %}
{% if s.documents is not empty or s.liens_externes is not empty %}
<div class="seance-extras sidebar-section">
{% for doc in s.documents %}
<a href="{{ doc.url }}" class="link-button{% if ' ' in doc.title %} link-button--wrap-word{% endif %}" target="_blank" rel="noopener"><i class="iconoir-page"></i>{{ doc.title }}</a>
{% endfor %}
{% for lien in s.liens_externes %}
<a href="{{ lien.url }}" class="link-button{% if ' ' in lien.titre %} link-button--wrap-word{% endif %}" target="_blank" rel="noopener"><i class="iconoir-open-new-window"></i>{{ lien.titre }}</a>
{% endfor %}
</div>
{% endif %}
{% if s.annonces_liees is not empty %}
<div class="seance-related">
<h4>{{ current_language == 'en' ? 'Related posts' : 'Annonces liées' }}</h4>
<div class="post-grid">
{% for related in s.annonces_liees %}
{% include 'partials/post-card.twig' with { post: related, card: related_cards[related.ID] is defined ? related_cards[related.ID] : {}, show_category: true } %}
{% endfor %}
</div>
</div>
{% endif %}
</div>
</div>
{% endfor %}
</div>
</section>
{% endif %}
<p class="maj">{{ current_language == 'en' ? 'Updated on' : 'Mis à jour le' }} {{ post.modified_date('d/m/Y') ?: post.date('d/m/Y') }}</p>
</div>
</div>
</div>
</div>
{% endblock %}

49
templates/taxonomy.twig Normal file
View File

@@ -0,0 +1,49 @@
{% extends "base.twig" %}
{% block content %}
<main class="category-archive">
<div class="container">
<div class="full-block">
<header class="category-header">
<div class="category-header-top">
<nav class="breadcrumb" aria-label="Fil d'Ariane">
<a href="{{ function('home_url', '/') }}">{{ current_language == 'en' ? 'Home' : 'Accueil' }}</a>
<span class="breadcrumb__separator">&rarr;</span>
<span class="breadcrumb__item">{{ taxonomy_label }}</span>
<span class="breadcrumb__separator">&rarr;</span>
<span class="breadcrumb__current">{{ term.name | bilingual(current_language) }}</span>
</nav>
</div>
<h1 class="category-header__title">{{ term.name | bilingual(current_language) }}</h1>
{% if term_presentation %}
<div class="taxonomy-description">{{ term_presentation|raw }}</div>
{% endif %}
</header>
{% include 'partials/category-filters.twig' %}
<section class="subcategory-section">
<div class="post-grid" id="post-grid">
{% for post in posts %}
{% include 'partials/post-card.twig' with { post: post, card: cards[post.ID], show_category: true } %}
{% endfor %}
</div>
<div id="scroll-sentinel"
data-taxonomy="{{ taxonomy_slug }}"
data-term="{{ term_id }}"
data-filter-cat="{{ active_cat_id }}"
data-filter-autres="{{ filter_autres }}"
data-axe="{{ active_axe }}"
data-date-from="{{ active_date_from }}"
data-date-to="{{ active_date_to }}"></div>
<div id="scroll-spinner" class="scroll-spinner" style="display: none;">
<div class="scroll-spinner__dot"></div>
<div class="scroll-spinner__dot"></div>
<div class="scroll-spinner__dot"></div>
</div>
</section>
</div>
</div>
</main>
{% endblock %}