Сниппет Localizator
Предназначен для вывода переведенных в локализаторе ресурсов
Параметры
Сниппет Localizator работает со сниппетами пакета pdoTools. Не работает с getImageList
| Название | По умолчанию | Описание |
|---|---|---|
| snippet | pdoResources | Имя сниппета для запуска |
| class | modResource | Класс получаемого объекта |
| localizator_key | Нет | Ключ локализации, по умолчанию текущий |
| localizatorTVs | Нет | Список переведенных доп.полей. Если не заполнять, то будут подтягиваться поля в соответствии с системной настройкой localizator_tv_fields |
Примеры
Вывод через pdoMenu
fenom
{'Localizator' | snippet : [
'snippet' => 'pdoMenu',
'includeTVs' => 'img',
'processTVs' => 'img',
'parents' => 0,
'level' => 1,
]}Вывод ресурсов через pdoPage
fenom
<div id="pdopage">
<div class="rows">
{'!pdoPage' | snippet : [
'element' => 'Localizator',
'parents' => 0,
'ajaxMode' => 'default',
]}
</div>
{'page.nav' | placeholder}
</div>Вывод ресурсов через mFilter2
fenom
{'!mFilter2' | snippet : [
'element' => 'Localizator',
'parents' => 0,
]}Вывод товаров через mFilter2
fenom
{'!mFilter2' | snippet : [
'element' => 'Localizator',
'snippet' => 'msProducts',
'parents' => 0,
]}Использование для поиска и вывода товаров вместе с msProducts
fenom
{set $ids = '!mSearch2' | snippet : [
'returnIds' => 1,
'limit' => 0,
] ?:'99999'}
<div id="pdopage">
<div class="rows">
{'!pdoPage' | snippet : [
'element' => 'Localizator',
'snippet' => 'msProducts',
'parents' => 0,
'ajax' => 1,
'ajaxMode' => 'default',
'sortby' => 'ids',
'sortdir' => 'asc',
'resources' => $ids,
]}
</div>
{'page.nav' | placeholder}
</div>Получение и вывод pagetitle от другого ресурса
fenom
{'pdoResources' | snippet : [
'tpl' => '@INLINE {$pagetitle}',
'class' => 'localizatorContent',
'sortby' => 'id',
'limit' => 1,
'where' => [
'key' => ('localizator_key' | option),
'resource_id' => 2,
],
]}Где: resource_id - ID ресурса
Получение и вывод TV от другого ресурса
fenom
{'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 ресурса
Получение и вывод TV от другого ресурса помощью модификатора locfield
fenom
{1 | locfield : 'tvname'}Где:
1- ID ресурсаtvname- Наименование TV поля
Получение и вывод значений MIGX от другого ресурса
fenom
{foreach ('!pdoResources' | snippet : [
'tpl' => '@INLINE {$value | toJSON}',
'class' => 'locTemplateVarResource',
'sortby' => 'id',
'showLog' => 0,
'limit' => 1,
'where' => [
'key' => ('localizator_key' | option),
'tmplvarid' => 30,
'contentid' => $_modx->resource.parent,
],
]) | fromJSON as $spec}
<div class="product-spec-btn">
<a class="btn" href="{$spec.download_data_sheet}" download>{'download_data_sheet' | lexicon}</a>
</div>
{/foreach}Использование совместно с clientconfig
Создаем два параметра, например:
work_clock_1_ruиwork_clock_1_enВыводим в нужном месте:
fenom
{var $key = ('localizator_key' | option)}
{('work_clock_1_' ~ $key) | option}Проверка отображаемой локализации и замена лого
fenom
<a class="header-logo" href="{'site_start' | config}" aria-label="{'site_name' | config}">
{if $_modx->config.cultureKey == 'ru'}
<img src="/assets/images/general/logo_ru.png" alt="{$_modx->resource.pagetitle}">
{else}
<img src="/assets/images/general/logo.png" alt="{$_modx->resource.pagetitle}">
{/if}
</a>Вывод корзины msCart
fenom
{'!Localizator' | snippet : [
'snippet' => 'msCart',
'class' => 'msProduct',
'tpl' => '@FILE chunks/_checkout.cart.tpl',
]}