FilterVier_SEO – автоматический и многофункциональный фильтр товаров на страницах сайта в Категориях, Производителя, Акциях, Поиска и Главной страницы с полным управлением под СЕО.
Фильтр автоматически формируется из параметров Товара по: цене, атрибутам, опциям, производителям, акциям и новинкам (указать, за какое количество дней, товар считается новинкой).
Особенности модуля FilterVier_SEO
- Модуль независимый от Шаблона сайта.
- Работа Модуля может осуществляться как на основании «живыми ссылками», так и на Ajax (применение фильтра после выбора параметров фильтра по Кнопке, имя которой присваивается в «Языковых данных»).
- Управление автоматического перехода работы фильтра в Мобильных устройствах на Ajax.
- Оперативно работает на сайте с количеством товара 100тыс.+
- Независимо от последовательности выбранных параметров фильтра, адресная строка будет иметь всегда один вид.
- Используется собственная модель кэширования (только статичных запросов к БД), что позволило оперативней обрабатывать код, уменьшать нагрузку на сайт, а так же исключать ошибки, которые иногда встречаются при стандартной модели кэширования в Opencart. + дополнительный кэш для динамических запросов в БД (используется для большого количества Атрибутов и Опций).
- Расположение модуля в Схемах/Макетах, как вертикальное, так и горизонтальное.
- Поддерживает работу с Мульти-магазинами.
- Мульти-язычность, Мульти-валютность.
- При переключении языка на сайте, выбранные параметры фильтра сохраняются.
- Работает с сортировкой, page и limit.
- В админке модуля можно конструировать свой дизайн фильтра (даже не надо быть знатоком в css — всё происходит наглядно):
Создать собственные стили для: Мобильных устройств, Чекбоксов, Кнопок (включая кнопку для Ajax), Слайдера, если таких нет в предложенных вариантах модуля. Например, дизайн Слайдера:
- Canonical и robots – настраиваемые ограничения по количеству выбранных параметров.
- canonical без prev/next (управление).
- Настройка запрета на индексацию со второй страницы, при сортировке, при лимите.
- Возможность использовать ссылки вида js (интегрировал для «назойливых» поисковиков).
- Использовать второе Описания из Категорий для более уникального авто-текста, генерируемое фильтром.
- Настройка — не выводить Описание со второй страницы сайта. (!!! Применение данных настроек можно использовать и для самих страниц: Категории, Производителя).
- Параметры фильтра в «Хлебных крошках» – breadcrumbs
- Автоматическая генерация Мета-тегов: title, description, keywords, Заголовка-H1 и Описания по шаблонам (настройка во вкладке «Мета-теги»).
Для мульти-магазинов добавлены маркеры Информации.
- Ручное создание Посадочных страниц по: Мета-тегам, Заголовку-H1 и Описанию. (Для удобства создания Описания используется текстовый редактор. Количество Пос.страниц неограниченное, так как используется постраничная навигация). А для быстрого поиска Посадки можно использовать Фильтр по разным критериям.
- Ссылки из Посадочных страниц могут записываться как в общий sitemap-сайта (работает с Google Sitemap и возможно с др. Sitemap) или использовать собственную/отдельную sitemap-Фильтра, которой по желанию можно назначит своё ЧПУ-имя.
Есть возможность для собственной sitemap-Фильтра использовать в Урлах префиксы Языков, например как /en/sitemap_filter.xml
- Данные по Языкам для блоков Фильтра, Кнопок и т.п., заполняются в админке модуля для всех установленных на сайте языков (не требуется никаких правок в языковых файлах)
- Использовать мульти-Значения Атрибутов через заданный разделитель.
- Установить — сортировка Товаров, которых нет в наличии, — внизу списка.
- Дополнительно выбрать сортировку Товаров по умолчанию.
- Скрывать Параметры фильтра с их Нулевым количеством.
- Возможность указывать допустимое Минимальное количество параметров в блоке Фильтра для их отображения.
- Показывать Товары из Дочерних Категорий в Родительской Категории.
- Сортировка блоков фильтра – порядок вывода блоков в Фильтре.
- Адаптирован под мобильные устройства — предоставляется 2 стиля. Можно использовать собственные.
- 6 вариантов отображения Атрибутов:
ссылками (чекбоксами),
кнопками,
картинками (при работе в паре с модулем «Attribute Text Select»),
переключателем (radio-кнопки),
списком (select),
слайдером (если эти значения имеют цифровой формат). - 5 вариантов отображения Опций: ссылками (чекбоксами), кнопками, картинками, переключателем (radio-кнопки), списком (select).
- 5 вариантов отображения Производителей: ссылками (чекбоксами), кнопками, картинками, переключателем (radio-кнопки), списком (select).
- 3 варианта отображения Цены: ссылками (чекбоксами) с указанными диапазонами, списком (select) и слайдером. (Формирование цены может происходит с учетом Акций, Скидки, Налогов).
- Для каждого параметра можно выбрать вид отображения. (Кнопки и image могут работать в дополнительном режиме, как переключатель/radio).
- Фильтр по атрибутам также может работать без текстовых названий Атрибутов (которые не указаны в Карточке товара). Полезность данной возможности позволяет «заменять» созданные под-Категории Атрибутами, с сохранением их ЧПУ.
- Подстройка/подборка Атрибутов для Категорий — возможность выбирать/отображать для Категорий нужные Атрибуты, или НЕ отображать их вообще. (Это не обязательная подстройка. В основном предназначена для большого количества Атрибутов на сайте).
- Есть 2 вида Блоков очистки фильтра по выбранным параметрам. (Могут работать, как одновременно, так и по отдельности. Название блока указывается в «Языковых данных» настроек модуля).
- ЧПУ параметров Фильтра может работать в паре с модулями: seo_url (дефолтный) или seo_pro (seopro).
Быстро создать ЧПУ для Параметров фильтра — шаг 1 и шаг 2 (при этом, перед Записью в базу — шаг 2, их можно отредактировать).
- При потребности можно указать get-Фильтра и по желанию назначить для него ЧПУ (на ручных Посадках не выводятся).
- Назначить свой Транслит.
- Можно менять порядок вывода параметров фильтра в адресной строке.
В админке модуля есть контроль на дубли ЧПУ-ссылок во вкладках «SEO_URL» и «Пос.страницы».
Чтоб быть уверенным, что операция (после нажатия кнопок) в админке прошла успешно — модуль сообщит об этом «зелёным окошком».
Интеграция с модулями.
Интеграция с модулем «Ссылки фильтра как Теги для FilterVier_SEO«
Интеграция с модулем по Атрибутам — «Attribute Text Select» (ATS).
Ещё данная интеграция позволяет создавать перелинковку из Карточки товара на Фильтр.
Интеграция с модулем Поиска — «Поисковая система с морфологией и релевантностью PRO» (от sv2109) — «fix_search_engine«
Интеграция с другими модулями в настройках Фильтра — «setting poles«
Активация модуля происходит по нажатию кнопки «Активировать». (Модуль проверит Вашу версию Фильтра и установит соответствующий ключ лицензии).
Установка модуля FilterVier_SEO
1) Распаковать архив модуля для требуемой версии OpenCart и версии php.
2) через ЗАГРУЗЧИК РАСШИРЕНИЙ (Установщик дополнений OCMOD) — требуется, чтоб был установлен fix ocmod — localcopyꜛ (в папке /use_fix_ocmod/ находятся требуемы модификаторы)
> загрузить файл filter_vier_SEO_v_xxx.ocmod.zip
Для загрузки модуля предыдущих версий по FTP (ФТП) :
! Устанавливать модуль с подключением по FTP (режим передачи/обмена: Двоичный/Binary (см. скрин внизу)).2) войти в папку требуемой версии php (к примеру, php7.1-7.4)
> войти в папку `upload` и скопировать содержимое (папки) из папки `upload` в корень вашего сайта (*корень – это где находятся папки сайта: admin, catalog, image).
3) в Админке в Модулях установить/активировать модуль FilterVier_SEO_v.х.x
> войти в него (если запросит лицензионный ключ, то нажать «Активировать». При этом Модуль проверит Вашу версию Фильтра и установит соответствующий ключ лицензии).
Для быстрого старта можно выбрать/установить только основные настройки (остальные настройки можно потом настроить/подключить):
- Статус Фильтра (общий) и Статусы блоков, а так же если используете Атрибуты и Опции, то их Параметры. (Сохранить настройки).
ВАЖНО! – если используете Атрибуты, то их Значения надо будет сгруппировать – Зеленая кнопка – “Генерация text_id“ (см. пояснение ниже)
- заполнить данные по Языкам на свой «вкус» во вкладке «Языковые данные»
- Подключите (или создайте свой) Дизайн (вкладка «Дизайн» модуля и в нём под-Вкладки: «Основной дизайн» (по умолчанию минимизирован стилями), для «Мобильных устройств», «Кнопок», «Чекбокса», «Слайдера»).
(Если будете использовать блок Цены как Слайдер, то обязательно выберите для него стиль или создайте собственный).
4) Подключение модуля в Схемах/Макетах:
в Opencart → ДИЗАЙН → МАКЕТЫ/СХЕМЫ подключить данный модуль к Макетам.
Для вывода модуля на странице Категорий используется путь — product/category
На странице Производителя — product/manufacturer/info
На странице Акций — product/special
На странице Поиска — product/search
На Главной странице — common/home
(!!! у некоторых Шаблонах используются свои дополнительные Схемы/Макеты подключения).
После этого Вы можете уже видеть свой Фильтр на сайте, но работать он не будет до следующей установки.
5) в МОДИФИКАТОРЫ (Список модификаторов) обновить расширения.
Для загрузки модуля предыдущих версий по FTP (ФТП) :
5) через ЗАГРУЗЧИК РАСШИРЕНИЙ (Установщик дополнений OCMOD) загрузить файл-модификатор:для opencart 2 — filter_vier_seo.ocmod.xml
для Opencart 3 — filter_vier_seo_3.ocmod.zip6) в МОДИФИКАТОРЫ (Список модификаторов) обновить расширения.
Всё.
В папке /use_fix_ocmod/ находятся Дополнительные (необязательные) Модификаторы. Их предназначение расписано в файле readme.txt
Некоторые пояснения.
Так как используется ocMod (модификатор), то чтоб гарантировано работал модуль, затрагиваемые модулем файлы OpenCart, должны быть оригинальными (не изменялись вручную).
!!!ВНИМАНИЕ: — если используется КЕШ на сайте (в модулях, шаблоне, на Хосте), то перед настройкой дизайна Фильтра, временно их отключите и очистите его. (КЕШ в Фильтре не применяется для собственных стилей — там нечего кешировать).
Для Opencart 3 еще возможно надо будет очистить/отключить кеш в Настройках разработчика (см. скрин ниже). Так же не забывайте, что еще есть кеш самого браузера!!!
!!!ВНИМАНИЕ: — если Вы использовали на своем сайте другой Фильтр товаров (включая и Стандартный), то обязательно его отключите в админке, и удалите/отключите его модификатор (если он есть).
Так же проверьте папку /system/ — модификатор для фильтра может в ней располагаться. (Обычно в его названии присутствует часть текста filter) – Удалите данный файл или переименуйте его расширение, например, расширение .xml переименовать в ._xml Потом не забудьте заново обновить модификаторы в админке.
У некоторых Шаблонах (которые используют собственный Фильтр), в самом модификаторе Шаблона может присутствовать код для своего Фильтра. – По возможности его тоже желательно очистить (чтоб «не путался под ногами»).
ВАЖНО!!! Если стили Фильтра не сохраняются (не появляется зелёное окошко «об успешном Сохранении» в админке модуля), то возможно (всё зависит от настроек Вашего сервера) для папки, где находятся стили Фильтра — /catalog/view/theme/default/ stylesheet/filter_vier/ и вложенных в неё папкам и файлам, понадобиться установить на Вашем Хосте Права Пользователя (доступа), к примеру, 755. (Бывали случаи, что и другим, подключающимся в модуле стилевым и js файлам, надо было дать Права доступа).
Перед Генерацией text_id, выберите Атрибуты, которые будут использоваться на сайте в Фильтре.
Если в Атрибутах присутствуют мульти-значения (к примеру, Цвет: Черный, Белый, Красный), то установите Делитель, который у Вас разделяет эти множественные Значения.
(! Если у Вас в Значениях есть дробные числа и в них присутствует запятая «,», то в Делитель нельзя устанавливать запятую, иначе модуль разобьет, к примеру, число 5,12 на 5 и 12).
Если в Значениях Атрибутов присутствуют html-тэги, то установите галку на htmlTags, чтоб очистить их для Фильтра.
(! на «Генерацию text_id» не влияют другие настройки, кроме тех, которые указанны выше: Атрибуты, Делитель, htmlTags)
И для справки по «Генерации text_id»
Так «исторически» сложилось, что в OpenCart текстовый атрибут – то, что в Карточке Товара (КТ) прописывается, не имеет своего индекса – идентификатора (как, например, в Опциях), и приходится группировать их (как только меняются или добавляются текстовые атрибуты в КТ). И потом уже использовать этот индекс (глупо же и не безопасно оперировать текстовыми словами в обработке информации). Можно генерировать не каждый раз после одного изменения в КТ, а после их массовых изменений.
Это еще позволяет менять язык на странице сайта без сброса фильтра.
Всю эту «черновую работу» берет на себя админка модуля, а не сам фильтр на сайте.
Важно!!! — если используете ЧПУ(SEO_URL) в параметрах фильтра, то обязательно проверить соответствие этих ЧПУ с названием параметра, так как ЧПУ-значений привязываются к id-значений, а они динамические при «Генерации text_id» и могут изменятся.
(При использовании модуля «Attribute Text Select» id-значений будут статичными и соответственно меняться не будут).
Касательно обновлений модуля.
!!! При обновлении модуля, всегда очищайте кэш браузера (по Ctrl+F5) и остальной кеш, который возможно есть у Вас на сайте в Шаблоне, в др.модулях, на Сервере/Хосте.
А для Opencart 3 еще возможно надо будет Очистить или временно Выключить кеш в настройках разработчика – Главная → Панель состояния → *
(страница Админки Opencart 3)
А также при обновлениях переСохраняйте все вкладки в модуле.
Пошаговая инструкция по обновлению Фильтра в архиве модуля — readme_update.txt
Рекомендация
по редактированию файла robots.txt
Если Вы используете ЧПУ фильтра, то дабы предотвратить человечески фактор (забыли сгенерировать ЧПУ и т.п.), добавить в robots.txt правила, закрывающие от индексации страницы результатов фильтра:
Disallow: /*attrb[
Disallow: /*manufs[
Disallow: /*prs[
Disallow: /*psp[
Disallow: /*optv[
Disallow: /*qnts[
Disallow: /*nows[
# если используете дополнительный (не обязательный) get-Фильтра, то и его пропишите:
Disallow: /*filter_vier=1
# при этом, если используете ЧПУ get-Фильтра, то и его пропишите (если это fvs):
Disallow: /*/fvs/
# если используете отдельный sitemap для FilterVier_SEO, то укажите данную карту со своим сайтом и своим ЧПУ карты (если это sitemap_fv.xml):
Sitemap: https://your_site/sitemap_fv.xml
Рекомендация
по созданию/редактированию собственных стилей и шаблона Фильтра.
Дефолтные стили и шаблон Фильтра перезаписываться при обновлении модуля!
Если Вы решили изменить вид Фильтра, с редактированием дефолтных файлов по стилю (filter_vier.css) и шаблону (filter_vier.tpl или filter_vier.twig) Фильтра, то используйте для этого новые файлы.
Для изменения рекомендую создать собственные стили и шаблон, методом копирования в ту же папку – /filter_vier/ с новым именем – new_name. Главное, чтоб имя css-файла и tpl-файла было одинаковым (к примеру, к имени добавить _my), и потом подключить новую Тему фильтра. Аналогично и для файлов Главной страницы. (! Если файл стилей для Главной страницы имеет другое название, чем у «Темы фильтра», которая указана во вкладке «Дизайн», то используются только стили, созданные в данном стилевом файле).
Их раположение:
/catalog/view/theme/default/ stylesheet/filter_vier/new_name.css
/catalog/view/theme/default/ template/module/ filter_vier/new_name.tpl
для Opencart 3:
/catalog/view/theme/default/ template/extension/ module/filter_vier/new_name.twig
!!!Если изменяются только стили, а шаблон останется тот же, то новый шаблон можно и не создавать — будет привязка к шаблону по дефолту — filter_vier (я не рекомендую создавать новый файл-шаблон, а особенно править дефолный, — старайтесь обойтись только правкой стилевого файла).
Также можно создать собственные чекбоксы по аналогии.
Их расположение:
для image-чекбоксов – /catalog/view/theme/default/ image/filter_vier/ new_name.png
для css-чекбоксов – /catalog/view/theme/default/ stylesheet/filter_vier/ select_checks/new_name.css
Для Слайдера:
/catalog/view/theme/default/ stylesheet/filter_vier/ skin_slider/new_ name.css
Для Кнопок:
/catalog/view/theme/default/ stylesheet/filter_vier/ button/new_name.css
Стиль для мобильной версии, который так же можно создать собственный, расположен по адресу –
/catalog/view/theme/default/ stylesheet/filter_vier/ mobil_versi/new_name_mobil.css
Так же можно для некоторых стилей при надобности добавлять еще и свой шаблон для кнопки, с тем же именем, который расположен по адресу –
/catalog/view/theme/default/ stylesheet/filter_vier/ html/new_name_mobil.html
!!! Не редактируйте файл user_style.css, который расположен в папке /user_style/ – это автоматически-генерируемый файл при каждом сохранении настроек модуля, в который временно записываются все стили для Фильтра со всех стилей: из подключаемого файла «Темы фильтра» в «Дизайне» модуля (по умолчанию это файл filter_vier.css) и по: Кнопкам, Слайдеру, Чекбоксам и Мобильной версии.
Все новые правила стилей можно прописать в блоке «Добавить CSS код«
FTP-клиент — FileZilla ꜛ
Настройка Режима передачи данных — Двоичный (Binary)
Создаём (кастомизируем) свои запросы в Фильтре
Чтоб вывести Товар на страницу сайта в особом виде/порядке (скрыть, отсортировать, интеграция с другим модулем/шаблоном), предусмотрен механизм внедрения собственных Запросов в Фильтр.
Например. — «Нужно отсортировать Товар так, что когда у него цена 0 (ноль), то перемещать его в конец списка«.
Для этого нужно вставить (лучше модификатором) в массив параметров $filter_data своё условие.
Пример для контроллера категории:
//стандартный массив параметров контроллера Категории
$filter_data = array(
‘filter_category_id’ => $category_id,
‘filter_filter’ => $filter,
‘sort’ => $sort,
‘order’ => $order,
‘start’ => ($page — 1) * $limit,
‘limit’ => $limit
);/*ВАШ код*/
$filter_data[‘query_order_by’] = «IF(p.`price` = ‘0’, 1, 0)»;
//или можно добавить собственное условие, например, когда будет сортировка по Цене
if($sort == ‘p.price’) {
$filter_data[‘query_order_by’] = «IF(p.`price` = ‘0’, 1, 0)»;
}
/*end ВАШ код*/
//запросы к БД — стандартный код Opencart
$product_total = $this->model_catalog_product-> getTotalProducts($filter_data);
$results = $this->model_catalog_product-> getProducts($filter_data);
Пример кода модификатора:
<?xml version=»1.0″ encoding=»utf-8″?>
<modification>
<name>FIX Price if 0 end in FilterVier_SEO</name>
<code>fix_price_fv</code>
<version>1.0</version>
<author>Vier</author>
<link></link>
<file path=»catalog/controller/product/category.php»>
<operation>
<search><![CDATA[$results = $this->model_catalog_product-> getProducts($filter_data);]]></search>
<add position=»before»><![CDATA[
/*fix_price_fv*/
if($sort == ‘p.price’) {$filter_data[‘query_order_by’] = «IF(p.`price` = ‘0’, 1, 0)»;}
/*end fix_price_fv*/
]]></add>
</operation>
</file>
</modification>
Пояснение по дополнительным ключам переменной $filter_data для запросов к Фильтру (значения ключей — это примеры):
//для getTotalProducts
$filter_data[‘query_total_pole‘] = » COUNT(DISTINCT IF(‘ВАШЕ_условие’)) AS `total` «; // условие по Полю, и должно возвращать одно поле `total`
$filter_data[‘query_total_join‘] = » LEFT JOIN `».DB_PREFIX.»ВАША_таблица` AS tabl2 ON (p.`product_id` = tabl2.`product_id`)»; // JOIN-запрос для подсоединения дополнительной таблицы
$filter_data[‘query_total_where‘] = » tabl2.`pole` > 5 AND p.`pole` = tabl2.`pole` «; // условие в WHERE (вначале без WHERE и AND)
$filter_data[‘query_total_group_by‘] = » GROUP BY tabl2.`pole` «; // Группировка (вначале с GROUP BY)//для getProducts
$filter_data[‘query_pole‘] = » tabl2.`pole`, tabl2.`pole2` AS `colum` «; // добавить поле (можно несколько через запятую)
$filter_data[‘query_join‘] = » LEFT JOIN `».DB_PREFIX.»ВАША_таблица` AS tabl2 ON (p.`product_id` = tabl2.`product_id`)»; // JOIN-запрос для подсоединения дополнительной таблицы
$filter_data[‘query_where‘] = » tabl2.`pole` > 5 AND p.`pole` = tabl2.`pole` «; // условие в WHERE (вначале без WHERE и AND)
$filter_data[‘query_group_by‘] = » GROUP BY tabl2.`pole` «; // Группировка (вначале с GROUP BY)
$filter_data[‘query_order_by‘] = » tabl2.`pole` DESC, `colum` «; // Сортировка (вначале без ORDER BY — можно несколько через запятую)