simpleFilters 1.3.0: ЧПУ для страниц фильтрации
Всем привет!
В simpleFilters появилась возможность настройки ЧПУ для страниц фильтрации.
Теперь после установки/обновления в меню появится приложение sfSeoPages.

Также добавились системные настройки:
Для динамического изменения значений без перезагрузки страницы для H1 и хлебных крошек используются классы:
На сайте есть каталог продукции, все категории которого имеют шаблон «Категория» с ID=4.
В вызове simpleFilters указана фильтрация по цвету (ms_color), производителю (ms_vendor_id) и псевдонимы:
Добавляем в шаблон плейсхолдер и класс на тег H1:
В pdoCrumbs в &tplCurrent указываем чанк sf_breadcrumb_current_tpl (идет в комплекте)…
… или в своем чанке ставим соответствующий прлейсхолдер и класс:
Далее в приложении sfSeoPages для цвета «красный» добавляем запись вида:

В SEO-параметрах допускаются все плейсхолдеры ресурса-категории (pagetitle, longtitle, description и т. д.).
Склонения значений указывайте через разделитель `||`.
Их можно выводить в том числе и просто на странице через плейсхолдеры вида:
[[+sf_seo_w1]] [[+sf_seo_w2]]… [[+sf_seo_w6]] — они выведут, соответственно, `красный` `красного` и `о красном` в том порядке, в котором прописаны.
Для производителя Trek так:

Аналогично добавляются записи для всех значений цветов и производителей.
Теперь при заходе на страницу site.ru/bicycles/color/red или выборе фильтра будут выведены соответствующие позиции, а H1 TITLE, DESCRIPTION и хлебные крошки примут соответствующий вид:

Производитель по адресу site.ru/bicycles/trek

В коде страницы:

Пример использования с pdoSitemap:
Механизм работает только с индексной таблицей, поэтому записи для товаров там должны присутствовать.
Для пакетного создания SEO-страниц на основе уже существующих ресурсов можно использовать консольный скрипт:
В simpleFilters появилась возможность настройки ЧПУ для страниц фильтрации.
Теперь после установки/обновления в меню появится приложение sfSeoPages.

- sf_seopages_aliases — Псевдонимы фильтров для формирования SEO-страниц.
- sf_seopages_ids — ID страниц для SEO-ссылок (для отдельных страниц).
- sf_seopages_tpls — ID шаблонов страниц для SEO-ссылок (например, категория товаров).
[[!+sf_seo_title]]
[[!+sf_seo_description]]
[[!+sf_seo_h1]]
[[!+sf_seo_breadcrumb]] Для динамического изменения значений без перезагрузки страницы для H1 и хлебных крошек используются классы:
- sf_seo_h1 — для заголовка H1
- sf_seo_breadcrumb — для текущего пункта меню
Пример
На сайте есть каталог продукции, все категории которого имеют шаблон «Категория» с ID=4.
В вызове simpleFilters указана фильтрация по цвету (ms_color), производителю (ms_vendor_id) и псевдонимы:
[[!simpleFilters?
&filters=`ms_color,ms_vendor_id`
&aliases=`ms_color==color,ms_vendor_id==brand`
...
]] Задача
Создать ЧПУ для страниц фильтрации по этим параметрам, чтобы адрес имел вид:- Для цвета: site.ru/bicycles/color/выбранный_цвет
- Для производителя: site.ru/bicycles/выбранный_производитель
Решение
В системных настройках указываем:- sf_seopages_aliases:
{"ms_color":"color","ms_vendor_id":"brand"} - sf_seopages_tpls: 4
<title>[[!+sf_seo_title:default=`[[*pagetitle]]`]]</title>
<meta name="description" content="[[!+sf_seo_description:default=`[[*description]]`]]"> Добавляем в шаблон плейсхолдер и класс на тег H1:
<h1 class="sf_seo_h1">[[!+sf_seo_h1:default=`[[*pagetitle]]`]]</h1> В pdoCrumbs в &tplCurrent указываем чанк sf_breadcrumb_current_tpl (идет в комплекте)…
[[pdoCrumbs?
&tplCurrent=`sf_breadcrumb_current_tpl`
...
]] … или в своем чанке ставим соответствующий прлейсхолдер и класс:
<li class="active sf_seo_breadcrumb">
[[!+sf_seo_breadcrumb:default=`[[+menutitle]]`]]
</li> Далее в приложении sfSeoPages для цвета «красный» добавляем запись вида:

В SEO-параметрах допускаются все плейсхолдеры ресурса-категории (pagetitle, longtitle, description и т. д.).
Склонения значений указывайте через разделитель `||`.
Их можно выводить в том числе и просто на странице через плейсхолдеры вида:
[[+sf_seo_w1]] [[+sf_seo_w2]]… [[+sf_seo_w6]] — они выведут, соответственно, `красный` `красного` и `о красном` в том порядке, в котором прописаны.
Для производителя Trek так:

Аналогично добавляются записи для всех значений цветов и производителей.
Теперь при заходе на страницу site.ru/bicycles/color/red или выборе фильтра будут выведены соответствующие позиции, а H1 TITLE, DESCRIPTION и хлебные крошки примут соответствующий вид:

Производитель по адресу site.ru/bicycles/trek

В коде страницы:

Добавление в sitemap.xml
Для добавления SEO-страниц в sitemap.xml используйте сниппет simpleFiltersSiteMap.Пример использования с pdoSitemap:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
{'pdoSitemap' | snippet : [
'forceXML' => 0
]}
{'simpleFiltersSiteMap' | snippet : [
'tpl' => 'sf_sitemap_tpl'
]}
</urlset> Автоматизация
При сохранении ресурса с шаблоном, ID которого указан в системной настройке sf_index_templates, плагин проверяет его значения для параметров, указанных в настройке sf_seopages_aliases и если присутствует новое, автоматически создаёт для него SEO-страницу, заполняя обязательные поля Фильтр, Значение и URI.Механизм работает только с индексной таблицей, поэтому записи для товаров там должны присутствовать.
Для пакетного создания SEO-страниц на основе уже существующих ресурсов можно использовать консольный скрипт:
<?php
$sf = $modx->getService('Simplefilters');
$sf->updateSeoPages();Комментарии: 1
Спасибо за примеры, очень сильно облегчают рабту
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.