我正在一个Silverstripe 4项目中,我们需要从路径中包含一个SS模板文件。
这是一个简单的示例,提供了我要实现的目标的要旨。
class ExampleController extends ContentController
{
public function IncludeTemplateFromFilePath() {
var $FilePath = '/path/to/file';
???
return $output
}
}
模板语法:
<div>$IncludeTemplateFromFilePath</div>
我已经浏览了SSViewer documentation,并查看了Silverstripe源代码,但是无法找出正确的语法来完成这项工作。
有很多例子:
return SSViewer::get_templates_by_class(static::class, $suffix, self::class);
但是从文件路径中获取模板的语法是什么?
答案 0 :(得分:1)
我相信您可以执行以下操作:
public function IncludeTemplateFromFilePath()
{
return SSViewer::execute_string(
file_get_contents('/path/to/Template.ss'),
[
'Content' => 'Value that will be in $Content when used in /path/to/Template.ss'
]
);
}
参考:http://api.silverstripe.org/4/SilverStripe/View/SSViewer.html#method_execute_string