imponeer / smarty-xo
基于XOOPS插件思想的Smarty模板引擎插件集合
v1.1.8
2023-07-01 07:12 UTC
Requires
- php: >=7.1
- imponeer/smarty-extensions-contracts: ^1.0 || ^2.0
README
Smarty XO
重写的(由于许可问题)插件集合 Smarty,最初是为 Xoops 编写的,但现在可以在任何地方使用。
安装
要安装和使用此包,我们建议使用 Composer
composer require imponeer/smarty-xo
否则,您需要手动包含来自 src/
目录的文件。
在Smarty中注册
如果您想将此包中的这些扩展用于您的项目,您需要使用来自 Smarty 的 registerPlugin
函数 将它们注册。例如
$smarty = new \Smarty(); $plugins = [ new \Imponeer\Smarty\Extensions\XO\XOAppUrlCompiler( function (string $url): string { // function that converts url into path return $url; }, function (string $url, array $params = []): string { // function that adds params to path return $url . '?' . http_build_query($params); } ), new \Imponeer\Smarty\Extensions\XO\XOPageNavFunction( function (string $url): string { // function that generates real url return $url; }, $strPreviousPage = '<', $strNextPage = '>', $oldSchoolUrlMode = true ), new \Imponeer\Smarty\Extensions\XO\XOImgUrlCompiler( function (string $imgPath): string { // function that makes psiaudo path into real assets path return $imgPath; } ), new \Imponeer\Smarty\Extensions\XO\XOInboxCountFunction( function (): ?int { // function that calc unread messages in user inbox return 0; } ) ]; foreach ($plugins as $plugin) { if ($plugin instanceof \Imponeer\Contracts\Smarty\Extension\SmartyFunctionInterface) { $type = 'function'; } else { $type = 'compiler'; } $smarty->registerPlugin($type, $plugin->getName(), [$plugin, 'execute']); }
灵感列表
此列表可用于比较当前插件代码与原始版本,以查看差异并找到一些有用的数据,了解如何使用这些插件。
如何贡献?
如果您想添加一些功能或修复错误,您可以分叉、更改并创建拉取请求。如果您不确定如何操作,请尝试 交互式GitHub教程。
如果您发现任何错误或有任何问题,请使用 问题选项卡 并在那里写下您的问题。