PHP шаблон с Flow3 - PullRequest
       52

PHP шаблон с Flow3

2 голосов
/ 15 марта 2012

Создание шаблонов с помощью Flow3 выполняется с использованием Текущий язык шаблонов .

Есть ли интегрированное / простое решение для использования шаблонов PHP вместо этого? (без необходимости писать шаблон рендерера самостоятельно)

(чтобы избежать недоразумений: под шаблоном PHP я имею в виду код HTML, смешанный с PHP)

Ответы [ 2 ]

0 голосов
/ 07 апреля 2012

Ваш контроллер имеет защищенное свойство, которое по умолчанию имеет значение Fluid, изменить его на что-то еще очень просто:

    protected $viewFormatToObjectNameMap = array('json' => '\TYPO3\FLOW3\MVC\View\JsonView');

Теперь взгляните на EmptyController в том же каталоге: \ TYPO3 \ FLOW3 \MVC \ View \

Вы можете использовать это как начало.Что вам в основном нужно сделать, так это удовлетворить метод назначений, способ передачи переменных в вашу тему.

Далее, придумайте несколько стандартизаций (например, файлы-шаблоны должны находиться в папке\ 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.

Я нахожусь у моих родителей на Пасху, и у них нет среды выполнения, так что это не проверено, и вы, скорее всего, столкнетесь с проблемами, но этодолжен начать!

0 голосов
/ 16 марта 2012

Весь смысл жидкости не в этом.Для этого вы можете написать собственные viewhelpers.

Быстрый обходной путь - написать php viewhelper с использованием eval ()Но это было бы очень плохо с точки зрения безопасности.

...