Условие вывод в fenom

Добрый день!
Подскажите как можно на fenom создать условие на вывод контента.
На странице есть tv поле язык (английский, русский, украинский), и в зависимости от языка выводится текст, если выбрано английский — статья доступна на английском языке, если русский на русском, если украинский на украинском, а если выбрано например на русском и английском нужно подставлять статья доступна на английском и русском языках и так далее. Как составить такого рода условие. Вывод по одному языку вывел через
{switch  $_modx->resource.lang}
    {case 1}
        {var $lang = "на английском языке"}
    {case 2}
        {var $lang = "на русском языке"}
    {case 3}
        {var $lang = "на украинском языке"}
    {default}
        {var $lang = "на английском, русском и украинском языках"}
{/switch}
а чтоб при выборе двух или трех языков не получается
Майкл
19 марта 2023, 05:02
modx.pro
510
0

Комментарии: 3

Артур Шевченко
19 марта 2023, 12:14
0
А почему нельзя в значениях ТВ написать «на английском языке», «на русском языке», «на украинском языке». В параметрах вывода разделителем указать запятую. А потом вывести вот так
Статья доступна {$_modx->resource.lang}
    Майкл
    19 марта 2023, 13:20
    0
    Тогда если будет выбрано три варианта то получится
    статья доступна на английском, русском, украинском языке
    а нужно минимум как языках
      Константин Ильин
      19 марта 2023, 15:30
      0
      Используйте склонения если это проблема
      Нужно посмотреть что содержится в $_modx->resource.lang при выборе нескольких языков(массив или строка), оттуда делать подсчет.
      — Если массив, то просто {set $countLangs = count($_modx->resource.lang)}
      — Если строка, то через explode в массив, а дальше как предыдущем пункте

      Когда есть $countLangs пробуем так:
      {$countLangs | declension : 'яблоко|яблока|яблок'} // яблок
      {$countLangs | declension : 'яблоко|яблока|яблок' : true} // 3 яблока
      {$countLangs | decl : 'яблоко,яблока,яблок' : false : ','} // яблоко
      Или
      {if $countLangs > 1}
      {set $l = 'языках'}
      {else}
      {set $l = 'языке'}
      {/if}
      статья доступна на {$_modx->resource.lang} {$l}
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    3