我有几个布局,它们共享一组共同的变量。目前我已经将一个解决方案混合在一起,完成了工作,但我确信有更优雅的方法可以做到。
以下是我目前如何在布局之间共享视图变量
function onStart(){
include_once 'themes/website/layouts/include_common_view_vars.php';
/**
Additional $this['lucky_poker'] params here for the specific layout
*/
}
其中包含文件包含所有常见的addCSS和addJS文件等。
有更好的想法吗?
PS我读了关于共享变量的Question ---和--- 我确实搜索了文档,但没有看到我想要的内容
答案 0 :(得分:0)
我不确定它会解决你的问题但是一些不同的方法可能会有所帮助。
我们还能做些什么。
现在在组件
中public function onRun() {
// or your file which can return values then loop through it
// set variables in page
$this->page['testVar'] = 'Test';
}
现在变量" testVar"将在您的所有部分内容以及使用此布局的所有页面中提供。
Value : {{ testVar }}
为简单起见,您可以在数组(sharedVars)中指定值/变量并分配给页面。
这样下次创建新布局时需要在布局中添加该组件..为了安全起见,我们在布局中使用{%page%}之前包含组件。
我找到了另一种共享相同变量的方式。
注意:为了处理组件,它必须处于布局而不是局部,因为局部不包含在页面执行生命周期中。
答案 1 :(得分:0)
我认为最好的选择是使用支持表单的主题信息文件,您可以在其中添加所有必要的数据(通过主题设置ui),以便在所有布局之间共享。< / p>
https://octobercms.com/docs/themes/development#theme-information