Анонс SeoFilter - ЧПУ+SEO для mFilter2 и не только
[SeoFilter] — удобное управление ЧПУ ссылками, мета-тегами и генерация текстов.
[Купить компонент в modstore] [Демо-версия]
Добрый день! Представляю компонент, идея которого зародилась довольно таки давно, и уже было подобное решение, с которого я и начинал. Большое спасибо Дмитрию Зарубину — автору того поста, а также Василию, за прекрасные уроки по написанию компонентов.
Основные возможности:
— работа из коробки с mFilter2;
— поддержка любых полей в фильтре: поля ресурса, поля товара, опций miniShop2, TV и любых своих;
— работа без двойной транслитерации (подробнее дальше);
— любой формат ссылок для поля (/color-white, /white-color, /white, /belyi и т.д);
— статистика переходов на страницы как по ссылкам, так и через фильтр;
— интеграция с компонентом frontendManager (добавлен контроллер для редактирования с фронта);
— возможность выбирать и прописывать в шаблоны мин/макс значения по числовым полям;
— prepareSnippet для дополнительной обработки шаблонов, для большей гибкости выборок;
— SEO шаблоны с Fenom и склонения через сервис morpher (Заголовок на скриншоте:)
Подробнее под катом.
Ещё немного отступлений, перед технической частью:
Компонент родился в рамках работы над одним проектом совместно с человеком по SEO, с которым сотрудничаю уже больше года. Изначально было достаточно решения по инструкции, приведённой по ссылке выше. Но дальше аппетиты росли, и также росла необходимость собрать всё в одном месте, так как сложность поддержки росла.
В проекте используется большое количество фильтров, значения для которых хранятся в других таблицах, а в полях msProductData только ID значений. Все поля там были созданы через msFieldsManager, а в качестве кастомной таблицы идеально подошло решение customExtra Ильи Уткина, который мне не раз помогал умным советом. Спасибо, Илья!
Теперь техническая часть:
Интерфейс компонента состоит из 4 вкладок:
Чтобы создать максимально удобный и универсальный фильтр несколько раз пришлось переделывать всё.
В итоге получилась такая логика:
Допустим, у вас уже установлен mSearch2 и настроен фильтр, где вы получаете такие адреса:
«catalog?category=14&color=черный». То есть здесь уже прописана настройка aliases(синонимы).
1. Далее добавляем поле в SeoFilter, например цвет:
После сохранения поля, автоматически будут найдены значения поля цвет у всех товаров и добавлены во вкладку словарь, где значения также транлитерируются/переведутся (в зависимости от ваших правил формирования дружественных url). И если, включена настройка склонять по падежам с помощью сервиса morpher.ru, то опять таки, автоматически будут прописаны все падежи. А если указать свой логин и пароль от сервиса, то будут получены дополнительные поля (где, куда, откуда и множественное число):
2. Уже можем перейти к созданию SEO правила.
На скриншоте сразу две вкладки в режиме редактирования.
После его сохранения формируются url-адреса в таблицу.
Чем больше полей добавить в правило, тем больше адресов сформируется, перемножив значения полей друг на друга.
3. Теперь можно посмотреть на получившиеся адреса
И если нажать на галочки использовать индивидуальные мета-теги или показывать в меню, появятся ещё дополнительные поля. Подсмотрел в компонентах у Володи, спасибо! Индивидуальные мета-теги будут приоритетнее, чем прописанные в правиле. А показывать в меню связано со сниппетом, но об этом не в этот раз.
В целом, действий на втором этапе достаточно, чтобы уже можно было перейти на страницу и посмотреть результат. На данном этапе, при выборе цвета в фильтре поменяется только url, и meta name=«description».
Чтобы менялись такие поля, как h1, introtext (а всего их 7), нужно прописать классы и плейсхолдеры в вёрстке. То есть там, где у вас заголовок (h1) нужно добавить класс .sf_h1 и плейсхолдер
Пока пишу обзор, понимаю, что пятой вкладкой в компоненте нужно сделать «Инструкцию».
С компонентом также идут сниппеты, которые нужны для формирования ссылок, на эти страницы. Есть как и более быстрый, который принимает id поля и значение, после чего вернёт массив со значением и синонимом, или же подставит значения в чанк (или inline) указанный в параметре tpl.
Второй более сложный и скорее всего, будет переписан к релизу.
Также в планах сделать сниппет для формирования меню и сайты карта, или инструкцию, как это сделать с pdoTools. Также в будущих версиях добавлю формирование меню через ajax, с сортировкой по просмотрам.
Ещё немного о добавлении нескольких полей в правило: по умолчанию добавляя поля приоритет будет проставляться автоматически, начиная с 0. Изменять порядок можно перетаскиванием удерживая поле.
В последующих релизах будет добавлено условие для создания конкретных страниц (то есть сформировать страницы с полями только выбранных цветов и определённых категорий).
Также это нужно для объединения нескольких значений одного поля, пример:
товары есть тёмно-серого цвета и светло-серого, а можно будет сделать страницу с товарами серого цвета.
Ну и самое интересное, компонент автоматически будет отслеживать изменения полей в товарах и добавлять новые значения в словарь, автоматически формируя ссылки. Для этого предусмотрены настройки: какие шаблоны отслеживать и какие типы ресурсов. Даже если добавите напрямую через базу данных, избегая плагинов на изменение ресурса, компонент всё равно увидит это поле, когда кто-нибудь поставит галочку напротив него в фильтре, и опять создаст новые ссылки для всех правил с этим полем.
Ещё есть такие фишки, которые при изменения синонимов поля/слова, изменят ссылки и адреса, связанные с этим полем/словом.
И да, SeoFilter будет платным, первая версия 990 руб, после завершения всех планов, цена поднимется.
Компонент отправлю в modstore на следующей неделе, осталось дописать лексиконы, перепроверить на разных версиях. А пока задавайте вопросы, кого интересует, буду рад ответить!)
=========
UPD: (20.08) — обновление компонента.
[Купить компонент в modstore] [Демо-версия]
Добрый день! Представляю компонент, идея которого зародилась довольно таки давно, и уже было подобное решение, с которого я и начинал. Большое спасибо Дмитрию Зарубину — автору того поста, а также Василию, за прекрасные уроки по написанию компонентов.
Основные возможности:
— работа из коробки с mFilter2;
— поддержка любых полей в фильтре: поля ресурса, поля товара, опций miniShop2, TV и любых своих;
— работа без двойной транслитерации (подробнее дальше);
— любой формат ссылок для поля (/color-white, /white-color, /white, /belyi и т.д);
— статистика переходов на страницы как по ссылкам, так и через фильтр;
— интеграция с компонентом frontendManager (добавлен контроллер для редактирования с фронта);
— возможность выбирать и прописывать в шаблоны мин/макс значения по числовым полям;
— prepareSnippet для дополнительной обработки шаблонов, для большей гибкости выборок;
— SEO шаблоны с Fenom и склонения через сервис morpher (Заголовок на скриншоте:)
{$category_i} {$color_r} цвета у метро {$metro}
Подробнее под катом.
Ещё немного отступлений, перед технической частью:
Компонент родился в рамках работы над одним проектом совместно с человеком по SEO, с которым сотрудничаю уже больше года. Изначально было достаточно решения по инструкции, приведённой по ссылке выше. Но дальше аппетиты росли, и также росла необходимость собрать всё в одном месте, так как сложность поддержки росла.
В проекте используется большое количество фильтров, значения для которых хранятся в других таблицах, а в полях msProductData только ID значений. Все поля там были созданы через msFieldsManager, а в качестве кастомной таблицы идеально подошло решение customExtra Ильи Уткина, который мне не раз помогал умным советом. Спасибо, Илья!
Теперь техническая часть:
Интерфейс компонента состоит из 4 вкладок:
Чтобы создать максимально удобный и универсальный фильтр несколько раз пришлось переделывать всё.
В итоге получилась такая логика:
Допустим, у вас уже установлен mSearch2 и настроен фильтр, где вы получаете такие адреса:
«catalog?category=14&color=черный». То есть здесь уже прописана настройка aliases(синонимы).
1. Далее добавляем поле в SeoFilter, например цвет:
После сохранения поля, автоматически будут найдены значения поля цвет у всех товаров и добавлены во вкладку словарь, где значения также транлитерируются/переведутся (в зависимости от ваших правил формирования дружественных url). И если, включена настройка склонять по падежам с помощью сервиса morpher.ru, то опять таки, автоматически будут прописаны все падежи. А если указать свой логин и пароль от сервиса, то будут получены дополнительные поля (где, куда, откуда и множественное число):
2. Уже можем перейти к созданию SEO правила.
На скриншоте сразу две вкладки в режиме редактирования.
После его сохранения формируются url-адреса в таблицу.
Чем больше полей добавить в правило, тем больше адресов сформируется, перемножив значения полей друг на друга.
3. Теперь можно посмотреть на получившиеся адреса
И если нажать на галочки использовать индивидуальные мета-теги или показывать в меню, появятся ещё дополнительные поля. Подсмотрел в компонентах у Володи, спасибо! Индивидуальные мета-теги будут приоритетнее, чем прописанные в правиле. А показывать в меню связано со сниппетом, но об этом не в этот раз.
В целом, действий на втором этапе достаточно, чтобы уже можно было перейти на страницу и посмотреть результат. На данном этапе, при выборе цвета в фильтре поменяется только url, и meta name=«description».
Чтобы менялись такие поля, как h1, introtext (а всего их 7), нужно прописать классы и плейсхолдеры в вёрстке. То есть там, где у вас заголовок (h1) нужно добавить класс .sf_h1 и плейсхолдер
[[!+sf.h1:default=`[[*longtitle]]`]].
Названия классов можно изменить в системных настройках в разделе seofilter. Также там, нужно будет указать поля, которые для страницы без параметров будут подставлены.Пока пишу обзор, понимаю, что пятой вкладкой в компоненте нужно сделать «Инструкцию».
С компонентом также идут сниппеты, которые нужны для формирования ссылок, на эти страницы. Есть как и более быстрый, который принимает id поля и значение, после чего вернёт массив со значением и синонимом, или же подставит значения в чанк (или inline) указанный в параметре tpl.
Второй более сложный и скорее всего, будет переписан к релизу.
Также в планах сделать сниппет для формирования меню и сайты карта, или инструкцию, как это сделать с pdoTools. Также в будущих версиях добавлю формирование меню через ajax, с сортировкой по просмотрам.
Ещё немного о добавлении нескольких полей в правило: по умолчанию добавляя поля приоритет будет проставляться автоматически, начиная с 0. Изменять порядок можно перетаскиванием удерживая поле.
В последующих релизах будет добавлено условие для создания конкретных страниц (то есть сформировать страницы с полями только выбранных цветов и определённых категорий).
Также это нужно для объединения нескольких значений одного поля, пример:
товары есть тёмно-серого цвета и светло-серого, а можно будет сделать страницу с товарами серого цвета.
Ну и самое интересное, компонент автоматически будет отслеживать изменения полей в товарах и добавлять новые значения в словарь, автоматически формируя ссылки. Для этого предусмотрены настройки: какие шаблоны отслеживать и какие типы ресурсов. Даже если добавите напрямую через базу данных, избегая плагинов на изменение ресурса, компонент всё равно увидит это поле, когда кто-нибудь поставит галочку напротив него в фильтре, и опять создаст новые ссылки для всех правил с этим полем.
Ещё есть такие фишки, которые при изменения синонимов поля/слова, изменят ссылки и адреса, связанные с этим полем/словом.
И да, SeoFilter будет платным, первая версия 990 руб, после завершения всех планов, цена поднимется.
Компонент отправлю в modstore на следующей неделе, осталось дописать лексиконы, перепроверить на разных версиях. А пока задавайте вопросы, кого интересует, буду рад ответить!)
=========
UPD: (20.08) — обновление компонента.
- Добавлено копирование правил
- Шаблоны для названия ссылки и галочка перегенерировать
- Изменён механизм подсчёта потомков и выборок
- Добавление правил с учётом полей-слайдеров (цена и т.д)
- Две новые настройки для названия ссылки
Поблагодарить автора
Отправить деньги
Комментарии: 120
Оооо! Работаю над похожим функционалом последние три недели. А тут и компонент подоспел со всеми плюшками! Спасибо. Становлюсь в очередь.
Евгений, всегда пожалуйста!)
Мы кстати свой тоже значительно доработали и помудрили с быстродействием. Отрабатывает даже на 40000 товаров в бд на отлично. Можно глянуть на работу тут vivaset.ru/avtomaticheskie-vyiklyuchateli/.
Кстати, вдруг вам пригодится идея: в самой нижней части у нас выводится блок со ссылками, которые читают поисковики. В нашем случае мы формируем их записывая значения в плейсхолдер с массивом в чанках фильтров. Не уверен что это получится нормально на смарти. Но на феном работает отлично.
Мы кстати свой тоже значительно доработали и помудрили с быстродействием. Отрабатывает даже на 40000 товаров в бд на отлично. Можно глянуть на работу тут vivaset.ru/avtomaticheskie-vyiklyuchateli/.
Кстати, вдруг вам пригодится идея: в самой нижней части у нас выводится блок со ссылками, которые читают поисковики. В нашем случае мы формируем их записывая значения в плейсхолдер с массивом в чанках фильтров. Не уверен что это получится нормально на смарти. Но на феном работает отлично.
Да да, что-то вроде такого блока в будущем планирую сделать, но он будет даже больше для людей :)
В основном, решая такие задачи:
Допустим есть категория ванны, где фильтры по материалу, по бренду, по размеру, форме и т.д.
По умолчанию в этой категории, можно будет показать {n} самых популярных ссылок, таких как:
— Акриловые ванны
— Ванны Rocca
— Ванны 170x70.
При выборе акриловых ванн (либо в фильтре, либо при переходе по ссылке) на месте этих ссылок появятся другие, уточняющие популярность непосредственно в акриловых ваннах:
— Акриловые ванны Riho;
— Прямоугольные акриловые ванны;
При этом, скорее всего можно будет задавать шаблон для генерации названия ссылки, изменять порядок, проставлять картинки, например)
А так и у меня всё работает на Fenom, и по скорости от количества товаров вообще никак не должно зависеть, лишь только добавляя единожды все слова в справочник. Обычно отрабатывает быстрее, чем mSearch2 возвращает результаты.
Из нового у вас я заметил группировку всех ссылок к текущей странице, тоже можно сделаь, для этого уже всё предусмотрено, кому-то точно будет полезным. Спасибо за идею!
В основном, решая такие задачи:
Допустим есть категория ванны, где фильтры по материалу, по бренду, по размеру, форме и т.д.
По умолчанию в этой категории, можно будет показать {n} самых популярных ссылок, таких как:
— Акриловые ванны
— Ванны Rocca
— Ванны 170x70.
При выборе акриловых ванн (либо в фильтре, либо при переходе по ссылке) на месте этих ссылок появятся другие, уточняющие популярность непосредственно в акриловых ваннах:
— Акриловые ванны Riho;
— Прямоугольные акриловые ванны;
При этом, скорее всего можно будет задавать шаблон для генерации названия ссылки, изменять порядок, проставлять картинки, например)
А так и у меня всё работает на Fenom, и по скорости от количества товаров вообще никак не должно зависеть, лишь только добавляя единожды все слова в справочник. Обычно отрабатывает быстрее, чем mSearch2 возвращает результаты.
Из нового у вас я заметил группировку всех ссылок к текущей странице, тоже можно сделаь, для этого уже всё предусмотрено, кому-то точно будет полезным. Спасибо за идею!
Добрый, а этот модуль работает только с msearch? Или отдельно на нем можно создать фильтрацию?
А каким образом у вас реализована смена SEO-текста внизу, под товарами? Это уже физические страницы в дереве?
Нет. Это реализовано посредством MIGX ТВшки в ресурсе с фильтрацией. В поле прописана ссылка на ЧПУ страницу и всё что надо для сео. Отработка идёт как сниппетом при загрузке страницы, так и ajax на событие mse2_load.
Если что, то в компоненте SeoFilter такая поддержка текстовых полей по умолчанию. Если установлен ACE, то он будет подгружен для поля content, где очень гибко можно настроить тексты, не создавая ресурсов)
Наверно на демке мне стоит раскрыть все возможности компонента)
Наверно на демке мне стоит раскрыть все возможности компонента)
Хорошо бы описать. Такая гибкость даёт еще больше преимуществ =)
А можно вкратце пример, какой код будет в редакторе?
А можно вкратце пример, какой код будет в редакторе?
Отличный компонент, в настоящее время такой нужен. Жду релиза.
Также в планах сделать сниппет для формирования меню и сайты картаЯ правильно понимаю, что в карту сайта можно будет добавлять скомбинированные вашим компонентом страницы)?
з.ы. забавная опечаточка вышла)
Да, как минимум добавляя в pdoSitemap в параметр &tplWrapper перед вызов сниппета (sfSitemap), который будет отвечать за добавление ссылок в таком же формате.
Но прям в первом релизе не планировал, но если времени хватит, то добавлю)
Но прям в первом релизе не планировал, но если времени хватит, то добавлю)
Евгений, круто! Это просто гениально! Этот компонент в разы увеличивает функционал и привлекательность Modx. Супер! С нетерпением жду релиза. 100% приобретаю!
Прям способ довести сеошников до экстаза без регистрации и смс :)
офигенно
Хорошее предложение, но как будет работать выбор множественных критериев? К примеру, выбор пары-тройки брендов и к ним ещё по несколько параметров?
Выше привели пример, но всё это хорошо, когда ищется по 1 критерию в каждом фильтре
Выше привели пример, но всё это хорошо, когда ищется по 1 критерию в каждом фильтре
Хороший вопрос!
По умолчанию, при множественном выборе нескольких значений одного фильтра, подтягиваются обычные поля страницы, и адрес будет состоять из get параметров. (/telefony?brand=1,2&color=Синий)
Но я ещё не упомянул в заметке про базовые правила. Если в окошке редактирования правила, связанного только с полем «Цвет», поставить галочку "Базовое правило", то в таком случае получится адрес "/telefony/sinie?brand=1,2" и все текста, будут связаны с синими телефонами.
После релиза планирую добавить условия к полям при создании правила, где можно будет добавить одно и то же поле, указывая какие значения из него брать: все, или только некоторые, ну и ничто не помешает добавить совсем другое поле.
Например, если взять минимум, что будет выбрано 2 производителя и 1 цвет, то таких возможных страниц, при 10 значениях в обоих группах, будет 900(10*(10-1)*10), а вероятность их использования, и тем более релевантности поисковым запросам сильно падает. Всё таки мало-кто ищет подобное:
Синие телефоны Samsung и Apple (/telefony/sinie/samsung-i-apple)
Красные телефоны Nokia и HTC. (/telefony/krasnye/nokia-i-htc)
Хотя Яндекс и отдаёт подобные результаты, но в wordstat таких запросов нет :)
Контент-менеджер или SEO-шник просто замучается составлять правила и шаблоны на такие страницы.
Поэтому такая настройка будет лишь нужна по мере-необходимости, и чаще всего для двух значений одного поля, без использования второго поля)
По умолчанию, при множественном выборе нескольких значений одного фильтра, подтягиваются обычные поля страницы, и адрес будет состоять из get параметров. (/telefony?brand=1,2&color=Синий)
Но я ещё не упомянул в заметке про базовые правила. Если в окошке редактирования правила, связанного только с полем «Цвет», поставить галочку "Базовое правило", то в таком случае получится адрес "/telefony/sinie?brand=1,2" и все текста, будут связаны с синими телефонами.
После релиза планирую добавить условия к полям при создании правила, где можно будет добавить одно и то же поле, указывая какие значения из него брать: все, или только некоторые, ну и ничто не помешает добавить совсем другое поле.
Например, если взять минимум, что будет выбрано 2 производителя и 1 цвет, то таких возможных страниц, при 10 значениях в обоих группах, будет 900(10*(10-1)*10), а вероятность их использования, и тем более релевантности поисковым запросам сильно падает. Всё таки мало-кто ищет подобное:
Синие телефоны Samsung и Apple (/telefony/sinie/samsung-i-apple)
Красные телефоны Nokia и HTC. (/telefony/krasnye/nokia-i-htc)
Хотя Яндекс и отдаёт подобные результаты, но в wordstat таких запросов нет :)
Контент-менеджер или SEO-шник просто замучается составлять правила и шаблоны на такие страницы.
Поэтому такая настройка будет лишь нужна по мере-необходимости, и чаще всего для двух значений одного поля, без использования второго поля)
Также это нужно для объединения нескольких значений одного поля, пример:
товары есть тёмно-серого цвета и светло-серого, а можно будет сделать страницу с товарами серого цвета.
С Вашим примером «Красные телефоны Nokia и HTC» — согласен, но бывает и много других, более актуальных, которые в сумме много трафика дадут…
Вот идеальный пример, когда 2 параметра идеально работаю www.shop-project.ru/catalog/2-etazh-doma/proekt/ploshad-from-200-to-300/material-is-kirpich/, двумя параметрами можно много НЧ запросов собирать на обширных тематиках. В данном примере мы фильтруем по материалу стен и квадратуре. Получается очень хороший тайтл и H1 «ПРОЕКТЫ ДВУХЭТАЖНЫХ ДОМОВ, ДОМОВ ИЗ КИРПИЧА, ПЛОЩАДЬЮ ОТ 200 М2 ДО 300 М2» и.т.д. на том сайте какие угодно вариации, они очень много запросов собирают к примеру дом из кирпича с гаражом.
Так что было бы здорово, если хотя бы по двум разным параметрам можно было бы сделать)
Вот идеальный пример, когда 2 параметра идеально работаю www.shop-project.ru/catalog/2-etazh-doma/proekt/ploshad-from-200-to-300/material-is-kirpich/, двумя параметрами можно много НЧ запросов собирать на обширных тематиках. В данном примере мы фильтруем по материалу стен и квадратуре. Получается очень хороший тайтл и H1 «ПРОЕКТЫ ДВУХЭТАЖНЫХ ДОМОВ, ДОМОВ ИЗ КИРПИЧА, ПЛОЩАДЬЮ ОТ 200 М2 ДО 300 М2» и.т.д. на том сайте какие угодно вариации, они очень много запросов собирают к примеру дом из кирпича с гаражом.
Так что было бы здорово, если хотя бы по двум разным параметрам можно было бы сделать)
Так можно же сделать правило с двумя разными параметрами или даже с тремя или с десятью :)
Есть ещё фишка, чтобы сделать с двумя значениями одного параметра, но там надо со словарём повозиться)
«ПРОЕКТЫ ДВУХЭТАЖНЫХ ДОМОВ, ДОМОВ ИЗ КИРПИЧА, ПЛОЩАДЬЮ ОТ 200 М2 ДО 300 М2» такой тайтл я запросто динамически сформирую :)
Есть ещё фишка, чтобы сделать с двумя значениями одного параметра, но там надо со словарём повозиться)
«ПРОЕКТЫ ДВУХЭТАЖНЫХ ДОМОВ, ДОМОВ ИЗ КИРПИЧА, ПЛОЩАДЬЮ ОТ 200 М2 ДО 300 М2» такой тайтл я запросто динамически сформирую :)
а как это сделать, есть где почитать? Хочу для теста связать эти параметры prntscr.com/gputk5 (чтобы h1, тайтл и юрл были нормальными). Если делаю так, то вообще все перестает работать prntscr.com/gpuzlb
Правильно делаете)
В правилах в текстах пишите просто в таком виде:
Окончание _r — означает родительный падеж, если включено склонение в настройках)
В правилах в текстах пишите просто в таком виде:
Гаражи из {$material_r} площадью {$ploshad}
На скриншоте не понял, что означает garag. Все переменные берутся из синонима поля. Окончание _r — означает родительный падеж, если включено склонение в настройках)
Извините, но как то я запутался, ничего не получается…
К примеру, пытаюсь связать параметр Общая площадь и Комнаты prntscr.com/gpxjhi
Захожу в правило «Общая площадь» нужно ли нажать добавить поле «комнаты» prntscr.com/gpxk5y так prntscr.com/gpxlgb
После заполнил вкладку СЕО prntscr.com/gpxtx4
На фронте теперь комбинация заработала prntscr.com/gpxv01 но если оставить только выбор на «Общая площадь» — то перестало работать (h1, тайтл не подставились)
К примеру, пытаюсь связать параметр Общая площадь и Комнаты prntscr.com/gpxjhi
Захожу в правило «Общая площадь» нужно ли нажать добавить поле «комнаты» prntscr.com/gpxk5y так prntscr.com/gpxlgb
После заполнил вкладку СЕО prntscr.com/gpxtx4
На фронте теперь комбинация заработала prntscr.com/gpxv01 но если оставить только выбор на «Общая площадь» — то перестало работать (h1, тайтл не подставились)
Нужно было скопировать правило общая площадь и туда добавить поле комнаты.
Тогда грубо говоря оно будет называться «Общая площадь + Комнаты»
Если ещё есть вопросы или не разберётесь, то пришлите мне через поддержку дополнений modstore.pro/office/support#office/support/add
данные для входа, посмотрю и поправлю так как вам нужно :)
Тогда грубо говоря оно будет называться «Общая площадь + Комнаты»
Если ещё есть вопросы или не разберётесь, то пришлите мне через поддержку дополнений modstore.pro/office/support#office/support/add
данные для входа, посмотрю и поправлю так как вам нужно :)
Несколько раз мне уже предъявляли за то, что «в этом вашем MODX как в Битрикс SEO URL не сделать, что вы нам предлагаете». Хе-хе-хе.
Будет интересно посмотреть :)
Честно говоря, у меня уже более года есть компонент, который даже называется так же =) Трудиться, работает на нескольких сайтах, но идеальным его не могу назвать пока, нюансов так много всплывает в процессе его настройки.
Честно говоря, у меня уже более года есть компонент, который даже называется так же =) Трудиться, работает на нескольких сайтах, но идеальным его не могу назвать пока, нюансов так много всплывает в процессе его настройки.
Аналогично, только называется он у меня не так, нет плюшек с morpher, да и собрал я его совсем недавно)… вот тестирую на нескольких маленьких проектах… и честно говоря, готовым его назвать тяжело, слишком много мелких и не очень нюансов всплывает. Надеюсь данное решение будет более полным и что самое важное будет развиваться. Покупать однозначно буду, как минимум для изучения =)
Прикольно. Видимо название достаточно распространенное, ибо у меня тоже есть компонент seoFilter, около года валяется, на одном моем проекте задействован по-полной. Правда функционал несколько иначе работает, в частности, ему вообще не нужен mFilter2.
Первый мой плагин, больше года назад тоже так назывался :)
А потом долго думал над названием и лучше варианта не придумал.
Компонент и сейчас может работать без привязки к mFilter2, также соберёт словарь, сможет формировать ссылки на страницы и передавать им GET/REQUEST-параметры с выставлением плейсхолдеров.
Скорее всего даже и без miniShop2 будет работать на полях ресурса и ТВ-полях, проверю после релиза и укажу в документации)
А потом долго думал над названием и лучше варианта не придумал.
Компонент и сейчас может работать без привязки к mFilter2, также соберёт словарь, сможет формировать ссылки на страницы и передавать им GET/REQUEST-параметры с выставлением плейсхолдеров.
Скорее всего даже и без miniShop2 будет работать на полях ресурса и ТВ-полях, проверю после релиза и укажу в документации)
Добрый день!
По описаниям отличный плагин! Посмотрим его в деле.
Но возникли вопросы:
1. Будут ли снижены цены первым покупателям?
2. Какая скорости работы плагина. Смотрел скорость по Гуглю в вашем примере — более 1 сек. Это очень долго. Кешируется ли ваше дополнение?
Спасибо жду ответа
По описаниям отличный плагин! Посмотрим его в деле.
Но возникли вопросы:
1. Будут ли снижены цены первым покупателям?
2. Какая скорости работы плагина. Смотрел скорость по Гуглю в вашем примере — более 1 сек. Это очень долго. Кешируется ли ваше дополнение?
Спасибо жду ответа
Добрый день!
Компонент уже отправлен на проверку, но на акционный период не попадает.
1. Цена для первых покупателей будет 990 рублей, считайте что -30% от цены 1490, которая будет после некоторых обновлений :) Про обновления напишу, как компонент появится в магазине, дополнив тему или в новом топике.
2. Не знаю, про какой пример говорите, здесь я ничего ещё не выкладывал)
Само по себе дополнение при работе не отнимает скорость и даже не прибавляет запросы на странице с фильтром, как минимум после первой генерации страницы в кэш. Но и при первом запуске не замечал.
Увеличение количества запросов есть, когда уже срабатывает плагин на подобный url: "/razdel/sinij/planshetyi".
Скорость при этом как-то значительно не отличается. Всё в пределах погрешности ~0.01 сек.
В личку вам отправлю тестовые сайты, где стоят последние версии. А на днях и демку нормальную сделаю)
Отдельного кэширования в дополнении нет, это всё таки динамические данные, которые постоянно могут обновляться.
Компонент уже отправлен на проверку, но на акционный период не попадает.
1. Цена для первых покупателей будет 990 рублей, считайте что -30% от цены 1490, которая будет после некоторых обновлений :) Про обновления напишу, как компонент появится в магазине, дополнив тему или в новом топике.
2. Не знаю, про какой пример говорите, здесь я ничего ещё не выкладывал)
Само по себе дополнение при работе не отнимает скорость и даже не прибавляет запросы на странице с фильтром, как минимум после первой генерации страницы в кэш. Но и при первом запуске не замечал.
Увеличение количества запросов есть, когда уже срабатывает плагин на подобный url: "/razdel/sinij/planshetyi".
Скорость при этом как-то значительно не отличается. Всё в пределах погрешности ~0.01 сек.
В личку вам отправлю тестовые сайты, где стоят последние версии. А на днях и демку нормальную сделаю)
Отдельного кэширования в дополнении нет, это всё таки динамические данные, которые постоянно могут обновляться.
Когда можно будет приобрести?
Сегодня)
Дополнение опубликовано modstore.pro/packages/ecommerce/seofilter
Документация на github ещё не принята, но копия находится здесь: s9767.h8.modhost.pro/dokumentacziya/
Дополнение опубликовано modstore.pro/packages/ecommerce/seofilter
Документация на github ещё не принята, но копия находится здесь: s9767.h8.modhost.pro/dokumentacziya/
Приобрел, изучаю. Очень интересно.
Спасибо за труды
Спасибо за труды
Таки годнота ?)
Приеду домой потестю и куплю. Спасибо.
Приеду домой потестю и куплю. Спасибо.
Потестил. Вердикт — годнота =)
Только у меня почему-то не получилось задать фильтры с условием с ценой.
0) joxi.ru/brRe0JdtQV5k8A
1) joxi.ru/RmzYd1vCWGqQZr
2) joxi.ru/52an3bJCGZLBMA (http://joxi.ru/a2XW5b7tyZEJ7m)
Чет неправильно делаю?
З.Ы.
Может будет возможно\удобно сделать возможность копирования правила?
Только у меня почему-то не получилось задать фильтры с условием с ценой.
0) joxi.ru/brRe0JdtQV5k8A
1) joxi.ru/RmzYd1vCWGqQZr
2) joxi.ru/52an3bJCGZLBMA (http://joxi.ru/a2XW5b7tyZEJ7m)
Чет неправильно делаю?
З.Ы.
Может будет возможно\удобно сделать возможность копирования правила?
Спасибо за обратную связь!
Да, с числовыми полями я что-то намудрил :)
Постараюсь сегодня-завтра поправить, чтобы можно было создавать страницы: недорогие товары или премиальные товары)
И по копированию правила — скорее всего да, тоже сделаю. Думал об этом)
Но уже сейчас можно открыть два правила одновременно и расположить рядом на экране, копируя тексты друг-друга.
Да, с числовыми полями я что-то намудрил :)
Постараюсь сегодня-завтра поправить, чтобы можно было создавать страницы: недорогие товары или премиальные товары)
И по копированию правила — скорее всего да, тоже сделаю. Думал об этом)
Но уже сейчас можно открыть два правила одновременно и расположить рядом на экране, копируя тексты друг-друга.
Евгений, благодарю за отличный компонент! Супер решение! Уже приобрел и изучаю.
Поделитесь, пожалуйста, планами о развитии решения на ближайшее будущее.
Поделитесь, пожалуйста, планами о развитии решения на ближайшее будущее.
Спасибо! Прошу прощения, немного задержался с ответом!
Ещё будет 2 обновления до повышения цены:
В первом ближайшем обновлении:
1) Правка с созданием страниц по числовым полям (в виде слайдера которые);
2) Копирование правил;
3) Шаблон для текстового названия url-адреса. (чтобы ещё и текст правильный выводить в меню).
Во втором:
1) Сниппет для формирования меню (по своим параметрам);
2) Сниппет для карты сайта;
3) Возможно текстовый шаблон для добавления ссылки в хлебные крошки;
Можете ещё что-то предлагать, что могло бы пригодится всем)
Ещё будет 2 обновления до повышения цены:
В первом ближайшем обновлении:
1) Правка с созданием страниц по числовым полям (в виде слайдера которые);
2) Копирование правил;
3) Шаблон для текстового названия url-адреса. (чтобы ещё и текст правильный выводить в меню).
Во втором:
1) Сниппет для формирования меню (по своим параметрам);
2) Сниппет для карты сайта;
3) Возможно текстовый шаблон для добавления ссылки в хлебные крошки;
Можете ещё что-то предлагать, что могло бы пригодится всем)
А есть ли возможность (или смысл делать подобное), создание кастомных полей в словаре (или в таблице УРЛ).
Не знаю смогу ли правильно объяснить.
Возможность создать список полей к странице с различными значениями и параметрами. Т.е. иметь возможность дополнительно создать поле, например, с изображением и вывести его при определенном значении фильтра.
Правда не знаю, есть ли в этом какой-либо толк.
Не знаю смогу ли правильно объяснить.
Возможность создать список полей к странице с различными значениями и параметрами. Т.е. иметь возможность дополнительно создать поле, например, с изображением и вывести его при определенном значении фильтра.
Правда не знаю, есть ли в этом какой-либо толк.
Евгений, благодарю за ответ! Супер!
У меня вопрос по пункту «1) Сниппет для формирования меню (по своим параметрам);»
Чтобы избежать разночтений, я задал его в видеоформате, на примере. Ознакомьтесь, пожалуйста: youtu.be/5EfaOLwvNO4
P.S. А к каким срокам ждать этих обновлений?
У меня вопрос по пункту «1) Сниппет для формирования меню (по своим параметрам);»
Чтобы избежать разночтений, я задал его в видеоформате, на примере. Ознакомьтесь, пожалуйста: youtu.be/5EfaOLwvNO4
P.S. А к каким срокам ждать этих обновлений?
Не ожидал настолько круто оформленных вопросов) Спасибо — приятно!)
Отвечу на вопрос про сниппет: Нет, этот сниппет будет для других целей, а ля pdoMenu)
Но то, что показано на видео можно уже и сейчас сделать.
Ради общего интереса сделал на демке похожий функционал, как на видео s9767.h8.modhost.pro/razdel/
Работает с учётом относительности для цвета и категории.
Всего лишь пришлось подкорректировать чанк. Решение не самое изящное, но чтобы в чанках mFilter2 были параметры для ссылок, их учёт относительно от правил, переданных параметров и условий — придётся не слабо переделать исходники mSearch2, что не позволительно)
Конечно можно и копию mFilter2 переделать под себя и классы переопределить, но это уже совсем не стандартная доработка)
Что радует при моём подходе — скорость и количество запросов как-то особо не изменились.
Сам код одного чанка: (во втором по сути меняется порядок ссылки и get-параметр)
Но есть и минусы — чанки в фильтре не обновляются через ajax.
И убирать ссылки на лету при label disabled можно только пробегаясь своим JS скриптом)
Также нужно изменять ссылку при убирании одного get-параметра.
Вывод: такое решение если и может жить, то только для ссылок «первого уровня»:
P.S. Возможно поисковикам хватит и такой грубой реализации но пользователей может запутать.
И по обновлениям — первое со дня на день. Второе скорее всего на следующей неделе.
Отвечу на вопрос про сниппет: Нет, этот сниппет будет для других целей, а ля pdoMenu)
Но то, что показано на видео можно уже и сейчас сделать.
Ради общего интереса сделал на демке похожий функционал, как на видео s9767.h8.modhost.pro/razdel/
Работает с учётом относительности для цвета и категории.
Всего лишь пришлось подкорректировать чанк. Решение не самое изящное, но чтобы в чанках mFilter2 были параметры для ссылок, их учёт относительно от правил, переданных параметров и условий — придётся не слабо переделать исходники mSearch2, что не позволительно)
Конечно можно и копию mFilter2 переделать под себя и классы переопределить, но это уже совсем не стандартная доработка)
Что радует при моём подходе — скорость и количество запросов как-то особо не изменились.
Сам код одного чанка: (во втором по сути меняется порядок ссылки и get-параметр)
<label for="mse2_{$table~$deluimeter~$filter~'_'~$idx}" class="{$disabled}">
{set $link = ''}
{if $.get['cvet']}
{set $word = $.get['cvet']|sfWord:13}
{if $word && $word != $value}
{set $link = '/cvet-'~$word['alias']}
{/if}
{/if}
{set $cat = $value|sfWord:12}
<input type="checkbox" name="{$filter_key}" id="mse2_{$table~$deluimeter~$filter~'_'~$idx}" value="{$value}" {$checked} {$disabled}/>
{if $cat && $cat != $value} //можно добавить " && !$disabled", чтобы ссылка была только на реальную страницу
<a href="{9|url}{$cat['alias']}{$link}">{$cat['value']}</a>
{else}
{$title}
{/if} <sup>{$num}</sup>
</label>
Но есть и минусы — чанки в фильтре не обновляются через ajax.
И убирать ссылки на лету при label disabled можно только пробегаясь своим JS скриптом)
Также нужно изменять ссылку при убирании одного get-параметра.
Вывод: такое решение если и может жить, то только для ссылок «первого уровня»:
<label for="mse2_{$table~$deluimeter~$filter~'_'~$idx}" class="{$disabled}">
{set $word = $value|sfWord:13}
<input type="checkbox" name="{$filter_key}" id="mse2_{$table~$deluimeter~$filter~'_'~$idx}" value="{$value}" {$checked} {$disabled}/>
{if $word && $word != $value } //аналогично можно и с " && !$disabled"
<a href="{9|url}cvet-{$word['alias']}">{$word['value']}</a>
{else}
{$title}
{/if} <sup>{$num}</sup>
</label>
И естественно определяя для каждого поля в mFilter2 свой чанк row. P.S. Возможно поисковикам хватит и такой грубой реализации но пользователей может запутать.
И по обновлениям — первое со дня на день. Второе скорее всего на следующей неделе.
Ого, видео-вопрос)
Мне даже как-то неудобно, что я, как холоп, просто текстом вопросы набираю… =)
Мне даже как-то неудобно, что я, как холоп, просто текстом вопросы набираю… =)
Максим, выложил обновление, где добавил копирование правил и реализацию страниц типа: Недорогие товары.
На демке страница с дешевыми товарами s9767.h8.modhost.pro/razdel/nedorogie
Правда не очень хорошая реализация вышла именно по недорогим товарам. Подумаю как ещё решить, но в целом в новом обновлении открылась возможность создавать страницы для нескольких значений одного поля.
Документацию попозже дополню, но сейчас примерно опишу как повторить.
Когда цена в виде слайдера — всегда передаётся два значения в url через запятую. По сути диапазон.
Условия при добавлении цены в правило для таких страниц не нужно использовать. Но для поля «Цена» нужно добавить галочку: «Поле типа „Слайдер“ (number фильтры)»
И после сохранения для подобных полей не будут собираться значения, так как их очень много может быть и словарь будет засоряться)
Для таких страниц нужно будет в ручную добавить в словарь запрос «100,500» и написать в значении «недорогие», выбрав поле «Цена». (100 — это у меня минимальная цена в разделе, а 500 — просто ограничение для недорогих). Синоним — автоматически запишется.
И при создании правила с ценой будет сформирована одна страница в таблице URL.
Из минусов такого метода, которые ещё не решил — то что нужно знать минимальную стоимость товара на странице.
С копирование правил должно быть всё понятно)
На демке страница с дешевыми товарами s9767.h8.modhost.pro/razdel/nedorogie
Правда не очень хорошая реализация вышла именно по недорогим товарам. Подумаю как ещё решить, но в целом в новом обновлении открылась возможность создавать страницы для нескольких значений одного поля.
Документацию попозже дополню, но сейчас примерно опишу как повторить.
Когда цена в виде слайдера — всегда передаётся два значения в url через запятую. По сути диапазон.
Условия при добавлении цены в правило для таких страниц не нужно использовать. Но для поля «Цена» нужно добавить галочку: «Поле типа „Слайдер“ (number фильтры)»
И после сохранения для подобных полей не будут собираться значения, так как их очень много может быть и словарь будет засоряться)
Для таких страниц нужно будет в ручную добавить в словарь запрос «100,500» и написать в значении «недорогие», выбрав поле «Цена». (100 — это у меня минимальная цена в разделе, а 500 — просто ограничение для недорогих). Синоним — автоматически запишется.
И при создании правила с ценой будет сформирована одна страница в таблице URL.
Из минусов такого метода, которые ещё не решил — то что нужно знать минимальную стоимость товара на странице.
С копирование правил должно быть всё понятно)
Получается, страница будет создана только под один диапазон.
Реально ли в будущем допилить так, чтобы редирект был на страницу, если выбрана максимальная цена не более 500 рублей, или минимальная более 25000.
Было бы неплохо. Наверное.
З.Ы.
Но, лично для меня, приоритет на массовое редактирование в списках урл. Чтобы можно отключить\включить все урл у опреленных правил. А то через шифт все выделять при больших комбинациях несколько неудобно. Ну и добавление в sitemap и вывод списка ссылок (меню), тоже было бы круто.
Не устану благодарить за нужный модуль =)
Реально ли в будущем допилить так, чтобы редирект был на страницу, если выбрана максимальная цена не более 500 рублей, или минимальная более 25000.
Было бы неплохо. Наверное.
З.Ы.
Но, лично для меня, приоритет на массовое редактирование в списках урл. Чтобы можно отключить\включить все урл у опреленных правил. А то через шифт все выделять при больших комбинациях несколько неудобно. Ну и добавление в sitemap и вывод списка ссылок (меню), тоже было бы круто.
Не устану благодарить за нужный модуль =)
На счёт первого, в принципе реализуемо скорее всего.
Даже сейчас на демке сделал одну и ту же страницу для двух диапазонов. Можно набрать в фильтре цену от 100 до 500 и от 100 до 400, адрес будет один и тот же, а результаты разные.
При обновлении страницы у меня автоматически до 500 ставится.
В ближайших обновлениях вряд ли это будет.
Такие страницы сейчас можно сделать, чтобы без фильтра работали, передав условие из GET в параметр where в msProducts.
А по второму, так сейчас же можно почти также редактировать)
В таблице URL выбрать правило в выпадающем списке и выставить в пагинации необходимое число результатов, например 300 и выделив все — отключить)
Скорее всего скоро будет поддержка зависимости полей, чтобы не перемножать все поля друг с другом, а лишь определённые. Пока ещё не придумал, как лучше это сделать, но самому очень надо) (Чтобы все марки авто со всеми моделями не пересекать)
Даже сейчас на демке сделал одну и ту же страницу для двух диапазонов. Можно набрать в фильтре цену от 100 до 500 и от 100 до 400, адрес будет один и тот же, а результаты разные.
При обновлении страницы у меня автоматически до 500 ставится.
В ближайших обновлениях вряд ли это будет.
Такие страницы сейчас можно сделать, чтобы без фильтра работали, передав условие из GET в параметр where в msProducts.
А по второму, так сейчас же можно почти также редактировать)
В таблице URL выбрать правило в выпадающем списке и выставить в пагинации необходимое число результатов, например 300 и выделив все — отключить)
Скорее всего скоро будет поддержка зависимости полей, чтобы не перемножать все поля друг с другом, а лишь определённые. Пока ещё не придумал, как лучше это сделать, но самому очень надо) (Чтобы все марки авто со всеми моделями не пересекать)
Ну тогда получается просто одна страница на два диапазона. Если не определять шаг у ui-слайдера, то попасть ровно на 400 или 500, довольно сложно. Так что если будет возможность редиректить на страницу в диапазоне от 400 до 500, будет очень круто.
А по массовому редактированию, да, я так и пользуюсь сейчас.
А по массовому редактированию, да, я так и пользуюсь сейчас.
Евгений, класс! Благодарю за развернутый ответ!
А сниппет для карты сайта будет формировать все ссылки на все сформированные виртуальные страницы?
А сниппет для карты сайта будет формировать все ссылки на все сформированные виртуальные страницы?
По умолчанию да, а также скорее всего с возможностью ограничить по некоторым правилам или даже с подсчётом (если нет потомков — то нет и ссылки).
Приветствую.
Хотелось бы уточнение. Как правильно создавать страницы типа s9767.h8.modhost.pro/razdel/cvet-zelenyij-i-korichnevyij (где несколько опции из одного поля)
Я разобрался как, но, по сути, там можно по разному играться с условиями. Хотелось бы знать, как делает автор. Спасибо.
Хотелось бы уточнение. Как правильно создавать страницы типа s9767.h8.modhost.pro/razdel/cvet-zelenyij-i-korichnevyij (где несколько опции из одного поля)
Я разобрался как, но, по сути, там можно по разному играться с условиями. Хотелось бы знать, как делает автор. Спасибо.
А не все. Вопрос снимается. Тупил. Достаточно, просто в словарь добавить.
А эту возможность я случайно обнаружил, когда в чанках фильтра было:
Условий да, не задавал никаких для поля.
Поэтому, это из бага превратилось в фичу :)
{set $word = $.get['cvet']|sfWord:13}
Здесь необработанные значения вместе с запятыми начали записываться в словарь и сами склоняться, записывая alias) Оставалось только немного значения подправить и всё стало красиво)Условий да, не задавал никаких для поля.
Поэтому, это из бага превратилось в фичу :)
Пытаемся соединить воедино SHK + mSearch2 + Seofilter. Основные свойства, по которым хотим фильтровать, лежат в TV типа «Список ресурсов», т.е. в базе они хранятся в виде ID ресурса. Для mSearch настроили, чтобы выводились pagetitle вместо id, а вот по Seofilter возник ступор. Он и в словарь ID забирает. Что тут можно придумать?
Для этого есть замечательная настройка для поля — «Значения в другой таблице».
По сути в mSearch2 свои методы фильтрации тоже требуют указания таблиц.
На демке s9767.h8.modhost.pro/ как раз поле категория — это id ресурсов.
Так как для modResource класса дополнительные пакеты подключать не нужно, то в первое поле:
«Компонент» — напишите «seofilter».
После этого компонент будет нормально всё собирать и отслеживать новые значения.
По сути в mSearch2 свои методы фильтрации тоже требуют указания таблиц.
На демке s9767.h8.modhost.pro/ как раз поле категория — это id ресурсов.
Так как для modResource класса дополнительные пакеты подключать не нужно, то в первое поле:
«Компонент» — напишите «seofilter».
После этого компонент будет нормально всё собирать и отслеживать новые значения.
Всё правильно поняли, это я забыл в ТВ поля сделать поддержку сторонних таблиц. Сам просто не пользуюсь тв-шками для такого.
Выложил сразу два обновления, включая решение вашего вопроса и ещё некоторых.
modx.pro/components/12921-the-announcement-seofilter-ncseo-for-mfilter2-and-not-only/#comment-86191
Можете обновиться :)
Выложил сразу два обновления, включая решение вашего вопроса и ещё некоторых.
modx.pro/components/12921-the-announcement-seofilter-ncseo-for-mfilter2-and-not-only/#comment-86191
Можете обновиться :)
Выложил сразу два обновления, включая решение вопроса реализации цен дорогих и дешевых товаров (многие спрашивали).
— Добавлена поддержка значений из других таблиц для ТВ полей
— Добавлена работа для работы полей-слайдеров (недорогие товары и т.д)
— Устранены некоторые ошибки в js и в классе
— Автоматическая генерация названия для новых ссылок при добавлении новых слов
— Лексиконы компонента переведены на английский язык
— Убраны из класса значения по-умолчанию, чтобы не было подстановок на пустых js полях
s9767.h8.modhost.pro/razdel/telefonyi/nedorogie
s9767.h8.modhost.pro/razdel/planshetyi/dorogie
Для таких страниц работает одно правило. Цену можно двигать в диапазоне, урл не поменяется.
Пример кода на Fenom в заголовке:
— Добавлена поддержка значений из других таблиц для ТВ полей
— Добавлена работа для работы полей-слайдеров (недорогие товары и т.д)
— Устранены некоторые ошибки в js и в классе
— Автоматическая генерация названия для новых ссылок при добавлении новых слов
— Лексиконы компонента переведены на английский язык
— Убраны из класса значения по-умолчанию, чтобы не было подстановок на пустых js полях
s9767.h8.modhost.pro/razdel/telefonyi/nedorogie
s9767.h8.modhost.pro/razdel/planshetyi/dorogie
Для таких страниц работает одно правило. Цену можно двигать в диапазоне, урл не поменяется.
Пример кода на Fenom в заголовке:
{$price|ucfirst} {$category|low}{set $pr= $price_input|split} {if $pr[0] == 0}до {$pr[1]}{else}от {$pr[0]}{/if} руб.
Тем кто думает купить в ближайшее время:
Цена на компонент с 1-го сентября поднимется до 1490 руб.
И в начале сентября будет большое обновление.
Следите за новостями :)
Цена на компонент с 1-го сентября поднимется до 1490 руб.
И в начале сентября будет большое обновление.
Следите за новостями :)
Очередное обновление от 08.09.2017
— Добавлена поддержка JSON полей, включая tvSuperSelect
— Изменён приоритет на событие onDocFormSave для поддержки TVSS
— Добавлена работа с любыми суффиксами контейнера (/,.html и т.д)
— Добавлена настройка для добавления своего суффикса к сгенерированным страницам
— Добавлена настройка переадресации на правильный суффикс
— Добавлена настройка с названием параметра пагинации, для передачи № страницы в СЕО тексты
А предыдущие обновления внесли это:
— Добавлена поддержка значений из других таблиц для ТВ полей
И параллельно компонент появился английской версии ModStore — спасибо!
en.modstore.pro/packages/ecommerce/seofilter (пока без англоязычной документации).
— Добавлена поддержка JSON полей, включая tvSuperSelect
— Изменён приоритет на событие onDocFormSave для поддержки TVSS
— Добавлена работа с любыми суффиксами контейнера (/,.html и т.д)
— Добавлена настройка для добавления своего суффикса к сгенерированным страницам
— Добавлена настройка переадресации на правильный суффикс
— Добавлена настройка с названием параметра пагинации, для передачи № страницы в СЕО тексты
А предыдущие обновления внесли это:
— Добавлена поддержка значений из других таблиц для ТВ полей
И параллельно компонент появился английской версии ModStore — спасибо!
en.modstore.pro/packages/ecommerce/seofilter (пока без англоязычной документации).
Евгений, приветствую!
Благодарю за обновления! Сориентируйте, пожалуйста, когда планируете внедрить возможность формирования карты сайта на основе фильтра?
Спасибо!
Благодарю за обновления! Сориентируйте, пожалуйста, когда планируете внедрить возможность формирования карты сайта на основе фильтра?
Спасибо!
Добрый вечер!)
На этой неделе для одного из проектов понадобится сниппет формирования меню. Как раз и карту сайта сделаю и другие «фишки», которые запланировал.
Скорее всего к концу недели выложу и допишу документацию.
На этой неделе для одного из проектов понадобится сниппет формирования меню. Как раз и карту сайта сделаю и другие «фишки», которые запланировал.
Скорее всего к концу недели выложу и допишу документацию.
Класс, благодарю!
На сколько я понял именно так уникальный для различных модификаций сделать не получится?
Только писать скелет и в нем менять определенные слова?
Только писать скелет и в нем менять определенные слова?
Как раз таки и можно уникальные тексты для любых параметров сделать.
Но изначально лучше сделать один SEO шаблон, и уже в таблице URL прописывать индивидуально.
Также индивидуально тексты к виртуальным страницам можно через frontendManager добавлять.
Я правильно понял вопрос?)
Но изначально лучше сделать один SEO шаблон, и уже в таблице URL прописывать индивидуально.
Также индивидуально тексты к виртуальным страницам можно через frontendManager добавлять.
Я правильно понял вопрос?)
Я очень сильно хотел такой компонент пол-года назад. Ваш буду пробывать когда разбогатею.
ps мои хотелки, пишу на всякий случай, вдруг вам пригодится.
Цель — при нажатии на фильтры mFilter2 динамично, без обновления страницы, подгружать:
1. URL — jung-pro.ru/ramki/series-a-creation/
2. Соответтствующие фильтру хлебные крошки — Jung / Рамки / A creation
3. Title — Рамки Jung A creation купить, цены | Jung-pro.ru
4. Description — Рамки Jung A creation, купить, цена, каталог, интернет-магазин, продажа, стоимость
Пример тут jung-pro.ru/vyivod-kabelya/series-a-creation/
Так будет много страниц генерированных mFilter2, с четкими URL и прочим «сео»
ps мои хотелки, пишу на всякий случай, вдруг вам пригодится.
Цель — при нажатии на фильтры mFilter2 динамично, без обновления страницы, подгружать:
1. URL — jung-pro.ru/ramki/series-a-creation/
2. Соответтствующие фильтру хлебные крошки — Jung / Рамки / A creation
3. Title — Рамки Jung A creation купить, цены | Jung-pro.ru
4. Description — Рамки Jung A creation, купить, цена, каталог, интернет-магазин, продажа, стоимость
Пример тут jung-pro.ru/vyivod-kabelya/series-a-creation/
Так будет много страниц генерированных mFilter2, с четкими URL и прочим «сео»
Всё уже реализовано)
С хлебными крошками динамического формирования прям нет, но текст ссылки добавлять туда можно :)
Совсем скоро выложу обновление и распишу все последние возможности уже в отдельном топике.
С хлебными крошками динамического формирования прям нет, но текст ссылки добавлять туда можно :)
Совсем скоро выложу обновление и распишу все последние возможности уже в отдельном топике.
Здравствуйте, Евгений, подскажите пожалуйста будет ли реализована возможность автоматически убирать url по которым нет ни одного товара? Например, есть опция цвет (синий, красный, зеленый), при этом в категории 1 есть товары со всеми цветами, а в категории 2 только красного и зеленого, так как сделать, чтобы не было url категория 2-синий цвет, так как там получается пусто. Можно конечно отключить вручную, товаров и категорий очень много, тысячи.
Добрый вечер!
Думаю смогу прикрутить такой функционал, так как для нового сниппета sfMenu уже сделал возможность выводить страницы только те, где есть ресурсы или где например 5 и более ресурсов.
Подсчёт ресурсов, конечно, операция долгая, на фронте естественно кэшируется, а в админке скорее всего буду привязывать к правилу, чтобы лимита хватало. Сколько у вас максимально страниц на одно правило получается?
Обновление вот-вот выйдет, а с ним и новый топик.
Думаю смогу прикрутить такой функционал, так как для нового сниппета sfMenu уже сделал возможность выводить страницы только те, где есть ресурсы или где например 5 и более ресурсов.
Подсчёт ресурсов, конечно, операция долгая, на фронте естественно кэшируется, а в админке скорее всего буду привязывать к правилу, чтобы лимита хватало. Сколько у вас максимально страниц на одно правило получается?
Обновление вот-вот выйдет, а с ним и новый топик.
В принципе, если в сниппете sfMenu будет вывод страниц только с товарами, то это можно сказать решение проблемы. Вообще на одно правило максимум 100 страниц, самих правил до 300 примерно.
Здравствуйте! Большое спасибо за прекрасный компонент, купил и пользуюсь.
Возникли некоторые трудности и вопросы:
1. При пагинации получается некрасивый url (сеошники ругаются):
prntscr.com/gpslyh
это как то можно убрать или планируется? prntscr.com/gpslyh
2. У меня ну никак не хочет динамически меняться h1, заголовок, контент и т д. выбираю параметр в фильтре и ноль реакции если на, только после того как принудительно обновлю, то идет подмена (без обновления если нажать ctrl+U то в коде все подставляется правильно, но на фронте без обновления странички как я сказал ничего не происходит). Вроде бы все вызовы не кэшированные, не пойму в чем проблема. Ресурс не кэшируемый
3. Так же если в алиас пишу ms|price==price то на фронте пропадает слайдер (http://prntscr.com/gpsk11) цен и стает как чекбокс (http://prntscr.com/gpskk4 )
4. Еще не пойму как это убрать prntscr.com/gpso14, если зайти в исходный код то этого нет, только визуально видно как на скрине
Сам вызов вот prntscr.com/gpsl0z
Возникли некоторые трудности и вопросы:
1. При пагинации получается некрасивый url (сеошники ругаются):
prntscr.com/gpslyh
это как то можно убрать или планируется? prntscr.com/gpslyh
2. У меня ну никак не хочет динамически меняться h1, заголовок, контент и т д. выбираю параметр в фильтре и ноль реакции если на, только после того как принудительно обновлю, то идет подмена (без обновления если нажать ctrl+U то в коде все подставляется правильно, но на фронте без обновления странички как я сказал ничего не происходит). Вроде бы все вызовы не кэшированные, не пойму в чем проблема. Ресурс не кэшируемый
3. Так же если в алиас пишу ms|price==price то на фронте пропадает слайдер (http://prntscr.com/gpsk11) цен и стает как чекбокс (http://prntscr.com/gpskk4 )
4. Еще не пойму как это убрать prntscr.com/gpso14, если зайти в исходный код то этого нет, только визуально видно как на скрине
Сам вызов вот prntscr.com/gpsl0z
Добрый день!
По порядку отвечу:
1. Встречался с подобным запросом ещё до релиза) Это не совсем, конечно, относится к компоненту. Но проблема кроется в том, что pdoPage ловит все GET-параметры. Там несколько вариантов есть решения: наследовать класс, переопределить метод makePageLink и прописать в системных настройках, либо же пытаться обработать строку с готовым url через сниппет модификатор, который будет проверять на наличие GET/REQUEST параметров, на их причастность к SeoFilter на текущей странице и удалять лишнее))
Пока в самом компоненте такого предусмотрено не будет. Но если это прям проблема для многих, то скорее всего придумаю что-то в виде инструкции.
2. У вас даже на скриншоте видно эту проблему. Плейсхолдеры нужно оборачивать в классы, для контент поля класс по умолчанию ".sf_content", для h1 — ".sf_h1" и т.д.
3. При указывании alias, нужно изменить параметр для названия чанка. У вас для цен это будет:
По порядку отвечу:
1. Встречался с подобным запросом ещё до релиза) Это не совсем, конечно, относится к компоненту. Но проблема кроется в том, что pdoPage ловит все GET-параметры. Там несколько вариантов есть решения: наследовать класс, переопределить метод makePageLink и прописать в системных настройках, либо же пытаться обработать строку с готовым url через сниппет модификатор, который будет проверять на наличие GET/REQUEST параметров, на их причастность к SeoFilter на текущей странице и удалять лишнее))
Пока в самом компоненте такого предусмотрено не будет. Но если это прям проблема для многих, то скорее всего придумаю что-то в виде инструкции.
2. У вас даже на скриншоте видно эту проблему. Плейсхолдеры нужно оборачивать в классы, для контент поля класс по умолчанию ".sf_content", для h1 — ".sf_h1" и т.д.
3. При указывании alias, нужно изменить параметр для названия чанка. У вас для цен это будет:
&tplFilter.outer.price=`tpl.mFilter2.filter.slider.shop`
&tplFilter.row.price=`tpl.mFilter2.filter.number.shop`
4. А добавление в title регулируется системной настройкой в разделе SeoFilter «Добавлять SEO-заголовок через разделитель».
2. Спасибо, с этим разобрался) Но есть такой момент теперь, если убираю выбор в фильтре, то заголовок не возвращается в первоначальный вид (название самой категории), аналогично с описанием, оно остается. в чем может быть проблема? Хотя в тайтл и дискрипшн все ок (после снятия выбора)
Вывожу так:
prntscr.com/gptsav
Так же при пагинаци, в исходном коде или после обновления добавляется слово «Страница 2», во визуально не видно по умолчанию
Вызов prntscr.com/gptrnq, у Вас на демо если не ошибась таже проблема
Вывожу так:
prntscr.com/gptsav
Так же при пагинаци, в исходном коде или после обновления добавляется слово «Страница 2», во визуально не видно по умолчанию
Вызов prntscr.com/gptrnq, у Вас на демо если не ошибась таже проблема
При пагинации — это же как раз «фича», а не баг :)
Поисковики же должны различать как-то, что это страницы с пагинацией с разным заголовком.
В yandex постоянно натыкаюсь, что какой-нибудь запрос на такой то странице найден на modx.pro.
Для того чтобы заголовок возвращался назад надо в системных настройках SeoFilter в настройке «Поле, где хранится Заголовок H1» seofilter_h1 прописать pagetitle.
Поисковики же должны различать как-то, что это страницы с пагинацией с разным заголовком.
В yandex постоянно натыкаюсь, что какой-нибудь запрос на такой то странице найден на modx.pro.
Для того чтобы заголовок возвращался назад надо в системных настройках SeoFilter в настройке «Поле, где хранится Заголовок H1» seofilter_h1 прописать pagetitle.
спасибо, помогло)
Еще момент по контенту.
1. Если контент категории пустой а у параметра фильтра задан, то после того как снимаем выбор с фильтра, то пустой контент не отдается обратно, а остается тот, что был последним в фильтре
В ситуации если контент категории заполнен, то возвращается контент категории как и нужно
2. Как быть в ситуации, когда контент категории заполнен и есть уникальность (текст и юрл категории). Но, если мы выберем параметр в фильтре в котором нет сое текста, то получается следующее,
юрл меняется а текст остается с категории, получается текст уже теряет уникальность, так как один и тот же текст доступен по разным юрл (а может быть и по десяткам). Это как в случае с пагинацией, правильно когда при переходе на каждую последующую страничку, текст скрывается и не дублируется. Сейчас для пагинации хорошо работает prntscr.com/gpunz4 (скрывает текст на всех последующих страницах пагинации). Можно ли как то применить тот код для скрытия контента при пагинации (в случае когда мы фильтруем по параметру у которого задан уникальный текст), одним словом связать этот код prntscr.com/gpunz4 с этим prntscr.com/gpupxa (потому как сейчас приходится теперь отказываться от prntscr.com/gpunz4 )
Еще момент по контенту.
1. Если контент категории пустой а у параметра фильтра задан, то после того как снимаем выбор с фильтра, то пустой контент не отдается обратно, а остается тот, что был последним в фильтре
В ситуации если контент категории заполнен, то возвращается контент категории как и нужно
2. Как быть в ситуации, когда контент категории заполнен и есть уникальность (текст и юрл категории). Но, если мы выберем параметр в фильтре в котором нет сое текста, то получается следующее,
юрл меняется а текст остается с категории, получается текст уже теряет уникальность, так как один и тот же текст доступен по разным юрл (а может быть и по десяткам). Это как в случае с пагинацией, правильно когда при переходе на каждую последующую страничку, текст скрывается и не дублируется. Сейчас для пагинации хорошо работает prntscr.com/gpunz4 (скрывает текст на всех последующих страницах пагинации). Можно ли как то применить тот код для скрытия контента при пагинации (в случае когда мы фильтруем по параметру у которого задан уникальный текст), одним словом связать этот код prntscr.com/gpunz4 с этим prntscr.com/gpupxa (потому как сейчас приходится теперь отказываться от prntscr.com/gpunz4 )
1. Пока могу предложить ставить такой контент в категории:
И тогда будет возвращаться. Просто есть проверка пустой ли ответ или нет.
2. Здесь тот же символ пробела для правила можно поставить, чтобы на пустой текст заменять.
И для того чтобы только на первой странице были сео-текста, пропишите в настройке «Имя переменной пагинации в каталоге...» (seofilter_page_key) значение page
Тогда в контенте правила и других полях сможете писать так:
- это символ пробела
И тогда будет возвращаться. Просто есть проверка пустой ли ответ или нет.
2. Здесь тот же символ пробела для правила можно поставить, чтобы на пустой текст заменять.
И для того чтобы только на первой странице были сео-текста, пропишите в настройке «Имя переменной пагинации в каталоге...» (seofilter_page_key) значение page
Тогда в контенте правила и других полях сможете писать так:
{if $page>1?}
Любой динамический контент
{/if}
Здесь параметр {$page} будет содержать номер страницы.
Пробую как Вы написали prntscr.com/gpwzv3 и prntscr.com/gpx0hk — но в таком случае контент вообще не выводится.
С пробелами помогло, спасибо). А можно контент скрыть если 2 и больше параметра скрыто в фильтре?
С пробелами помогло, спасибо). А можно контент скрыть если 2 и больше параметра скрыто в фильтре?
Условие с page надо не в шаблон писать, а непосредственно в текст правила.
Что значит 2 и больше параметра скрыто в фильтре?)
Что значит 2 и больше параметра скрыто в фильтре?)
я правильно понял? в шаблоне prntscr.com/gpxq5k и в самом правиле (вкладка СЕО) prntscr.com/gpxqxi?
Что значит 2 и больше параметра скрыто в фильтре?) — опечатка, не срыто а выбрано
prntscr.com/gpxrrr
Что значит 2 и больше параметра скрыто в фильтре?) — опечатка, не срыто а выбрано
prntscr.com/gpxrrr
В самом правиле контент да, всё верно.
Кстати, конструкции вроде [[*pagetitle]] вроде бы не должны работать, там лучше использовать так: {$id|resource:'pagetitle'}
$id — это id реальной страницы.
А на счёт 2 и больше параметров зависит от правил. Если для одного из двух есть правило и будет стоять галочка «Базовое правило», то будет показываться текст этого правила.
Если базовых нет и правила состоящего из двух этих полей, то выведется контент страницы)
Кстати, конструкции вроде [[*pagetitle]] вроде бы не должны работать, там лучше использовать так: {$id|resource:'pagetitle'}
$id — это id реальной страницы.
А на счёт 2 и больше параметров зависит от правил. Если для одного из двух есть правило и будет стоять галочка «Базовое правило», то будет показываться текст этого правила.
Если базовых нет и правила состоящего из двух этих полей, то выведется контент страницы)
«Пока в самом компоненте такого предусмотрено не будет. Но если это прям проблема для многих, то скорее всего придумаю что-то в виде инструкции.» — будет очень хорошо, если появится инструкция. Это 100% проблема для всех, кто будет продвигать, потому как такой юрл может попасть в индекс
Подумаю, но не в ближайшем обновлении. В октябре скорее всего.
Кто-то через robots закрывает все страницы с get параметрами)
Кто-то через robots закрывает все страницы с get параметрами)
Выпустил обновление, дальнейшее обсуждение можно продолжать там:
modx.pro/components/13407-seofilter-the-long-awaited-update-menu-sitemap/
modx.pro/components/13407-seofilter-the-long-awaited-update-menu-sitemap/
Хотелось бы узнать, надо ли к нему брать mSearch2, или он так работает без этого?
Просто не совсем понятно, зачем два фильтра тогда.
Просто не совсем понятно, зачем два фильтра тогда.
Смотря что Вы хотите сделать)
С mSearch2 поддерживается работа в режиме Ajax (замена всех текстов, заголовков и т.д.).
Без него сможете выводить на сформированных страницах, с уникальными текстами необходимые ресурсы через pdoResources. В этом случае все переходы только по ссылкам.
Сам SeoFilter выставляет GET/REQUEST параметры для их дальнейшей обработки mFilter-у или же любому кастомному сниппету.
С mSearch2 поддерживается работа в режиме Ajax (замена всех текстов, заголовков и т.д.).
Без него сможете выводить на сформированных страницах, с уникальными текстами необходимые ресурсы через pdoResources. В этом случае все переходы только по ссылкам.
Сам SeoFilter выставляет GET/REQUEST параметры для их дальнейшей обработки mFilter-у или же любому кастомному сниппету.
Добрый всем день, как настроить sfLink? делаю все по инструкции, но он не выводит мне ничего…
В данном случае мне нужно было каталоги сделать как меню с подсчетом товаров.
Ну определенный вид вывода всего SEO.
В данном случае мне нужно было каталоги сделать как меню с подсчетом товаров.
Ну определенный вид вывода всего SEO.
{if $parent?}
{set $category_link = $_modx->runSnippet('sfLink',[
'rules'=> '63',
'category'=> $parent,
])}
{set $category = $parent | sfWord : 4} // Данная цифра не понятна мне, может в ней проблема?
<a href="{15|url}{$category_link}/" class="sklad-link">{$category['value']}</a>
// Что такое 15 мне тоже не понятно...
{/if}
Кто сталкивался?
Ещё раз добрый день!)
modx.pro/components/13407/ вот здесь внизу про sfLink.
sfLink выводит по умолчанию сформированное название ссылки и её адрес, при передаче в него параметров, которые совпадают с синонимом полей в переданном(ых) правилах в параметре rules.
Для формирования меню с подсчётом вообще есть сниппет sfMenu.
modx.pro/components/13407/ вот здесь внизу про sfLink.
sfLink выводит по умолчанию сформированное название ссылки и её адрес, при передаче в него параметров, которые совпадают с синонимом полей в переданном(ых) правилах в параметре rules.
Для формирования меню с подсчётом вообще есть сниппет sfMenu.
Добрый день. Евгений, а из за чего компонент может отдавать 404 ошибку?
настраивал по документации, все получается, но когда берешь копируешь эту ссылку с цветом: site.ru/catolog/krasnyj и переходишь по ней компонент отдает 404 ошибку.
.htaccess стандартный пробовал ставить, думал проблема в нем (подставляет в конце категории слеш на конец, а ссылки генерируются без него, срабатывал редирект), но нет все равно отдает 404 ошибку
prntscr.com/hiv49i
prntscr.com/hiv4iq
И еще вопрос. Если у меня уже есть категории для сео, то как мне добиться нужного мне url? Тут нет возможности добавить приставку prntscr.com/hiv5wb
придется переделывать структуру сайта, что очень бы не хотелось делать. мож есть возможность добавить сюда второе поле, которое можно править?
настраивал по документации, все получается, но когда берешь копируешь эту ссылку с цветом: site.ru/catolog/krasnyj и переходишь по ней компонент отдает 404 ошибку.
.htaccess стандартный пробовал ставить, думал проблема в нем (подставляет в конце категории слеш на конец, а ссылки генерируются без него, срабатывал редирект), но нет все равно отдает 404 ошибку
prntscr.com/hiv49i
prntscr.com/hiv4iq
И еще вопрос. Если у меня уже есть категории для сео, то как мне добиться нужного мне url? Тут нет возможности добавить приставку prntscr.com/hiv5wb
придется переделывать структуру сайта, что очень бы не хотелось делать. мож есть возможность добавить сюда второе поле, которое можно править?
Добрый день!
По 404 ошибке напишите мне в тех поддержку на modstore с указанием доступов к сайту.
Но скорее всего другой плагин приоритетом перебивает, Redirector или что-то подобное.
По второму вопросу свободно изменять нельзя, только если оставить в Url параметр: /style-krasnyi.
Это немного изжиток самых первых версий, думаю, что можно будет и отказаться в будущем от строгого формирования и разрешить свободно формировать адреса.
По 404 ошибке напишите мне в тех поддержку на modstore с указанием доступов к сайту.
Но скорее всего другой плагин приоритетом перебивает, Redirector или что-то подобное.
По второму вопросу свободно изменять нельзя, только если оставить в Url параметр: /style-krasnyi.
Это немного изжиток самых первых версий, думаю, что можно будет и отказаться в будущем от строгого формирования и разрешить свободно формировать адреса.
делал у вас на тестовом домене.
из приложений было установлено
неоформленные заказы, минишоп, mSearch2, msImportExport в принципе и все.
>> Url параметр: /style-krasnyi — нужно так: po-styluy/krasnyi
из приложений было установлено
неоформленные заказы, минишоп, mSearch2, msImportExport в принципе и все.
>> Url параметр: /style-krasnyi — нужно так: po-styluy/krasnyi
и по инструкции не совсем понял, как создавать двойные стили, например красные-черные
чтобы url был такой krasnyi-chernyj и товары отобразились красные и черные
вообще как сделать перемножение всех параметров? Вот посмотрите как работают фильтра на этом сайте divaroom.ru/platya/ он на опенкарте. По сути многим как раз нужен вот такой функционал. Не важно будет ли он работать с перезагрузкой, или на аяксе, главное чтобы были физически доступны виртуальные страницы, которые нужны роботу для продвижения.
чтобы url был такой krasnyi-chernyj и товары отобразились красные и черные
вообще как сделать перемножение всех параметров? Вот посмотрите как работают фильтра на этом сайте divaroom.ru/platya/ он на опенкарте. По сути многим как раз нужен вот такой функционал. Не важно будет ли он работать с перезагрузкой, или на аяксе, главное чтобы были физически доступны виртуальные страницы, которые нужны роботу для продвижения.
Для двух цветов самый простой вариант создать новую запись в словаре для поля, где в качестве запроса ввести: «красный, черный» (в таком порядке, как их mFilter2 по умолчанию ловит)
А в качестве адреса и значения — в удобном для себя виде.
Гадать почему была ошибка 404 не могу, будут доступы — будет и ответ :)
.htaccess вообще не должен никак участвовать на modhost.pro
А в качестве адреса и значения — в удобном для себя виде.
Гадать почему была ошибка 404 не могу, будут доступы — будет и ответ :)
.htaccess вообще не должен никак участвовать на modhost.pro
а как на счет функционала фильтра как на этом сайте? divaroom.ru/platya/
там перемножение всех праметров идет. это лучше будет отрабатывать с точки зрения сео.
в твоем же все в ручную нужно делать. доработать можно?
там перемножение всех праметров идет. это лучше будет отрабатывать с точки зрения сео.
в твоем же все в ручную нужно делать. доработать можно?
Да, сделать такое можно конечно же, но за дополнительную плату.
На самом деле для поисковика страницы с заголовками буду считаться разными?
1. «Красные, розовые, коралловые, малиновые, сиреневые, фиолетовые платья»
2. «Красные, розовые, коралловые, малиновые, синие, сиреневые, фиолетовые платья»
Я тут сочетанием, используя комбинаторику, насчитал что при использовании 10 цветов дополнительно 1000 страниц. А при 15 цветах страниц уже будет больше 32 тысяч. А а сайте примере аж 19 цветов!
Поэтому если уж такой функционал делать, то как правило, которое не будет генерировать ссылки а лишь динамически подставлять все значения через запятую. Соответственно и в текстах будет всё через запятую (как впрочем и на примере).
Заметил, что ещё они умудряются пересекать «множественное цветовое поле» с другим полем. В общем в меню или в карту сайта такие адреса точно нет смысла закидывать :)
Если действительно есть желание для формирования таких страниц — пишите мне в скайп waytodesign или на почту через профиль, обсудим более предметно.
На самом деле для поисковика страницы с заголовками буду считаться разными?
1. «Красные, розовые, коралловые, малиновые, сиреневые, фиолетовые платья»
2. «Красные, розовые, коралловые, малиновые, синие, сиреневые, фиолетовые платья»
Я тут сочетанием, используя комбинаторику, насчитал что при использовании 10 цветов дополнительно 1000 страниц. А при 15 цветах страниц уже будет больше 32 тысяч. А а сайте примере аж 19 цветов!
Поэтому если уж такой функционал делать, то как правило, которое не будет генерировать ссылки а лишь динамически подставлять все значения через запятую. Соответственно и в текстах будет всё через запятую (как впрочем и на примере).
Заметил, что ещё они умудряются пересекать «множественное цветовое поле» с другим полем. В общем в меню или в карту сайта такие адреса точно нет смысла закидывать :)
Если действительно есть желание для формирования таких страниц — пишите мне в скайп waytodesign или на почту через профиль, обсудим более предметно.
Если это поле в miniShop2, то нужно выбирать класс msProductOption, тогда подцепятся правильные значения из другой таблицы.
спасибо. Пардон, недостаток кофеина в организме сказывается)
Добрый день.
1. Подскажите а данное дополнение будет работать с таблицами ms2gallery? теги в частности.
2. Можно ли формировать и приязывать правила без привязки к полям таблицы, в ручную например. (подобно как Virtual Page.
3. Не будет конфликтовать с дополнением virtual page?
Спасибо.
1. Подскажите а данное дополнение будет работать с таблицами ms2gallery? теги в частности.
2. Можно ли формировать и приязывать правила без привязки к полям таблицы, в ручную например. (подобно как Virtual Page.
3. Не будет конфликтовать с дополнением virtual page?
Спасибо.
Добрый вечер!
1. Дополнение изначально строилось, чтобы работать с любыми объектами, но в текущей версии буквально пару строк нужно будет подправить. В обновлении, над которым работаю уже поправил.
Есть кейс по интеграции дополнения со старым Gallery + mFilter2.
Думаю и ms2gallery можно сделать SEO-шной)
2. Если я правильно понял суть — то да. Вы можете создать поле, хоть с несуществующим классом или же отключённым. Потом в ручную добавляете значения в словарь, привязывая их к полю. И добавляете в правило.
То есть получилось правило без привязки к каким-то определённым полям. (но к странице нужно обязательно привязать) Сформируются ссылки, которые плагин компонента будет отлавливать и выставлять GET и Request параметры.
3. Virtual Page я ставил давным давно и не особо разбирался что и как там устроено. Возможно и будут конфликтовать, но это решается изменением приоритетов у событий в плагинах.
SeoFilter лучше ставить вперёд, так как если он «свою» страницу не найдёт — отдаст следующему плагину.
1. Дополнение изначально строилось, чтобы работать с любыми объектами, но в текущей версии буквально пару строк нужно будет подправить. В обновлении, над которым работаю уже поправил.
Есть кейс по интеграции дополнения со старым Gallery + mFilter2.
Думаю и ms2gallery можно сделать SEO-шной)
2. Если я правильно понял суть — то да. Вы можете создать поле, хоть с несуществующим классом или же отключённым. Потом в ручную добавляете значения в словарь, привязывая их к полю. И добавляете в правило.
То есть получилось правило без привязки к каким-то определённым полям. (но к странице нужно обязательно привязать) Сформируются ссылки, которые плагин компонента будет отлавливать и выставлять GET и Request параметры.
3. Virtual Page я ставил давным давно и не особо разбирался что и как там устроено. Возможно и будут конфликтовать, но это решается изменением приоритетов у событий в плагинах.
SeoFilter лучше ставить вперёд, так как если он «свою» страницу не найдёт — отдаст следующему плагину.
Спасибо.
Если будут какие-то вопросы после покупки, то всегда сможете задать их в техподдержке по дополнению на modstore)
Есть вопрос, возможно ли вывести список определенного поля/правила, уже сгенерированных слов и превратить его в вид списка карты с ссылками?
Если есть возможность не подскажите как?
Если есть возможность не подскажите как?
уже разобрался, в доках не заметил наличие sfMenu
Очень странное сео решение, делать плагин и не настроить каноникл, тем самым перечеркнуть все труды.
Буду благодарен за подсказку как автоматически менять каноникл
Буду благодарен за подсказку как автоматически менять каноникл
Вы видимо через ajax проверяете работу, просто посмотрев в код страницы — будет корректный canonical.
Есть ли смысл и этот параметр менять через ajax?
Непосредственно canonical на демке выставляет pdoPage с параметром setMeta=`1`
Но всегда можете отключить его и в ручную прописать так:
Есть ли смысл и этот параметр менять через ajax?
Непосредственно canonical на демке выставляет pdoPage с параметром setMeta=`1`
Но всегда можете отключить его и в ручную прописать так:
<link rel="canonical" href="{$_modx->resource.id|url}{$_modx->getPlaceholder('sf.url')}"> //это с включенным Fenom в шаблонах
Добрый день. А мне Screaming Frog SEO Spider показывает все страницы фильтра как Cononicalized, и тег conoinical у них указывает на физическую страницу, а не виртуальную. Как быть в таком случае?
Подскажите, а можно ли вывести в товаре значения какой-либо опции этого товара (например размер), чтобы каждое значение было ссылкой на соответствующий раздел, сгенерированный seoFilter? Чтобы например по клику на 48 размер — переходить на страницу, где все товары 48 размера и т.д.
Конечно!)
Приведу пример на Fenom.
Для этого есть шаблон в правилах и галочка перегенерировать.
Приведу пример на Fenom.
{foreach $_modx->resource.size as $size}
{'!sfLink'|snippet:[
'rules'=>'22',
'size'=>$size
]}
{/foreach}
// вместо 22 - ID правила, связанного с размером. Параметр сниппета size - это синоним поля.
Не забудьте позаботиться о том, чтобы у ссылок были сформированы названия. Для этого есть шаблон в правилах и галочка перегенерировать.
Спасибо, класс!
Доброго времени суток. Подскажите, какие существуют варианты использования компонента SeoFilter, кроме как с mFilter2 (mSearch2) и miniShop2?
К примеру, здесь используется mFilter2?
Суть: нужно настроить ajax-фильтр по tv-параметрам (тип ввода: множественный выбор). Купили SeoFilter, а mFilter2 не установлен, он тоже нужен или есть еще какой-то способ?
Что имею на данный момент: фильтр с генерацией чпу-ссылки «на лету» (в зависимости от выбранных значений) и плагином, который обрабатывает эту виртуальную ссылку и возвращает результат.
К примеру, здесь используется mFilter2?
Суть: нужно настроить ajax-фильтр по tv-параметрам (тип ввода: множественный выбор). Купили SeoFilter, а mFilter2 не установлен, он тоже нужен или есть еще какой-то способ?
Что имею на данный момент: фильтр с генерацией чпу-ссылки «на лету» (в зависимости от выбранных значений) и плагином, который обрабатывает эту виртуальную ссылку и возвращает результат.
Здравствуйте!
Для ajax фильтрации самое простое — приобрести mSearch2.
Но, конечно, можно и самостоятельно написать фильтр и «скрестить» с SeoFilter.
Хотя, напишите мне в поддержку, хочу проверить одну наработку, так как у вас уже есть свёрстанный фильтр.
К примеру, здесь используется mFilter2?— тут не мой SeoFilter используется.
Для ajax фильтрации самое простое — приобрести mSearch2.
Но, конечно, можно и самостоятельно написать фильтр и «скрестить» с SeoFilter.
Хотя, напишите мне в поддержку, хочу проверить одну наработку, так как у вас уже есть свёрстанный фильтр.
Большое спасибо за ответ, внесли ясность. В поддержку написал.
Здравствуйте.
Скажите пожалуйста, компонент позволяет сделать один и тот же товар (ресурс/продукт) доступным по разным ссылкам?
Это нужно для того, чтобы не было дублей. Иначе у нас один и тот же товар или набор товаров со схожими свойствами, будет выдаваться на странице категории по разным фильтрам…
Например:
Имеем товары: раковина в разном исполнении (керамика, чугун, нержавейка, красная, зеленая), унитаз в разном исполнении (керамика, чугун, нержавейка, красный, зеленый)
Мы имеем в категории /rakovina/keramika/krasnaya/ и в категории /rakovina/chugun/zelyonaya/ ссылку на одну и ту же раковину (товар).- один и тот же URL
А нужно чтобы она была доступна по разным ссылкам и с установленными на этой странице характеристиками, скажем /rakoviny/keramicheskaya-krasnaya-vendor-model и /rakoviny/chugunnaya-zelyonaya-vendor-model…
Позволяет ли данный компонент это сделать или он только с категориями работает?
Скажите пожалуйста, компонент позволяет сделать один и тот же товар (ресурс/продукт) доступным по разным ссылкам?
Это нужно для того, чтобы не было дублей. Иначе у нас один и тот же товар или набор товаров со схожими свойствами, будет выдаваться на странице категории по разным фильтрам…
Например:
Имеем товары: раковина в разном исполнении (керамика, чугун, нержавейка, красная, зеленая), унитаз в разном исполнении (керамика, чугун, нержавейка, красный, зеленый)
Мы имеем в категории /rakovina/keramika/krasnaya/ и в категории /rakovina/chugun/zelyonaya/ ссылку на одну и ту же раковину (товар).- один и тот же URL
А нужно чтобы она была доступна по разным ссылкам и с установленными на этой странице характеристиками, скажем /rakoviny/keramicheskaya-krasnaya-vendor-model и /rakoviny/chugunnaya-zelyonaya-vendor-model…
Позволяет ли данный компонент это сделать или он только с категориями работает?
Простите, что вмешаюсь не по основном теме.
Просто мне показалось странным, мне наши сеошники говорят, что дубль — это когда один и тот же товар доступен по разным ссылкам, а вы пишите совершенно обратное…
Просто мне показалось странным, мне наши сеошники говорят, что дубль — это когда один и тот же товар доступен по разным ссылкам, а вы пишите совершенно обратное…
Ну я немного о другом. Правильно, если один товат по разным ссылкам — это другая крайность.
А я хочу иметь несколько товаров из одного — то есть, например, если у нас есть раковина в разных исполнениях (чугунная, нержавейка, керамика, красная, зеленая) — это вроде одна страница с разными опциями/модификациями. То есть нужно чтобы разные комбинации фильтра на странице «категории товара» выдавали на эту раковину ссылки в соответствии с установленным фильтром. А также при переходе по этой ссылке у нас получалась страница с метаданными (h1, title, description, content) в соответствии с URL и опции ставились сразу, например в «красная» и «чугунная»…
Иначе, если у нас товара мало — то получается содержимое разных страниц (раковины чугунные, раковины красные и тп), читай выдача фильтра, — одинаковое — все та же одна раковина…
— Мне кажется, что если это не поддерживается, то нужно нечто вроде генератора товара по прототипу.
Например задаем в прототипе опции, цвета и тд, и при сохранении (в плагине ondocformsave) в каталоге перегенерируется весь товар в категории, к которой относится прототип… ну то есть склоняюсь к физически существующим ресурсам-товарам…
Может покажется на первый взгляд неудобно управлять этим, но я прикинул, что так создавать модификации на одной странице — та же работа по заданию разных параметров, фотографий… только в случае генератора:
— у нас снимаются ограничения по нехватке полей (напр. content)
— скорость работы увеличивается за счет отсутствия работы в исключениях (onpagenotfound) — то есть доступ осуществляется стандартным функционалом модекса…
ну в категориях, конечно без преобразования параметров в путь в URL (?category=racoviny&color=red => /racoviny/red/) не обойтись. отличие лишь в том, что перейдя по этой ссылке — такая категория будет существовать в реальности и нужно использовать одинаковый шаблон и parents устанавливать ОДИНАКОВЫЙ, чтобы была возможность из нее в фильтре «шагать» вверх по иерархии (URL)…
Если что-то непонятно, что написал, могу отдельно пояснить, а то как-то наверное написал не очень понятно… но я старался )
А я хочу иметь несколько товаров из одного — то есть, например, если у нас есть раковина в разных исполнениях (чугунная, нержавейка, керамика, красная, зеленая) — это вроде одна страница с разными опциями/модификациями. То есть нужно чтобы разные комбинации фильтра на странице «категории товара» выдавали на эту раковину ссылки в соответствии с установленным фильтром. А также при переходе по этой ссылке у нас получалась страница с метаданными (h1, title, description, content) в соответствии с URL и опции ставились сразу, например в «красная» и «чугунная»…
Иначе, если у нас товара мало — то получается содержимое разных страниц (раковины чугунные, раковины красные и тп), читай выдача фильтра, — одинаковое — все та же одна раковина…
— Мне кажется, что если это не поддерживается, то нужно нечто вроде генератора товара по прототипу.
Например задаем в прототипе опции, цвета и тд, и при сохранении (в плагине ondocformsave) в каталоге перегенерируется весь товар в категории, к которой относится прототип… ну то есть склоняюсь к физически существующим ресурсам-товарам…
Может покажется на первый взгляд неудобно управлять этим, но я прикинул, что так создавать модификации на одной странице — та же работа по заданию разных параметров, фотографий… только в случае генератора:
— у нас снимаются ограничения по нехватке полей (напр. content)
— скорость работы увеличивается за счет отсутствия работы в исключениях (onpagenotfound) — то есть доступ осуществляется стандартным функционалом модекса…
ну в категориях, конечно без преобразования параметров в путь в URL (?category=racoviny&color=red => /racoviny/red/) не обойтись. отличие лишь в том, что перейдя по этой ссылке — такая категория будет существовать в реальности и нужно использовать одинаковый шаблон и parents устанавливать ОДИНАКОВЫЙ, чтобы была возможность из нее в фильтре «шагать» вверх по иерархии (URL)…
Если что-то непонятно, что написал, могу отдельно пояснить, а то как-то наверное написал не очень понятно… но я старался )
Такого функционала в компоненте нет)
Вообще, компонент никак не влияет на товары.
Пока Вы первый, кто спрашивает подобное)
Тут достаточно сложная интеграция и не всегда получится сделать какое-то определенно правильное поведение.
Что будет, если выбрать в фильтре два цвета, под которые есть разные модификации товара?
Показывать одну карточку товара или две?)
Тут надо больше смотреть на возможность связать это всё с msOptionsPrice.
Также расширять класс фильтрации и вообще использовать свою обёртку для mFilter2, чтобы подмешивать виртуальные товары))
В общем, из коробки это не появится, но как индивидуальная работа — можно сделать)
Вообще, компонент никак не влияет на товары.
Пока Вы первый, кто спрашивает подобное)
Тут достаточно сложная интеграция и не всегда получится сделать какое-то определенно правильное поведение.
Что будет, если выбрать в фильтре два цвета, под которые есть разные модификации товара?
Показывать одну карточку товара или две?)
Тут надо больше смотреть на возможность связать это всё с msOptionsPrice.
Также расширять класс фильтрации и вообще использовать свою обёртку для mFilter2, чтобы подмешивать виртуальные товары))
В общем, из коробки это не появится, но как индивидуальная работа — можно сделать)
Что будет, если выбрать в фильтре два цвета, под которые есть разные модификации товара?Ну в описанном мной случае, поскольку мы в «фильтрующей категории» (в шаблоне/чанке, где работает фильтр) — то две — как будто разные товары.
Показывать одну карточку товара или две?)
В этом случае у нас появляется много товара и много страниц и модификации у нас будут представлены ресурсами и, соответственно, ссылками (при выборе модификации товара в карточке товара)…
Думаю для СЕО это хорошая идея, как считаете? Ведь эти модификации будут создавать дополнительный вес для сайта, что не происходит, например, если мы модификации делаем компонентом msOptionPrice или каким-то подобным, ведь там модификация не видна поисковой системе…
Тут надо больше смотреть на возможность связать это всё с msOptionsPrice.я как раз противопоставляю эту идею использованию msOptionPrice…
Как идея вам такая?
Как Вам такая идея (имею ввиду этот гипотетический «генератор по прототипу», что описал выше)?
Друзья! А скажите, пожалуйста, каким образом, можно вытащить ссылки, чтобы они отображались в коде html, и робот мог их видеть? Сайт вот: skhoromy.ru/catalog/doma. Например, через кнопку показать, или как реализованно на битриксе keramika-russia.ru
sfMenu по идее, но чтобы прям в чекбоксы вставить ссылки — то наверно проще sfLink, но это нужно очень правильно приготовить, чтобы ещё кэшировалось.
В общем, «из коробки» функционала для ссылок в чекбоксах нет.
На указанном выше сайте сформировал такой URL переходя по ссылкам:
keramika-russia.ru/selection/filter/fabric-is-kerama_marazzi/category-is-keramogranit/type-is-dekor/use-is-dlya_pola/apply-is-dlya-gostinoy/size-is-42x42/pattern-is-ornament/
Как мне кажется, избыточны такие страницы. А Вам подобная вложенность нужна?
В общем, «из коробки» функционала для ссылок в чекбоксах нет.
На указанном выше сайте сформировал такой URL переходя по ссылкам:
keramika-russia.ru/selection/filter/fabric-is-kerama_marazzi/category-is-keramogranit/type-is-dekor/use-is-dlya_pola/apply-is-dlya-gostinoy/size-is-42x42/pattern-is-ornament/
Как мне кажется, избыточны такие страницы. А Вам подобная вложенность нужна?
Здравствуйте! Здесь не так уж много групп атрибутов для такой вложенности. А что касается, keramika-russia.ru — там немного другая проблема. На определенном шаге подборки дублируются. Ну, не по мета, а по факту
И такой вопрос. А как прописать текст только для одной категории, например Дома из КБ?
Всем привет! Подскажите пожалуйста а можно ли сделать фильтр в 2 уровня и как это сделать? Т.е. например мне нужно сделать: домен/бренд-из-сео-фильтра/мощность-из-сео-фильтра
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.