hypejunction/elgg-twig

为 Elgg 提供的 Twig 模板渲染

安装: 23

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

类型:elgg-plugin

1.0.0 2019-02-14 11:09 UTC

This package is auto-updated.

Last update: 2024-09-14 23:51:49 UTC


README

Elgg 2.3

为 Elgg 添加对 twig 模板的支持

使用模板

要添加 twig 模板,只需将一个以 .twig 扩展名的文件添加到您的插件视图目录下的 default 视图类型中。

<!-- my_plugins/views/default/test.twig -->

<div class="hello">Hello, {{ name }}</div>

要渲染模板,请使用 `elgg_twig()` 函数,带或不带视图名称,无需 `.twig` 扩展名

$user = elgg_get_logged_in_user_entity();

echo elgg_twig('test', ['name' => $user->getDispayName()];

您可以通过像其他视图一样覆盖模板,但不能使用钩子来扩展或过滤它们。

开发

为了简化开发,将 environment 配置值设置为 development,否则您需要刷新缓存以重新加载模板更改。

elgg_set_config('environment', 'development');

全局变量

模板中可用的全局变量

  • app - 应用程序数据
    • app.user - 登录用户实体
    • app.site - 站点实体
    • app.registrationUrl - 注册 URL
    • app.loginUrl - 登录 URL

函数

模板中可用的函数

  • echo() - 等同于 elgg_echo()
  • view() - 等同于 elgg_view()
  • assetUrl() - 等同于 elgg_get_simplecache_url()
  • requireJs() - 等同于 elgg_require_js()

备注

最初我教了 elgg_view() 来渲染 twig 模板,但它对性能产生了负面影响,可能是因为为所有视图注册了一个 view_vars 钩子。直到有通配符钩子注册,elgg_twig() 是唯一的选择,尽管它不允许过滤视图变量或扩展视图,但这最终是一个胜利,因为简单。