From cb470bab3f200610ae65db1daf1affdb940db666 Mon Sep 17 00:00:00 2001 From: Awilum Date: Fri, 7 Aug 2020 09:44:53 +0300 Subject: [PATCH] Blog 1.3.0 --- CHANGELOG.md | 7 +++ templates/blog-post.html | 22 ++++---- templates/blog.html | 110 ++++++++++----------------------------- theme.yaml | 2 +- 4 files changed, 46 insertions(+), 95 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 504c788..71fcb15 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ + +# [1.3.0](https://github.com/flextype-themes/bootstrap-blog) (2020-08-07) + +### Features + +* **core** updates for new API and performance boost in 3 times! + # [1.2.0](https://github.com/flextype-themes/bootstrap-blog) (2020-08-05) diff --git a/templates/blog-post.html b/templates/blog-post.html index e593c74..cddcee1 100644 --- a/templates/blog-post.html +++ b/templates/blog-post.html @@ -1,6 +1,12 @@ {% extends 'themes/' ~ registry.get('plugins.site.settings.theme') ~ '/templates/partials/base.html' %} {% block content %} + {% set blog = entries.fetchCollection('blog') %} + {% set blog_posts_limit = entries.fetchSingle('blog').entries_limit %} + {% if blog_posts_limit == 0 %} + {% set blog_posts_limit = 5 %} + {% endif %} +

{{ entry.title }}

{{ entry.content|shortcode|markdown|raw}} @@ -26,18 +32,10 @@

{{ entry.title }}

{% for tag in tags %} - {% set related_posts = related_posts|merge(entries.fetchCollection('blog', { - 'where': { - 'key': 'tags', - 'expr': 'contains', - 'value': tag - }, - 'and_where': [{ - 'key': 'visibility', - 'expr': 'nin', - 'value': ['draft', 'hidden'] - }] - })) %} + {% set related_posts = related_posts|merge(collect(blog) + .where('tags', 'contains', tag) + .andWhere('visibility', 'nin', ['draft', 'hidden']) + .limit(blog_posts_limit) ) %} {% endfor %}
diff --git a/templates/blog.html b/templates/blog.html index 42dd4d7..032c642 100644 --- a/templates/blog.html +++ b/templates/blog.html @@ -6,6 +6,7 @@ {% set page = query.page %} {% set tag = query.tag %} + {% set blog = entries.fetchCollection('blog') %} {% set blog_posts_limit = entries.fetchSingle('blog').entries_limit %} @@ -14,59 +15,29 @@ {% endif %} {% if tag %} - - {# @todo get count from cache! #} - {% set blog_posts_length = entries.fetchCollection('blog', { - 'where': { - 'key': 'tags', - 'expr': 'contains', - 'value': tag - }, - 'and_where': [{ - 'key': 'visibility', - 'expr': 'nin', - 'value': ['draft', 'hidden'] - }] - })|length %} - + {% set blog_posts_length = collect(blog) + .where('tags', 'contains', tag) + .andWhere('visibility', 'nin', ['draft', 'hidden']) + .count() %} {% set blog_posts_pages = (blog_posts_length/blog_posts_limit)|round(0, 'ceil') %} + {% if page < 1 %} {% set page = 1 %} {% elseif page > blog_posts_pages %} {% set page = blog_posts_pages %} {% endif %} + {% set blog_posts_offset = (page-1)*blog_posts_limit %} {% if blog_posts_offset < 0 %}{% set blog_posts_offset = 0 %}{% endif %} - {% set blog_posts = entries.fetchCollection('blog', { - 'where': { - 'key': 'tags', - 'expr': 'contains', - 'value': tag - }, - 'and_where': [{ - 'key': 'visibility', - 'expr': 'nin', - 'value': ['draft', 'hidden'] - }], - 'order_by': { - 'field': 'published_at', - 'direction': 'DESC' - }, - 'set_max_result': blog_posts_limit, - 'set_first_result': blog_posts_offset - }) %} - {% else %} - - {# @todo get count from cache! #} - {% set blog_posts_length = entries.fetchCollection('blog', { - 'where': { - 'key': 'visibility', - 'expr': 'nin', - 'value': ['draft', 'hidden'] - } - })|length %} + {% set blog_posts = collect(blog) + .where('tags', 'contains', tag) + .andWhere('visibility', 'nin', ['draft', 'hidden']) + .orderBy('published_at', 'DESC') + .slice(blog_posts_offset, blog_posts_limit) %} + {% else %} + {% set blog_posts_length = collect(blog).where('visibility', 'nin', ['draft', 'hidden']).count() %} {% set blog_posts_pages = (blog_posts_length/blog_posts_limit)|round(0, 'ceil') %} {% if page < 1 %} @@ -78,23 +49,13 @@ {% set blog_posts_offset = (page-1)*blog_posts_limit %} {% if blog_posts_offset < 0 %}{% set blog_posts_offset = 0 %}{% endif %} - {% set blog_posts = entries.fetchCollection('blog', { - 'where': { - 'key': 'visibility', - 'expr': 'nin', - 'value': ['draft', 'hidden'] - }, - 'order_by': { - 'field': 'published_at', - 'direction': 'DESC' - }, - 'return': 'slice', - 'slice_offset_value': blog_posts_offset, - 'slice_limit_value': blog_posts_limit}) %} + {% set blog_posts = collect(blog) + .where('visibility', 'nin', ['draft', 'hidden']) + .orderBy('published_at', 'DESC') + .slice(blog_posts_offset, blog_posts_limit) %} {% endif %} - {# /pagination #}
@@ -127,23 +88,14 @@

About Me

{{ entry.about_me|raw }}

{# /about-me #} + {# recent-posts #}

Recent Posts

    - {% for post in entries.fetchCollection('blog', { - 'where': { - 'key': 'visibility', - 'expr': 'nin', - 'value': ['draft', 'hidden'] - }, - 'order_by': { - 'field': 'published_at', - 'direction': 'DESC' - }, - 'return': 'limit', - 'limit_value': blog_posts_limit - }) %} - + {% for post in collect(blog) + .where('visibility', 'nin', ['draft', 'hidden']) + .orderBy('published_at', 'DESC') + .limit(blog_posts_limit) %}
  • {{ post.title }}
  • {% endfor %}
@@ -151,17 +103,10 @@

Recent Posts

{# tags-cloud #} {% set tags_cloud = [] %} - {% for post in entries.fetchCollection('blog', { - 'where': { - 'key': 'visibility', - 'expr': 'nin', - 'value': ['draft', 'hidden'] - }, - 'order_by': { - 'field': 'published_at', - 'direction': 'DESC' - } - }) %} + {% for post in collect(blog) + .where('visibility', 'nin', ['draft', 'hidden']) + .orderBy('published_at', 'DESC') + .limit(blog_posts_limit) %} {% set tags_cloud = tags_cloud|merge(post.tags|split(',')) %} {% endfor %} @@ -175,6 +120,7 @@

Tags

+ {# pagination navigation #}
{% if (page - 1) > 0 %} diff --git a/theme.yaml b/theme.yaml index a4a5aa5..a51a1a3 100755 --- a/theme.yaml +++ b/theme.yaml @@ -1,5 +1,5 @@ name: Bootstrap Blog Theme -version: 1.2.0 +version: 1.3.0 description: Twitter Bootstrap Blog theme for Flextype. author: name: Sergey Romanenko