msvdev/bitrix-extension-view
Composer 安装命令:
composer require msvdev/bitrix-extension-view
包简介
Bitrix templating extension
README 文档
README
Шаблонизация в symfony - простой, мощный и расширяемый инструмент управления шаблонами. Если Вы работаете с битриксом достаточно долго, скорее всего Вас уже достали портянки кода в шаблонах. Будем честны - шаблоны битрикса ужасны. Использование данного шаблонизатора поможет частично решить эту проблему и ступить на путь простоты и повторного использования кода.
Настройка битрикс для работы с composer
Готовый шаблон проекта с composer и подробными комментариями здесь
Установка
composer require msvdev/bitrix-extension-view
Использование в компонентах
Разбиваем шаблон на логические части
template.php
<?php if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); $view = (new Msvdev\Bitrix\View\ViewPhp($this))->getView(); ?> <div> <h1><?=$arResult['NAME']?></h1> ...some code... <?php if(sizeof($arResult['IMAGES'])):?> <?=$view->render('gallery',['images' => $arResult['IMAGES']])?> <?php endif?> ...some code... </div>
gallery.html.php
<?php if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); /** * @var array $images */ ?> <?php foreach ($images as $image):?> <img src="<?=$image['src']?>" alt="<?=$image['alt']?>"/> <?php endforeach;?>
Повторное использование кода шаблона
Части шаблона можно переиспользовать в зависимости от входящих условий или в случае когда верстка различных элементов идентична.
template.php
<?php if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); $view = (new Msvdev\Bitrix\View\ViewPhp($this,'parts'))->getView(); ?> <div> ...some code.. <?php foreach ($arResult['ITEMS'] as $arItem):?> <?=$view->render('item',['arItem' => $arItem])?> <?php endforeach;?> ...some code... <span>Show first item</span> <?=$view->render('item',['arItem' => $arResult['ITEMS'][0]])?> </div>
part/item.html.php
<?php if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); /** * @var array $arItem * @var \Symfony\Component\Templating\PhpEngine $view */ ?> <div> <?= $arItem['NAME'] ?> <?php if(sizeof($arItem['IMAGES'])):?> <?php // Шаблоны можно вкладывать в друг-друга (part/images.html.php) echo $view->render('images',['images' => $arItem['IMAGES']]) ?> <?php endif?> </div>
Экранирование вывода
<?php echo $view->escape($firstname) ?> <?php echo $view->escape($var, 'js') ?>
Что еще?
Использование шаблонизации symfony в битрикс не ограничивается дополнением к стандартным шаблонам. Хотя даже в этом случае открыт невероятный простор для оптимизации вашего кода.
Подробнее о возможностях шаблонизатора можно всегда почитать в официальной документации.
统计信息
- 总下载量: 55
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 3
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-04-05