фильтры ввода.вывода для условных варажений

Можно ли с помощью фильтров ввода/вывода сделать множественные условные выражения? например
такой вариант
[[!context:is=`en`:then=`[[$en-company-name]]`:else=`[[$company-name]]`]]
будет работать, это обозначено в документации, но вот такой например
[[!context:is=`en`:then=`[[$en-company-name]]`else:is=`de`:then=`[[$de-company-name]]`:else=`[[$company-name]]`]]
уже не будет…

Как же стандартными методами выполнить множественные условия как else if, а не только if{} else{}
Константин Баранов
02 марта 2013, 11:34
modx.pro
2 362
0

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

Константин Баранов
02 марта 2013, 15:47
0
подобрал такой извращ-й вариант:
[[!context:is=`en`:then=`[[$en-company-name]]`:else=`[[!context:is=`de`:then=`[[$de-company-name]]`:else=`[[$company-name]]`]]`
]]
    Василий Наумкин
    02 марта 2013, 16:10
    1
    0
    Не нужно так делать. Для логики нужно писать сниппеты, а не программировать на фильтрах.

    switch ($modx->context->key) {
    	case 'en' : $chunk = 'en-company-name'; break;
    	case 'de' : $chunk = 'de-company-name'; break;
    	default: $chunk = 'company-name'; break;
    }
    return $modx->getChunk($chunk);

    И выглядит понятнее, и работает быстрее, и добавить еще 10 условий\проверок — не вопрос.
    alex cernobai
    02 марта 2013, 16:21
    0
    а если просто использовать такую конструкцию?
    [[$[[*context_key]]-company-name]]
    для дефолтного контектста нужно в название чанка добавить префикс.
      Константин Баранов
      02 марта 2013, 20:01
      0
      первый вариант хотел использовать, второй для ситуации тоже подходит, спасибо
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      5