Silverstripe 4:包含文件路径中的模板

时间:2018-06-20 22:41:51

标签: silverstripe silverstripe-4

我正在一个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);

但是从文件路径中获取模板的语法是什么?

1 个答案:

答案 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