Добрый день! Скажите, кто нибудь пользуется php шаблонизатором?
Решил собрать новый на нём, ну и заодно изучить, посмотреть удобно или нет.
Просто сразу хотелось бы понять правильно ли делаю и правильный ли подход.
К примеру в обработке меню, в основном шаблоне вызываем:
<?=$this->render($this->macros('content', 'menu', array(null, 1)), 'content/menu/header') ?>
И вот в самом файле, который обрабатывает этот макрос я делю перебор всех элементов.
Возникают сразу общие вопросы, как узнать id текущей страницы, к примеру для сравнения id перебираемого элемента с id текущей страницы (что бы сделать класс, active) и вообще к свойствам текущей страницы обращаться как. Т.к. все обращения через
<?= $variables['@pageId'] ?>
Не проходят, на сколько я понимаю это обращение к уже выполняемому макросу.
Сейчас я просто в основном шаблоне, в самом начале устанавливаю нужные мне переменные (касающиеся текущей страницы), для примера:
$this->setCommonVar('pid', $variables['@pageId']);
И уже непосредственно при обработке любого макроса я могу использовать её, через
$this->getCommonVar('pid')
Вопрос на сколько это правильный подход то?
Сейчас для решения задачи, "сравнить id текущей страницы и с id перебираемого элемента" получилось вот так. Правильно ли делаю?
<div>
<?php foreach ($variables['items']['nodes:item'] as $item): ?>
<?php if ($item['@id'] == $this->getCommonVar('pid')):?>
<a href="<?=$item['@link']?>" class="active"><?=$item['node:text']?></a>
<?php else: ?>
<a href="<?=$item['@link']?>"><?=$item['node:text']?></a>
<?php endif; ?>
<?php endforeach; ?>
</div>
Уж больно хочется разобраться в новом шаблонизаторе.
Может кто даст линк на литературу или описание где ознакомиться по подробнее, на оф. сайте UMI про php шаблонизатора мало информации. Да и синтаксис местами не понятен. К примеру если мне надо сделать несколько условий, как будет выглядеть синтаксис "else if()"