Ваш контроллер имеет защищенное свойство, которое по умолчанию имеет значение Fluid, изменить его на что-то другое очень просто:
protected $viewFormatToObjectNameMap = array('json' => '\TYPO3\FLOW3\MVC\View\JsonView');
Теперь взгляните на EmptyController в том же каталоге: \TYPO3\FLOW3\MVC\View\
Вы можете использовать это как начало. Что вам в основном нужно сделать, так это удовлетворить метод assign, способ, которым вы можете передавать переменные в свою тему.
Затем придумайте несколько стандартизаций (например, файлы шаблонов должны находиться в папке \Resources\Private\Templates\ControllerName\ActionName.phtml, обратите внимание на расширение файла) и укажите, какая переменная будет доступна там (например, $view ).
Теперь очень простой подход:
protected $view = array();
public function assign($key, $value) {
$this->view[$key] = $value;
}
public function render() {
$this->controllerContext->getResponse()->setHeader('Content-Type', 'text/html');
$view = $this->view;
ob_start();
include_once($this->getTemplatePathAndFilename());
$output = ob_get_contents();
ob_end_clean();
return $output;
}
}
Для функции $this->getTemplatePathAndFilename() вы можете использовать код из метода TYPO3\Fluid\View\TemplateView->getTemplatePathAndFilename() и настроить его под свои нужды.
В ваших файлах шаблонов теперь вы можете использовать переменную $view.
Я у своих родителей на Пасху, и им не хватает среды выполнения, поэтому это не тестировалось, и вы, вероятно, столкнетесь с проблемами, но это должно помочь вам начать!
person
shredding
schedule
07.04.2012