From 1aef8200637b44f04e6f69cbe5b3aa6481ce53c6 Mon Sep 17 00:00:00 2001 From: Awilum Date: Fri, 30 Aug 2019 16:13:52 +0300 Subject: [PATCH] feat(core): add ability to work with tag for blog #186 --- site/themes/default/templates/blog.html | 54 ++++++++++++++++++++++--- 1 file changed, 49 insertions(+), 5 deletions(-) diff --git a/site/themes/default/templates/blog.html b/site/themes/default/templates/blog.html index 67e04895..6078b636 100644 --- a/site/themes/default/templates/blog.html +++ b/site/themes/default/templates/blog.html @@ -9,31 +9,75 @@ {% set page = query.page %} {% set tag = query.tag %} - {% set category = query.category %} {% set entries_limit = entries.fetch('blog').entries_limit %} {% if tag %} {# @todo get count from cache! #} - {% set entries_length = entries.fetchAll('blog', {'where': {'key': 'tag', 'expr': 'contains', 'value': tag}})|length %} + {% set entries_length = entries.fetchAll('blog', { + 'where': { + 'key': 'tag', + 'expr': 'contains', + 'value': tag + }, + 'and_where': { + 'key': 'visibility', + 'expr': 'nin', + 'value': ['draft', 'hidden'] + } + })|length %} {% set entries_pages = (entries_length/entries_limit)|round %} {% if page < 1 %}{% set page = 1 %}{% elseif page > entries_pages %}{% set page = entries_pages %}{% endif %} {% set entries_offset = (page-1)*entries_limit %} {% if entries_offset < 0 %}{% set entries_offset = 0 %}{% endif %} - {% set entries = entries.fetchAll('blog', {'where': {'key': 'tag', 'expr': 'contains', 'value': tag}, 'order_by': {'field': 'published_at', 'direction': 'desc'}, 'set_max_result': entries_limit, 'set_first_result': entries_offset}) %} + {% set entries = entries.fetchAll('blog', { + 'where': { + 'key': 'tag', + 'expr': 'contains', + 'value': tag + }, + 'and_where': { + 'key': 'visibility', + 'expr': 'nin', + 'value': ['draft', 'hidden'] + }, + 'order_by': { + 'field': 'published_at', + 'direction': 'desc' + }, + 'set_max_result': entries_limit, + 'set_first_result': entries_offset + }) %} {% else %} {# @todo get count from cache! #} - {% set entries_length = entries.fetchAll('blog')|length %} + {% set entries_length = entries.fetchAll('blog', { + 'where': { + 'key': 'visibility', + 'expr': 'nin', + 'value': ['draft', 'hidden'] + } + })|length %} {% set entries_pages = (entries_length/entries_limit)|round %} {% if page < 1 %}{% set page = 1 %}{% elseif page > entries_pages %}{% set page = entries_pages %}{% endif %} {% set entries_offset = (page-1)*entries_limit %} {% if entries_offset < 0 %}{% set entries_offset = 0 %}{% endif %} - {% set entries = entries.fetchAll('blog', {'order_by': {'field': 'published_at', 'direction': 'desc'}, 'set_max_result': entries_limit, 'set_first_result': entries_offset}) %} + {% set entries = entries.fetchAll('blog', { + 'where': { + 'key': 'visibility', + 'expr': 'nin', + 'value': ['draft', 'hidden'] + }, + 'order_by': { + 'field': 'published_at', + 'direction': 'desc' + }, + 'set_max_result': entries_limit, + 'set_first_result': entries_offset}) %} {% endif %} {# /pagination #}