在Silverstripe 4项目中,我们在PageController.php
下使用以下方法将页面内容输出为JSON:
class PageController extends ContentController
{
private static $allowed_actions = array(
'json'
);
public function json(HTTPRequest $request)
{
$data = array();
$data['ID'] = $this->ID;
$data['Title'] = $this->Title;
$data['Breadcrumbs'] = $this->obj('Breadcrumbs')->forTemplate();
$data['Content'] = $this->obj('Content')->forTemplate();
$this->response->addHeader('Content-Type', 'application/json');
return json_encode($data);
}
}
现在,我想对运行Elemental module的页面执行相同的操作。元素允许页面内容由许多动态/可配置块生成。
要访问元素,我使用以下模板代码:$ElementalArea
-返回生成的HTML。
我需要将以下行替换为返回由$ElementalArea
生成的HTML的行:
$data['Content'] = $this->obj('Content')->forTemplate();
我不确定执行此操作的正确方法,希望您提出任何建议。
答案 0 :(得分:2)
完全相同-$this->ElementalArea()->forTemplate()
。