Поле

19 марта 2018, 21:26

Поле, фильтр, столбец - можно называть по разному. Основное, что нужно понимать для корректной настройки - это то, чем отличается класс msProductData от modResource или msProductOptions, потому что значения одного товара хранятся в разных местах.

Например для тегов из miniShop2 нужно выбрать класс msProductOptions, так как значения в удобном формате хранятся в сторонней таблице опций. По умолчанию есть список классов, но в поле можно ввести любой класс, даже вашего собственонго компонента. К тому же - можно научить SeoFilter подсчитывать результаты и по вашим таблицам, но об этом позже.

После добавления поля нельзя изменять класс и ключ, но можно поменять синоним. Например, если раньше для поля "Цвет" вы использовали синоним color а потом решили использовать cvet, то сменив в поле синоним - ничего не сломается. В таких случаях SeoFilter попробует в текстах правил исправить старую переменную {$color} на {$cvet}, даже учитывая падежные написания {$color_r}.

Некоторые параметры поля:

  • Скрывать параметр в URL - при формировании ссылок в правиле параметр(синоним поля) будет скрываться. Вместо ссылки /color-green будет просто /green

  • Значение перед параметром - делает фрагмент ссылки наоборот, вместо /color-green будет /green-color

  • Точное вхождение (строгий поиск) - в основном эта настройка нужна для точности подсчётов. Если например в поле содержатся числовые значения(id) - то лучше поставить галочку. Отличается тем, что без галочки значения ищутся по LIKE %val%, а с ней со строгим соответствием.

  • Поле типа "Слайдер" (number фильтры) - это для таких полей, как цены. При поставленной галочке значения собираться не будут и нужно будет самостоятельно в словарь добавить запросы, например такой: "0,10000" со значением "Недорогой" или "Товары до 10 тысяч". То есть указывается сразу диапазон, между двух значений. И если на странице каталога в фильтре выбрать промежуток между двумя 0 и 10000 - адрес страницы изменится на /nedorogie или так, как настроено формирование ЧПУ в системных настройках. Использовать такое поле можно совместно и с другими.

  • Значение в другой таблице - одна из самых важных функций, если помимо стандартных поелй с конечными значениями вы используете поля, которые подтягивают значения из других полей. Например, то же поле parent из класса modResource содержит название родителя не в этом же поле, а только лишь его ID. Конечно же, использование ID в SEO-текстах никуда не годится и мы захотим получить его название, да ещё и просклонять. Можно и в ручную исправить записи в словаре, но это не удобно. Поэтому в таком случае в выпашвих полях после активации галочки нужно будет заполнить 3 из 4 полей. Компонент можно пропустить, так как загружать модель стандартной таблицы в MODX - нет необходимости. Класс - запишшем modResource, поле для сопоставления - id, в поле где хранится значение - pagetitle.

  • Включено - отключение поля не убирает его из правил, а лишь прекращает сбор значений для этого поля. Нужно, если в словарь попадает какой-то мусор, а больше автоматически формировать ссылки вы не намерены.

  • Зависимое поле - функция довольно таки новая и при её активации выпадает ещё 2 поля для ввода. Допустим у нас каталог автомобилей и мы уже добавили поле Марка, а сейчас добавляем Модель. И теперь в появившееся поле "Зависит от" мы выбираем уже ранее добавленную Марку. А в следующее "По столбцу" впишем marka. (всё это будет хорошо работать, если марки и модели хранятся в таблицах собственного компонента или например, в таблицах customExtra).

  • Дополнительное условие для сбора значений - совсем простое условие, которое будет применять условие для ограничения сбора только к таблице, по которой собирает значения. Возможно, в будущем поле станет функциональнее.