nedryse/latte-template-macroset

此包已废弃且不再维护。未建议替代包。

占位符替换Latte宏提供了一种简单的方法,将变量的内容放入正确的位置。

v1.0.0 2014-12-27 23:02 UTC

This package is not auto-updated.

Last update: 2022-06-28 09:14:25 UTC


README

#nedryse/latte-template-macroset (cc)# Pavel Železný (2bfree), 2014 (pavelzelezny.cz)

要求

Nette Framework 2.2.0 或更高版本

文档

占位符替换Latte宏提供了一种简单的方法将变量的内容放入正确的位置。

宏集提供{template ...}宏,并使用相同的机制覆盖{_ ...}宏。这些宏的第一个参数可以包含任何数量的{:placeholders}字符串,这些字符串将被同名的变量替换。

替换变量从模板中获取,如$template->placeholder,被局部变量如{var $placeholder}覆盖,并被宏的参数覆盖,如{template ..., 'placeholder' => 'replacement', ...}{template ..., array('placeholder' => 'replacement', ...)}。替换变量可以包含{:nested_placeholders},这些也会被替换。

{_ ...}宏的功能得到保留。宏的所有参数都未改变地发送给翻译器。翻译器的结果将被用作可以包含{:placeholders}的模板。利用这个功能,您可以更改给定参数的位置,以提供适当的翻译复数作为宏的第一个参数。

安装

首选安装方式是通过Composer

composer require nedryse/latte-template-macroset:~1.0.0

或手动添加到composer.json

{
	"require":{
		"nedryse/latte-template-macroset": "~1.0.0"
	}
}

设置

将以下代码添加到config.neon

common:
	extensions:
		latteTemplateMacroSet: Nedryse\Latte\Macros\TemplateMacroSetExtension

用法

最简单的用法如下所示

{template '<strong>{:userName}</strong>', 'userName' => $user->getIdentity()->getId()}

替换变量也可以像以下代码那样通过数组提供

{var $replacements = array('userName' => $user->getIdentity()->getId())}
{template '<strong>{:userName}</strong>', $replacements}

替换变量可以从{var ...}或从$template提供,如下所示

{var $userName => $user->getIdentity()->getId()}
{template '<strong>{:userName}</strong>'}

替换可以在以下顺序中覆盖:$template{var ...}{template ..., replacements},如下所示

{var $userName => $user->getIdentity()->getId()}
{template '<strong>{:userName}</strong>', 'userName' => 'test'}

这两个宏也支持过滤器,如下所示

{template '<strong>{:userName}</strong>', 'userName' => 'test'|upper}

替换可以包含{:nested_placeholders}以用作可定制的模板机制,如下所示

{var $idTpl = '<strong>{:userId}</strong>'}
{var $nameTpl = '{:userName}'}
{var $pairTpl = '<li>{:idTpl} - {:nameTpl}</li>'}
{var $usersTpl = '<ul>{:usersListTpl}</ul>'}
{capture $usersListTpl}
	{foreach $users as $userId => $userName}
		{template $pairTpl}
	{/foreach}
{/capture}

{_'User (%s): {:usersTpl}', count($users)}