msvdev/bitrix-extension-view
Bitrix 模板扩展
1.0.3
2018-04-06 09:09 UTC
Requires
- symfony/templating: ^3.4
This package is auto-updated.
Last update: 2024-09-28 17:17:54 UTC
README
symfony 中的模板化 - 简单、强大且可扩展的模板管理工具。如果您在 Bitrix 上工作了一段时间,您可能已经厌倦了模板中的代码块。坦白说,Bitrix 的模板很糟糕。使用此模板化器可以帮助您部分解决此问题,并迈向简单和代码复用的道路。
为 Composer 配置 Bitrix
带有 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') ?>
还有什么?
在 Bitrix 中使用 symfony 模板化不仅限于添加到标准模板。尽管如此,这为优化您的代码提供了巨大的空间。
有关模板化器的更多信息,您可以在官方文档中阅读。