hypejunction/hypetwig

此包已被放弃,不再维护。没有建议的替代包。

Twig 模板集成

安装: 14

依赖项: 1

建议者: 0

安全: 0

星标: 1

关注者: 1

分支: 0

类型:elgg-plugin

1.1.1 2018-07-07 12:13 UTC

This package is not auto-updated.

Last update: 2020-01-18 13:41:38 UTC


README

Elgg 3.0

为 Elgg 添加对 twig 模板的支持

使用模板

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

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

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

要渲染模板,请使用 `elgg_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
  • faker - 假数据生成器 (https://github.com/fzaninotto/Faker)

函数

模板中可用的函数

  • echo() - 等同于 elgg_echo()
  • view() - 等同于 elgg_view()
  • assetUrl() - 等同于 elgg_get_simplecache_url()
  • requireJs() - 等同于 elgg_require_js()
  • formatHtml() - 等同于 elgg_format_html()
  • menu() - 等同于 elgg_view_menu()

备注

最初我教了 elgg_view() 来渲染 twig 模板,但它对性能产生了负面影响,这可能是由于所有视图都注册了 view_vars 钩子。在存在通配符钩子注册之前,elgg_twig() 是一种选择,但它不允许过滤视图变量或扩展视图,这在最终结果中是一种胜利,因为简单。