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.
74 lines
4.0 KiB
74 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_url = _category_page > 1 ? url('magazine-category', {slug: _category_slug, page: _category_page}) : url('magazine-category', {slug: _category_slug}) %} |
|
{% set _canonical_url = _is_articles_route ? _articles_url : (_is_category_route ? _category_url : url('magazine-category', {slug: _category_slug})) %} |
|
<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 = _is_articles_route |
|
? path('articles', _page > 2 ? { page: _page - 1 } : {}) |
|
: path('magazine-category', _page > 2 ? { slug: _slug, page: _page - 1 } : { slug: _slug }) %} |
|
{% set _next_url = _is_articles_route |
|
? path('articles', { page: _page + 1 }) |
|
: path('magazine-category', { slug: _slug, page: _page + 1 }) %} |
|
<nav class="category-pagination mt-3" aria-label="Articles pagination"> |
|
{% if _page > 1 %} |
|
<a class="btn btn-outline-secondary" href="{{ _prev_url }}">Newer</a> |
|
{% endif %} |
|
<span class="mx-2 text-subtle">Page {{ _page }} of {{ _last }}</span> |
|
{% if _page < _last %} |
|
<a class="btn btn-outline-secondary" href="{{ _next_url }}">Older</a> |
|
{% endif %} |
|
</nav> |
|
{% endif %} |
|
{% endblock %} |
|
|
|
{% block aside %} |
|
{% endblock %}
|
|
|