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

{% 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 %}