Всем привет!
Недавно начал работать с Octbober CMS, столкнулся с одной неприятностью.
Решение на просторах интернета так до сих пор и не найдено...
Есть страница portfolio
, которая тянет данные из записей (Rainlab Blog) и есть две категории: "фото" и "видео".
Для красоты и удобства это дело оформляется через masonry.js
и делится на страницы с помощью пагинации.
Собственно проблема в фильтрации, штатная, от masonry.js
фильтрует посты только на конкретно открытой странице, а не из всех загруженных постов.
Подскажите, как это исправить? Если masonry
лишний и сложный для реализации - от им можно пожертвовать.
Начал эксперементировать, менял
url = "/portfolio/:page?"
на
url = "/portfolio/:slug/:page?"
и добавлял
[blogPosts]
categoryFilter = "{{ :slug }}"
URL стал логичней - можно напрямую открыть категорию:
http://october.local/portfolio/video
http://october.local/portfolio/photo
НО! Теперь страница "portfolio" доступна только по адресу с приставкой "default"!
http://october.local/portfolio/default
Без посторонней помощи не справляюсь...
Вот полный код страницы, буду очень признателен за помощь:
title = "Portfolio"
url = "/portfolio/:page?"
layout = "default"
is_hidden = 0
[blogPosts]
pageNumber = "{{ :page }}"
categoryFilter = "{{ :slug }}"
postsPerPage = 10
noPostsMessage = "No posts found"
sortOrder = "published_at desc"
postPage = "blog-post"
[blogCategories]
slug = "{{ :slug }}"
displayEmpty = 0
categoryPage = "blog-category"
==
{% set posts = blogPosts.posts %}
<div class="portfolio-section">
<ul class="portfolio-filter controls text-center">
<li class="control" data-filter="all">All</li>
{% for category in categories %}
<li {% if category.slug == currentCategorySlug %} class="active control" {% endif %} data-filter=".{{ category.name }}">{{ category.name }}</li>
{% endfor %}
</ul>
<div class="row portfolio-gallery m-0">
{% for post in posts %}
{% for image in post.featured_images %}
{% for category in post.categories %}
<div class="mix col-xl-2 col-md-3 col-sm-4 col-6 p-0 {{ category.name }}">
{% if category.name=='Video' %}
<a href="{{ post.excerpt }}" class="video-link">
{% set url = post.excerpt %}
{% if url is not empty %}
{% set id = url|split('v=')|last %}
{% set id = id|split('&')|first %}
{% set id = id|split('/')|last %}
<img src="http://img.youtube.com/vi/{{id}}/hqdefault.jpg" class="portfolio-item img-popup set-bg" data-setbg="{{ image.path }}" />
</a>
{% endif %}
{% else %}
<a href="{{ image.path | resize(500,500) }}" class="portfolio-item img-popup set-bg" data-setbg="{{ image.path | resize(500,500) }}"></a>
{% endif %}
</div>
{% endfor %}
{% endfor %}
{% endfor %}
</div>
<div class="blog-pagination">
{% if posts.lastPage > 1 %}
<ul class="pagination">
{% if posts.currentPage > 1 %}
<li><a href="{{ page.baseFileName|page({ (pageParam): (posts.currentPage-1) }) }}">← Prev</a></li>
{% endif %}
{% for page in 1..posts.lastPage %}
<li class="{{ posts.currentPage == page ? 'active' : null }}">
<a href="{{ page.baseFileName|page({ (pageParam): page }) }}">{{ page }}</a>
</li>
{% endfor %}
{% if posts.lastPage > posts.currentPage %}
<li><a href="{{ page.baseFileName|page({ (pageParam): (posts.currentPage+1) }) }}">Next →</a></li>
{% endif %}
</ul>
{% endif %}
</div>
</div>