{% extends 'base.html.twig' %}
{% from '/macro/breadcrumb.html.twig' import breadcrumb %}
{% from '/macro/newsCard.html.twig' import newsCard %}
{% block mainClass %}c-news-list{% endblock %}
{% set currentPage = app.request.query.get('p', 1) %}
{% block body %}
<section class="c-hero">
<div class="o-wrapper-100vw c-hero__wrapper c-news-list__hero-wrapper">
<div class="o-wrapper">
{{ breadcrumb(entry.title) }}
</div>
<div class="o-wrapper-full c-hero__flex-wrapper">
<div class="o-wrapper-10-column c-hero__item c-hero__text-wrapper">
<div class="c-hero__text-inner">
<h1 class="c-h1 align-center c-hero__title">{{ entry.title }}</h1>
{% if entry.summary %}
<p class="c-hero__summary">{{ entry.summary | nl2br }}</p>
{% endif %}
</div>
</div>
</div>
</div>
</section>
<div>
{% if thematics|length > 0 %}
{% set category_options = {
breakpoints: {
320: {
slidesPerView: 'auto',
spaceBetween: 24,
navigation: false
},
565: {
slidesPerView: 5,
spaceBetween: 12,
navigation: {
nextEl: '.c-swiper__button-next',
prevEl: '.c-swiper__button-prev'
}
},
1024: {
slidesPerView: 7,
spaceBetween: 12,
navigation: {
nextEl: '.c-swiper__button-next',
prevEl: '.c-swiper__button-prev'
}
}
}
} %}
<div class="c-news-list__category-filter">
<h2 class="c-news-list__category-title u-picto-bottom">{{ 'news_list.category_filter'|trans }}</h2>
<div class="o-wrapper-10-column">
<div class="swiper" data-controller="carousel"
data-carousel-options-value="{{ category_options|json_encode }}">
<div class="swiper-wrapper">
{% for thematic in thematics %}
<div class="c-news-list__category-filter-item swiper-slide">
<a class="c-news-list__category-filter-link"
href="{{ get_entry_path(thematic, 'news_list_by_thematic') }}">
<div>
<img class="c-news-list__category-image"
src="{{ moka_media_filtered_path(thematic.icon, 'thematic_icon') }}"
alt="{{ thematic.title }}">
<p class="u-mb-0">{{ thematic.title }}</p>
</div>
</a>
</div>
{% endfor %}
</div>
<div class="u-align-center u-hidden@until-sm">
<div class="c-swiper__navigation c-slider__swiper-navigation">
<div class="c-swiper__button c-swiper__button-prev"></div>
<div class="c-swiper__button c-swiper__button-next"></div>
</div>
</div>
</div>
</div>
</div>
{% endif %}
<div class="c-tabs c-news-list__tabs">
{% set type_options = {
slidesPerView: 'auto',
navigation: false,
spaceBetween: 24
} %}
{% set currentPath = path(app.request.attributes.get('_route'),app.request.attributes.get('_route_params')) %}
<div class="c-tabs__inner swiper" data-controller="carousel"
data-carousel-options-value="{{ type_options|json_encode }}">
<div class="c-tabs__list swiper-wrapper">
<div class="c-tabs__item swiper-slide">
<a class="c-tabs__tab{% if app.request.query.get('type') == '' %} is-active{% endif %}"
href="{{ currentPath }}">{{ 'news_list.type_filter.all'|trans }} ({{ newsCount }})</a>
</div>
<div class="c-tabs__item swiper-slide">
<a class="c-tabs__tab{% if app.request.query.get('type') == 'article' %} is-active{% endif %}"
href="{{ currentPath }}?type=article">{{ 'news_list.type_filter.article'|trans }}
({{ articleCount }})</a>
</div>
<div class="c-tabs__item swiper-slide">
<a class="c-tabs__tab{% if app.request.query.get('type') == 'tuto' %} is-active{% endif %}"
href="{{ currentPath }}?type=tuto">{{ 'news_list.type_filter.tuto'|trans }} ({{ tutoCount }}
)</a>
</div>
</div>
</div>
</div>
</div>
{% if newslist | length > 0 %}
<section class="c-news-list__results">
<div class="o-wrapper-12-column-xl">
<div class="o-layout--with-margin">
{% for news in newslist %}
<div class="o-layout__item--third">
{{ newsCard(news, null, 150) }}
</div>
{% endfor %}
</div>
</div>
{% set pageCount = (newslist.nbResults / newslist.maxPerPage) | round(0, 'ceil') %}
{% set queryParams = app.request.query.all %}
{% if entry.slug is defined %}
{% set queryParams = queryParams|merge({slug: entry.slug}) %}
{% endif %}
<div class="c-pagination">
<ul class="c-pagination__list">
{% if newslist.hasPreviousPage %}
<li class="c-pagination__item c-pagination__item--prev">
<a class="c-pagination__link c-pagination__arrow c-pagination__arrow--prev"
href="{{ path(app.request.attributes.get('_route'), queryParams|merge({ p: newslist.previousPage }) ) }}">
<span class="u-sr-only">Précedent</span>
</a>
</li>
{% endif %}
{% for p in 1..pageCount %}
<li class="c-pagination__item">
{% if currentPage == p %}
<span class="c-pagination__current">{{ p }}</span>
{% else %}
<a class="c-pagination__link"
href="{{ path(app.request.attributes.get('_route'), queryParams|merge({ p: p }) ) }}">{{ p }}</a>
{% endif %}
</li>
{% endfor %}
{% if newslist.hasNextPage %}
<li class="c-pagination__item c-pagination__item--next">
<a class="c-pagination__link c-pagination__arrow c-pagination__arrow--next"
href="{{ path(app.request.attributes.get('_route'), queryParams|merge({ p: newslist.nextPage }) ) }}">
<span class="u-sr-only">Suivant</span>
</a>
</li>
{% endif %}
</ul>
</div>
</section>
{% endif %}
{% endblock %}