imponeer/smarty-xo

基于XOOPS插件思想的Smarty模板引擎插件集合

v1.1.8 2023-07-01 07:12 UTC

This package is auto-updated.

Last update: 2024-09-01 07:23:30 UTC


README

License GitHub release Maintainability PHP Packagist

Smarty XO

重写的(由于许可问题)插件集合 Smarty,最初是为 Xoops 编写的,但现在可以在任何地方使用。

安装

要安装和使用此包,我们建议使用 Composer

composer require imponeer/smarty-xo

否则,您需要手动包含来自 src/ 目录的文件。

在Smarty中注册

如果您想将此包中的这些扩展用于您的项目,您需要使用来自 SmartyregisterPlugin 函数 将它们注册。例如

$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教程

如果您发现任何错误或有任何问题,请使用 问题选项卡 并在那里写下您的问题。