В расширенных шаблонах не работают условия fenom Решено

Дополнение: pdoTools

Здравствуйте.

Непонятное мне поведение удалось словить при попытке сделать расширенные шаблоны. Создаю базовый шаблон, и его расширение. Отображается все хорошо, за исключением условий с переменными. Сейчас приведу пример.

Шаблон Base
{var $city = '[[#COOKIE.city]]'}

<html>
  <body>
    {block 'city'}
      {$city == '1' ? 'Москва' : ''}{$city == '2' ? 'Санкт-Петербург' : ''}
      {if $city == '1'}
        Москва
      {elseif $city == '2'}
        Санкт-Петербург
      {/if}
    {/block}
  </body>
</html>
Страница с этим шаблоном работает хорошо. выводится название города.

Теперь пытаюсь расширить шаблон NewTemplate
{extends 'template:Base'}
{block 'city'}
  {$city}
  {$city == '1' ? 'Москва' : ''}{$city == '2' ? 'Санкт-Петербург' : ''}
  {if $city == '1'}
    Москва
  {elseif $city == '2'}
    Санкт-Петербург
  {/if}	
  {parent}
{/block}
Переменная города выводится. А условия не отрабатываются, ни родительские, ни на этой странице.
Посоветуйте куда копать, что делать?

Спасибо.
29 ноября 2016, 15:38    gg-   
1    437 0

Комментарии (5)

  1. Наумов Алексей 29 ноября 2016, 15:51 # +1
    А {parent} что такое? Может {$parent}? fenom очень не любит просто так стоящие скобочки лишние
    1. gg- 29 ноября 2016, 16:03 # 0
      Нет, все верно. Четко по документации. Можно и убрать, но это не решает проблему.
    2. gg- 29 ноября 2016, 17:24 # +1
      В общем решение оказывается на поверхности.

      Переменная передается в расширенный шаблон, но закинуть ее в условие не получается. В итоге блок с переменными ставим в каждый шаблон. Меняем его по желанию. И условия начинают работать.

      {extends 'template:Base'}
      {block 'vars'}
        {var $city = '[[#COOKIE.city]]'}
      {/block}
      
      1. Paul B. 29 ноября 2016, 17:45 # +1
        Странно, если переменная передаётся и выводится, то она должна работать. Ведь она же осталась переменной со своим значением.

        У меня у самого похожая реализация: в базовом шаблоне находятся переменные с путями до шаблонов, стилей и прочего, которые иногда нужны в конечных шаблонах или чанках. Но в расширенном шаблоне у меня читается информация, а в чанки передаю данные, как в правилах — через массив при вызове.
        1. gg- 30 ноября 2016, 12:41 # 0
          Да, сам поразился. Значения передаются, но условия не работают. Я только постигаю дзен по fenom, поэтому могу шаблоны сделать не такими оптимальными, сейчас пока пользуюсь условиями (адаптирую вывод под определенный город текст, контакты..., где можно и без чанков). Может и по-другому можно как-то.
      Вы должны авторизоваться, чтобы оставлять комментарии.