我想在左侧面板中显示一些通常包含树视图的自定义内容。
由于此面板中的内容将是一个可编辑的Gridfield,它应与EditForm相关,我尝试以这种方式构建一个新的EditFormTools面板:
我使用以下代码在同一目录中创建了CMSMain_EditFormTools.ss文件:
<div class="cms-content-tools west cms-panel" data-expandOnClick="true" data-layout-type="border" id="cms-content-tools-CMSMain">
<div class="cms-panel-content west">
<% include Test %>
</div>
</div>
我用:
创建了一个Test.phpclass Test extends CMSMain{
public $var = 'test';
public function testfunction(){
$variable = 'hakuna matata';
return $variable;
}
}
然后我使用以下代码创建了一个Test.ss:
some Text
$var
$testfunction
$variable
Panel现在出现在我的CMS中,但它只包含“some text”。因此Test.ss的包含完全正常,但是将变量从Test.php传递给Test.ss则没有。
有人可以帮忙吗?
问候
答案 0 :(得分:0)
它可能无法直接回答您的问题,但可能会给您指示。 您需要扩展控制器类。 然后你可以使用一个被调用的函数告诉控制器它应该使用renderWith()来使用哪个模板文件。 例如,
public function index(){
return $this->renderWith("Test");
}
然后,Test.ss中的函数引用将调用Test.php中的函数,因为它是控制器。 如果Test类不是呈现模板的控制器,则模板不知道变量返回函数的位置。 顺便说一句,您可以将变量从布局传递到包含模板。