Как использовать модификатор с двумя и более if?
Есть задача определять какой culturekey (всего их три) и в зависимости от этого выводить ресурсы, как это реализовать с помощью двух if?
Для двух culturekey выглядеть будет так
[[pdoResources?
&parents=`[[++cultureKey:is=`ru`:then=`3`:else=`12`]]`
…
]]
Как это реализовать для бОльшего числа culturekey, логика такая — если culturekey=ru, то выводим 3, если culturekey=en, то выводим 12, если culturekey=fr, то выводим 21
Спасибо!
Для двух culturekey выглядеть будет так
[[pdoResources?
&parents=`[[++cultureKey:is=`ru`:then=`3`:else=`12`]]`
…
]]
Как это реализовать для бОльшего числа culturekey, логика такая — если culturekey=ru, то выводим 3, если culturekey=en, то выводим 12, если culturekey=fr, то выводим 21
Спасибо!
- ВКонтакте
- Telegram
- Viber
- РЎРєРѕРїРСвЂВВВВВВВВровать ссылку
2
1 734
0
Комментарии: 15
12 января 2016, 01:30
я использую cниппет switch, он есть в официальном репозитории
12 января 2016, 01:46
как раз натолкнулся на него на англоязычном форуме, а как его вызвать в pdoResources?
[[pdoResources?
&parents=`[!switch? &get=`[[++ cultureKey]]` &c1=`ru` &do1=`3` &c2=`en` &do2=`12` &c3=`fr` &do3=`21` ]]`
…
]]
так?
[[pdoResources?
&parents=`[!switch? &get=`[[++ cultureKey]]` &c1=`ru` &do1=`3` &c2=`en` &do2=`12` &c3=`fr` &do3=`21` ]]`
…
]]
так?
12 января 2016, 01:49
почти, вызывайте pdoResources некешированным
[[!pdoResources?
&parents=`[[!switch? &get=`[[++cultureKey]]` &c1=`ru` &do1=`3` &c2=`en` &do2=`12` &c3=`fr` &do3=`21` ]]`
…
]]
12 января 2016, 02:04
С Fenom-ом можно наворотить что-то вроде такого.
{set $cult = $_modx->config.cultureKey}
{set $parent = [
"ru" => "3",
"en" => "12",
"fr" => "21",
"de" => "30",
"jp" => "39",
"sg" => "48",
"tk" => "57",
]}
{$_modx->runSnippet('pdoResources',[
'parents' => $parent.$cult
])}
12 января 2016, 07:44
Там можно опустить присваивание переменной $cult значение ключа языка. Самое забавное, что этот вариант из предложенных здесь самый превосходный и универсальный, но пользоваться Феномом люди почему то боятся, чтоли. =)
12 января 2016, 13:01
я бы тоже побоялся, тут видимо надо знать php, а его не знаю, поэтому мне вариант с модификатором и switch намного понятнее
все рано спасибо за ответ
все рано спасибо за ответ
12 января 2016, 13:41
Кому надо, тот во всю пользуется)
Если еще поизвращаться, то можно вынести присваивание в какой-нибудь глобальный чанк. Тогда переменными можно оперировать везде где вздумается и править только в одном месте придется, если понадобится.
Если еще поизвращаться, то можно вынести присваивание в какой-нибудь глобальный чанк. Тогда переменными можно оперировать везде где вздумается и править только в одном месте придется, если понадобится.
12 января 2016, 14:00
Например, такой базовый шаблон:
В Head или Navbar прописать:
А в Content и Footer уже использовать:
Однако, стоит проверить детальнее на практике. В теории должно работать.
<!DOCTYPE html>
<html lang="en">
<head>
[[$Head]]
</head>
<body>
{block 'navbar'}
[[$Navbar]]
{/block}
{block 'content'}
[[$Content]]
{/block}
{block 'footer'}
[[$Footer]]
{/block}
</body>
</html>
В Head или Navbar прописать:
{set $cult = $_modx->config.cultureKey}
{set $parent = [
"ru" => "3",
"en" => "12",
"fr" => "21",
"de" => "30",
"jp" => "39",
"sg" => "48",
"tk" => "57",
]}
А в Content и Footer уже использовать:
{$_modx->runSnippet('pdoResources',[
'parents' => $parent.$cult
'tpl' => 'tpl.incontent.row'
])}
-------------------------------------------------
{$_modx->runSnippet('pdoResources',[
'parents' => $parent.$cult
'tpl' => 'tpl.infooter.row'
])}
Однако, стоит проверить детальнее на практике. В теории должно работать.
19 января 2016, 07:52
Не то, что боятся просто некоторым лень его изучить) или нету времени на это дело)
12 января 2016, 03:00
Как вариант, чтобы в случае изменений не носиться по всем шаблонам и не изменять/добавлять условия, вы можете по аналогии с cultureKey добавлять для каждого контекста нужный параметр и выводить просто его.
Например:
web (опции контекста)
— news_container = 1
— gallery_container = 7
— …
system
— news_container = 28
— gallery_container = 47
— …
И в вызове сниппета просто вызывать соответствующий ключ:
Например:
web (опции контекста)
— news_container = 1
— gallery_container = 7
— …
system
— news_container = 28
— gallery_container = 47
— …
И в вызове сниппета просто вызывать соответствующий ключ:
&parents=`[[++news_container]]`
12 января 2016, 13:02
вот это интересное решение, спасибо!
интересно какое из всех решений получается быстрее
интересно какое из всех решений получается быстрее
12 января 2016, 13:33
Это самый правильный вариант. При условии, что все крутится на контекстах.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Здесь упомянуты:
Компонент | Текущая версия | Закачки |
pdoTools | 2.13.2-pl от 02.09.2021 | 54 258 |
Вчера в 21:11
Здравствуйте
Есть желание использовать компонент polylang для автоматизации перевода с наименьшими усилиями, но есть пару вопросов, которые хотелось ...
Polylang 143
Вчера в 16:30
Добрый день.
Удалите плагин vpSystem от пакета.
[VirtualPage] - Виртуальные страницы. 183
Вчера в 08:40
Хочестя в тикеты при сохранении комментария добавить кнопку «проверить на ошибки» и при нажатии на нее проверить комментарий на ошибки в нейросети сох...
pbStudio: Создаём сайт с PageBlocks – настройка и главная страница 6
Вчера в 08:36
Нет, через апи идет запрос в ChatGPT, который формирует необходимые данные о блоке, а дальше PageBlocks их разбирает и создает все нужные элементы.
PageBlocks 2.6.0. Настройка меню MODX и гибкое управление страницей пользователя 12
Вчера в 00:03
Не работает парсинг с vk.com, vkvideo.ru
[videoGallery] 1.4.0 Поддержка VK Video и ещё пара фишек 9
17 апреля 2025, 23:01
Можете тоже подсказать как победить данную ошибку?
msGallerySearch - загрузка изображений в галерею minishop2 по ссылке и Google поиск картинок 44
17 апреля 2025, 21:35
Действительно! Самого главного я и не обозначил! Спасибо! Поправлю заголовок.
Речь идет именно о панели менеджера и возможности управления заказами.
...
Вывод перечня заказанных товаров в таблицу с заказами minishop2 (панель менеджера) 8
17 апреля 2025, 17:49
Очевидно ты используешь источник файлов, поэтому в админке путь прописан от источника, хочешь полный путь, откажись от источника файлов.
Не открываются загруженные файлы пишет страница не найдена 2
17 апреля 2025, 15:08
Привет, Henk. Спасибо за ответ! В посте по ссылке меня больше всего заинтересовала фраза «мы интегрировали AI в медиа-менеджер, чтобы значительно упро...
MODX/AI Hackathon Part 2 (27 марта) 4
17 апреля 2025, 13:17
в preg_match проверка проходит, и туда 100% приходит url
Здравствуйте! Первый раз такое вижу, у слеша, не 1 символ в строке, а 9!! Как это делает MODX 2