Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Отложенный платеж и php шаблонизатор

Автор exbbРаздел Шаблоны PHP

Ответов: 0
Просмотров: 343
Последний ответ 11 Май 2016, 12:20:32
от exbb
Как часто Вы используете TPL шаблонизатор ?

Автор pandusРаздел Шаблоны TPL

Ответов: 1
Просмотров: 91
Последний ответ 23 Май 2017, 20:16:39
от aghigay
Шаблонизатор в UMI CMS 2.8.5

Автор koroganРаздел Шаблоны TPL

Ответов: 22
Просмотров: 8783
Последний ответ 27 Июнь 2012, 17:52:59
от Vladimir

0 Пользователей и 1 Гость просматривают эту тему.

*

atach

  • ***
  • 163
  • +6/-0
    • Просмотр профиля
Добрый день! Скажите, кто нибудь пользуется 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()"
« Последнее редактирование: 24 Март 2016, 22:57:50 от atach »

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
Re: PHP шаблонизатор, кто то уже пользуется?
« Ответ #1 : 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;?>
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/

*

aghigay

  • *****
  • 599
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: PHP шаблонизатор, кто то уже пользуется?
« Ответ #2 : 24 Март 2016, 23:48:15 »
Самое время упомянуть, что Евгений может даже и курс прочитать по php-шаблонизатору :-)
Мой блог http://umicms.me

*

atach

  • ***
  • 163
  • +6/-0
    • Просмотр профиля
Re: PHP шаблонизатор, кто то уже пользуется?
« Ответ #3 : 25 Март 2016, 09:16:00 »
Большое спасибо, за информацию.
Да и я думаю, что пора создать новую ветку для тем по "PHP шаблонизатору", вопросы все равно будут возникать.

Думаю Даниил увидит сообщение ...

*

atach

  • ***
  • 163
  • +6/-0
    • Просмотр профиля
Re: PHP шаблонизатор, кто то уже пользуется?
« Ответ #4 : 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']); ?

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
Re: PHP шаблонизатор, кто то уже пользуется?
« Ответ #5 : 25 Март 2016, 17:56:09 »
Нет, он есть в $variables

$page = getArrayKey($variables, 'full:page');
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/

*

admin

  • *****
  • 2421
  • +172/-1
    • Просмотр профиля
Re: PHP шаблонизатор, кто то уже пользуется?
« Ответ #6 : 31 Март 2016, 09:59:35 »
создал ветку для PHP шаблонизатора http://umihelp.ru/forum/index.php/board,18.0.html