В проекте 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 . Elementals позволяет содержимому страницы генерироваться несколькими динамическими / конфигурируемыми блоками.
Для доступа к элементарному я использую следующий код шаблона: $ElementalArea
- который возвращает сгенерированный HTML.
Мне нужно заменить следующую строку на строку, которая возвращает HTML, сгенерированный $ElementalArea
:
$data['Content'] = $this->obj('Content')->forTemplate();
Я не уверен в правильном способе сделать это, любые предложения приветствуются.