UMIhelp

Разработка сайта на UMI.CMS => Настройка системы и модулей => Тема начата: atach от 24 Марта 2016, 22:21:17

Название: PHP шаблонизатор, кто то уже пользуется?
Отправлено: atach от 24 Марта 2016, 22:21:17
Добрый день! Скажите, кто нибудь пользуется 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()"
Название: Re: PHP шаблонизатор, кто то уже пользуется?
Отправлено: e.ioffe от 24 Марта 2016, 23:44:39
Активно использую PHP-шаблонизатор, сделал уже несколько проектов на нем.

Цитировать
Сейчас я просто в основном шаблоне, в самом начале устанавливаю нужные мне переменные (касающиеся текущей страницы), для примера:

Я делаю так же, но только объявляю их именованными константами:

$pageId = false;
$pageIsDefault = false;
$pageObjectTypeId = false;

if($page instanceof umiHierarchyElement) {
    $pageId = $page->getId();
    $pageIsDefault = $page->getIsDefault();
    $pageObjectTypeId = $page->getObjectTypeId();
}

define('PAGE_ID', $pageId);
define('PAGE_IS_DEFAULT', $pageIsDefault);
define('PAGE_OBJECT_TYPE_ID', $pageObjectTypeId);

Дальше в коде идет простая проверка:

<?php if ($item['@id'] == PAGE_ID):?>

Цитировать
К примеру если мне надо сделать несколько условий, как будет выглядеть синтаксис "else if()"

Все просто:
<?php if():?>
<?php elseif():?>
<?php elseif():?>
<?php endif;?>
Название: Re: PHP шаблонизатор, кто то уже пользуется?
Отправлено: aghigay от 24 Марта 2016, 23:48:15
Самое время упомянуть, что Евгений может даже и курс прочитать по php-шаблонизатору :-)
Название: Re: PHP шаблонизатор, кто то уже пользуется?
Отправлено: atach от 25 Марта 2016, 09:16:00
Большое спасибо, за информацию.
Да и я думаю, что пора создать новую ветку для тем по "PHP шаблонизатору", вопросы все равно будут возникать.

Думаю Даниил увидит сообщение ...
Название: Re: PHP шаблонизатор, кто то уже пользуется?
Отправлено: atach от 25 Марта 2016, 17:22:45
Активно использую PHP-шаблонизатор, сделал уже несколько проектов на нем.
Я делаю так же, но только объявляю их именованными константами:
$pageId = false;
$pageIsDefault = false;
$pageObjectTypeId = false;

if($page instanceof umiHierarchyElement) {
    $pageId = $page->getId();
    $pageIsDefault = $page->getIsDefault();
    $pageObjectTypeId = $page->getObjectTypeId();
}

А как получаете экземпляр самой страницы $page?
через $hierarchy->getElement($variables['@pageId']); ?
Название: Re: PHP шаблонизатор, кто то уже пользуется?
Отправлено: e.ioffe от 25 Марта 2016, 17:56:09
Нет, он есть в $variables

$page = getArrayKey($variables, 'full:page');
Название: Re: PHP шаблонизатор, кто то уже пользуется?
Отправлено: admin от 31 Марта 2016, 09:59:35
создал ветку для PHP шаблонизатора http://umihelp.ru/forum/index.php/board,18.0.html