hypejunction / elgg-twig
为 Elgg 提供的 Twig 模板渲染
1.0.0
2019-02-14 11:09 UTC
Requires
- php: >=7.0
- composer/installers: ~1.0
- hypejunction/elgg-di: *
- twig/twig: ^2.6
This package is auto-updated.
Last update: 2024-09-14 23:51:49 UTC
README
为 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
- 注册 URLapp.loginUrl
- 登录 URL
函数
模板中可用的函数
echo()
- 等同于elgg_echo()
view()
- 等同于elgg_view()
assetUrl()
- 等同于elgg_get_simplecache_url()
requireJs()
- 等同于elgg_require_js()
备注
最初我教了 elgg_view()
来渲染 twig 模板,但它对性能产生了负面影响,可能是因为为所有视图注册了一个 view_vars
钩子。直到有通配符钩子注册,elgg_twig()
是唯一的选择,尽管它不允许过滤视图变量或扩展视图,但这最终是一个胜利,因为简单。