Правило

19 марта 2018, 21:26

Это основная сущность компонента, которая связывает страницу, поля и значения для формирования ссылок. Для простого примера возьмём, что у вас есть фильтр на странице платьев, где есть цвет и размер. Поля в первую вкладку вы уже добавили, значения собрались.

Теперь настало время создать правила. Да, сейчас нам нужно добавить 3 правила для двух фильтров: (потому что люди часто так ищут) В скобках примерный шаблон названия ссылок.

  1. Правило для платьев по цвету; ({$m_color|ucfirst} платья)
  2. Платья по размеру; (Платья размером {$size})
  3. Платья по цвету и размеру. ({$m_color|ucfirst} платья размером {$size})

Так достигается максимальная гибкость и различия в текстах проще сделать. В каждое правило нам нужно добавить соответствующие поля и привязать их к странице Платья. Причём при добавлении поля в правило можно указать, условия для создания части страниц. Например, вы хотите особенный шаблон текста для платьев зелёного, красного и синего цвета. Тогда при добавлении поля в правило нужно выбрать операцию сравнения "Содержится" и ниже перечислить запросы через запятую. А в другом правиле по цвету платьев лучше исключить эти цвета, чтобы не было дублей.

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

  • Шаблон для названия ссылки (синтаксис как в SEO) - писал уже выше, что по шаблону формируются названия ссылок, которые видно в таблице URL и выводятся по умолчанию в меню, вызванное через [sfMenu][5]

  • Галочка Перегенерировать названия ссылок появляется при редактировании правила, если вы изменили шаблон и хотите перегенерировать существующие ссылки.

  • Галочка Пересчитать результаты по каждой ссылке пересчитывает согласно условиям подсчёта результаты всех ссылок и выведет после сохранения в окошко сводную информацию о пересчёте.

  • Таблица с полями и кнопкой добавить. Сюда попадают все добавленные поля в правило с указанием синонима поля. Сразу ниже блока показывается маска - по которой будет формироваться все ссылки правила. Её изменять нельзя, можно лишь у конечных ссылок задать так, как вам подойдёт. Или же менять синонимы слов в словаре, для того чтобы все ссылки, связанные со словом были с корректным адресом.

  • Доп. условие для подсчёта ресурсов (в JSON формате) (показывается при включенных подчсётах) - нужно для того, чтобы не считать абсолютно все ресурсы. Чтобы подсчитывать только опубликованные и не удалённые можно ввести {"published":1,"deleted":0}. Это поле уже умеет подключать и сторонние стандартные классы msProductData (можно указать как класс полностью, так и синоним Data, Option, TV, Vendor) с ключём через точку. Например {"Data.price:>":500}. Даже если в правиле нет поля из введённой таблицы, то оно будет "приджойнено" и результаты будут подсчитаны верно. Если что-то не так - то будет соответствующая запись в логе.

  • Parents (для подсчёта) - это нужно для того, если страница - к которой привязано правило, и на которой выводятся ресурсы не является родительской страницей, то есть товары лежат где-нибудь в соседних страницах. Тогда подсчёты будут верно работать. Сюда можно указать несколько id родителей через запятую.

  • Страница - непосредственно страница, к которой привязывается правило. Возможно, есть смысл сделать PRO-режим, куда можно будет ввести ID нескольких страниц. Если вам это нужно - напишите мне обязательно в техничекой поддержке.

  • Приоритет (0 - самый большой, 1 поменьше и т.д.) - это порядок, по которому выбирается более приоритетное правило, когда есть спорная ситуация. Например у вас есть опять таки цвет и размер, но нет общего правила, объединяющего их - тогда при выборе значений в каждом фильтре (если они оба базовые) - будут подставлены заголовки и тексты более приоритетного правила.

  • Галочка Базовое правило - выше уже расписал для чего. Рекомендую ставить на параметрах, которые действительно общие. те же цвета, размеры или категории и грамотно расставлять приоритеты.

  • Вкладка SEO - SEO шаблоны, которые при открытии ссылки генерируются каждый раз. Поэтому шаблон ссылки с таким же синтаксисом в другой вкладке - она генерируется только один раз при сохранении. Сейчас там 8 полей: Заголовок страницы, H1, H2, Описание, Вводный текст, Ключевые слова, Текстовое поле, Контент. Если используете редактор кода ACE - то он будет подгружен к полю контент. У всех полей есть подсказки - чтобы знать по какому плейсхолдеру отображать на странице.

Также правила можно дублировать, вместе с добавленными полями или без, привязывая к этой же странице или другой.