Сниппет Localizator

26 октября 2019, 07:00

Сниппет предназначен для вывода переведенных в локализаторе ресурсов.

Параметры

Сниппет Localizator работает со сниппетами пакета pdoTools. Не работает с getImageList

Название По умолчанию Описание
snippet pdoResources Имя сниппета для запуска
class modResource Класс получаемого объекта
localizator_key Нет Ключ локализации, по умолчанию текущий
localizatorTVs Нет Список переведенных доп.полей. Если не заполнять, то будут подтягиваться поля в соответствии с системной настройкой localizator_tv_fields

Примеры

Вывод через pdoMenu

{'Localizator' | snippet : [
    'snippet' => 'pdoMenu',
    'includeTVs' => 'img',
    'processTVs' => 'img',
    'parents' => 0,
    'level' => 1,
]}

Вывод ресурсов через pdoPage

<div id="pdopage">
    <div class="rows">
        {'!pdoPage' | snippet : [
            'element' => 'Localizator',
            'parents' => 0,
            'ajaxMode' => 'default',
        ]}
    </div>
    {'page.nav' | placeholder}
</div>

Вывод ресурсов через mFilter2

{'!mFilter2' | snippet : [
    'element' => 'Localizator',
    'parents' => 0,
]}

Использование для поиска и вывода товаров вместе с msProducts:

[[!pdoPage?
    &element=`Localizator`
    &parents=`0`
    &resources=`[[!mSearch2:default=`999999`?returnIds=`1`&limit=`0`]]`
    &sortby=`ids`
]]

Получение и вывод pagetitle от другого ресурса:

{'pdoResources' | snippet : [
    'tpl' => '@INLINE {$pagetitle}',
    'class' => 'localizatorContent',
    'sortby' => 'id',
    'limit' => 1,
    'where' => [
        'key' => ('localizator_key' | option),
        'resource_id' => 2,
    ],
]}

Где: resource_id - ID ресурса

Получение и вывод TV от другого ресурса:

{'pdoResources' | snippet : [
    'tpl' => '@INLINE {$value}',
    'class' => 'locTemplateVarResource',
    'sortby' => 'id',
    'limit' => 1,
    'where' => [
        'key' => ('localizator_key' | option),
        'tmplvarid' => 1,
        'contentid' => 2,
    ],
]}

Где: tmplvarid - ID TV поля contentid - ID ресурса

Использование совместно с clientconfig:

  • Создаем два параметра, например: work_clock_1_ru и work_clock_1_en
  • Выводим в нужном месте:
{var $key = ('localizator_key' | option)}
{('work_clock_1_' ~ $key) | option}

Проверка отображаемой локализации и замена лого или ссылки (для примера):

{if $_modx->config.cultureKey != 'ru'}
<a class="header-logo" href="/" aria-label="{$_modx->config.site_name}">
    <img src="/assets/images/general/logo_ru.png" alt="{$_modx->resource.pagetitle}">
</a>  
{else}
<a class="header-logo" href="/ru/" aria-label="{$_modx->resource.pagetitle}">
    <img src="/assets/images/general/logo.png" alt="">
</a>
{/if}


Предыдущий документ
Общее описание и настройка
Следующий документ
Переключение языков