sfWord

21 августа 2017, 18:14

Простой сниппет для быстрой выборки Значения и Синонима из Словаря. Может вызываться как модификатор.

Используется для формирования корректных ссылок. Рекомендую использовать для правил с одним полем.
По умолчанию, возвращает массив (для обработки через Fenom), но может вернуть обработанный результат.

Параметры

Всего может принять от 2 до 3 параметров. По умолчанию в параметрах нет никаких значений.

Параметр Описание Пример
&field_id или &options Обязательный параметр! Нужно передавать ID поля из первой вкладки SeoFilter. 5
&input Обязательный параметр! Нужно передавать оргинальное значение(запрос) из поля ресурса [[*color]]
&tpl Небязательный. Служит для обработки результата. Обработка через pdoTools, поддержка INLINE-чанков. @INLINE <a href="{$15|url}color-{$alias}">{$value}</a>

Внимание! Если не будет найдено значение для переданного поля, то оно будет создано и записано в словарь. Соответственно синоним создастся автоматически и слово будет просклонировано по падежам, если включено в настройках.

Примеры

  1. Генерация ссылок на цвета из опций miniShop2 в чанке tpl.msProducts.row (13 - id поля Цвет в SeoFilter):
    {if $color|iterable ?}
    {foreach $color as $c}
        {var $word = $c|sfWord:13}
        <a href="{9|url}cvet-{$word.alias}" class="label label-info">{$word.value}</a>
    {/foreach}
    {/if}
  2. Формирование ссылок в каталоге статей на демо-сайте (Тип ТВ: Авто-метка выводится через разделитель ,):
    {if $tags?}
    {var $tags_a = $tags|split}
    {foreach $tags_a as $tag}
        {set $word = $tag|sfWord:14}
            <a href="{31|url}{$word.alias}" class="label label-success">{$word.value}</a>
    {/foreach}
    {/if}
  3. Вызов в синтаксисе MODX
    [[!sfWord? &input=`[[*parent]]` &field_id=`12` &tpl=`@INLINE <a href="{9|url}{$alias}">{$value}</a>`]]

Сниппет прост в использовании и работает быстро. По возможности используйте его и синтаксис Fenom.
Для более сложных ссылок с учётом условий по полям справляется сниппет sfLink.