You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
4.0 KiB
77 lines
4.0 KiB
{% extends 'base.html.twig' %} |
|
|
|
|
|
{% block title %}{{ (category.title|default(''))|trim != '' ? category.title|trim ~ ' — ' ~ website_name : website_name }}{% endblock %} |
|
|
|
{% block meta_description %} |
|
{% set _summary = category.summary|default('')|striptags|u.truncate(159, '…') %} |
|
<meta name="description" content="{{ (_summary != '' ? _summary : (category.title|default('')|striptags))|e('html_attr') }}"> |
|
{% endblock %} |
|
|
|
{% block ogtags %} |
|
{% set _title = category.title|default('') %} |
|
{% set _summary = category.summary|default('')|striptags|u.truncate(159, '…') %} |
|
{% set _og_image = absolute_url(asset('og-image.jpg')) %} |
|
{% set _is_articles_route = app.request.attributes.get('_route') == 'articles' %} |
|
{% set _is_category_route = app.request.attributes.get('_route') == 'magazine-category' %} |
|
{% set _articles_page = app.request.query.getInt('page', 1) %} |
|
{% set _articles_url = _articles_page > 1 ? url('articles', { page: _articles_page }) : url('articles') %} |
|
{% set _category_slug = sync_slug|default(app.request.attributes.get('slug')) %} |
|
{% set _category_page = app.request.query.getInt('page', 1) %} |
|
{% set _category_has_slug = (_category_slug|default('')|trim) != '' %} |
|
{% set _category_url = _category_has_slug |
|
? (_category_page > 1 |
|
? url('magazine-category', {slug: _category_slug, page: _category_page}) |
|
: url('magazine-category', {slug: _category_slug})) |
|
: _articles_url %} |
|
{% set _canonical_url = _is_articles_route ? _articles_url : (_is_category_route and _category_has_slug ? _category_url : _articles_url) %} |
|
<meta property="og:title" content="{{ _title|e('html_attr') }}"> |
|
<meta property="og:type" content="website"> |
|
<meta property="og:url" content="{{ _canonical_url }}"> |
|
<meta property="og:description" content="{{ (_summary != '' ? _summary : _title)|e('html_attr') }}"> |
|
<meta property="og:image" content="{{ _og_image|e('html_attr') }}"> |
|
<meta property="og:site_name" content="{{ website_name|e('html_attr') }}"> |
|
<link rel="canonical" href="{{ _canonical_url }}"> |
|
<meta name="twitter:card" content="summary_large_image"> |
|
<meta name="twitter:title" content="{{ _title|e('html_attr') }}"> |
|
<meta name="twitter:description" content="{{ (_summary != '' ? _summary : _title)|e('html_attr') }}"> |
|
<meta name="twitter:image" content="{{ _og_image|e('html_attr') }}"> |
|
{% endblock %} |
|
|
|
{% block nav %} |
|
{% endblock %} |
|
|
|
{% block body %} |
|
<div class="card category-page__header-card"> |
|
<div class="card-header card-header--article"> |
|
<h1 class="card-title">{{ (category.title|default('')|trim) != '' ? category.title : 'Category' }}</h1> |
|
{% set _cat_share = nostr_share_menu() %} |
|
{% if _cat_share %}{% include 'components/Molecules/NostrShareMenu.html.twig' with { share: _cat_share, event_menu: true } only %}{% endif %} |
|
</div> |
|
</div> |
|
<div class="category-body"> |
|
<twig:Organisms:CardList :list="list" class="article-list" /> |
|
</div> |
|
{% if pagination is defined and pagination.last_page > 1 %} |
|
{% set _page = pagination.page|default(1) %} |
|
{% set _last = pagination.last_page|default(1) %} |
|
{% set _is_articles_route = app.request.attributes.get('_route') == 'articles' %} |
|
{% set _slug = sync_slug|default(app.request.attributes.get('slug')) %} |
|
{% set _prev_url = _page > 1 ? (_is_articles_route |
|
? path('articles', _page > 2 ? { page: _page - 1 } : {}) |
|
: path('magazine-category', _page > 2 ? { slug: _slug, page: _page - 1 } : { slug: _slug })) : null %} |
|
{% set _next_url = _page < _last ? (_is_articles_route |
|
? path('articles', { page: _page + 1 }) |
|
: path('magazine-category', { slug: _slug, page: _page + 1 })) : null %} |
|
{% include 'components/Molecules/Pagination.html.twig' with { |
|
page: _page, |
|
last_page: _last, |
|
prev_url: _prev_url, |
|
next_url: _next_url, |
|
aria_label: 'Articles pagination', |
|
} only %} |
|
{% endif %} |
|
{% endblock %} |
|
|
|
{% block aside %} |
|
{% endblock %}
|
|
|