2015-03-06 3 views
0

В моем приложении ZF2 я хочу изменить каталог Template во время выполнения.Как изменить путь просмотра во время выполнения

Путь по умолчанию устанавливается в module.config.php:

'template_path_stack' => array(
     __DIR__ . '/../view', 
), 

Я хотел бы изменить, что в эквиваленте

'template_path_stack' => array(
     __DIR__ . '/../view-alternate', 
), 

во время выполнения, так что я могу динамически изменять тему страницы на основе по пользовательскому предпочтению, которое хранится в БД.

ответ

0

Разрешение имен шаблонов - это тяжелый процесс. Лучше указать имя шаблона вручную.

Я рекомендую вам использовать 'template_map' вместо 'template_path_stack'. Вы можете создать какое-то соглашение об именах, чтобы различать две темы, это может быть префикс, который можно управлять динамически.

Существует инструмент для преобразования стека в карте шаблона: https://github.com/zendframework/zf2/blob/master/bin/templatemap_generator.php

+0

Итак, вы предлагаете установить шаблон с помощью 'setTemplate()' в контроллере? –

+0

Или лучше в onBootstrap() внутри вашего Module.php. Таким образом, вы не повторяете код через контроллеры. – itrascastro

0

Решение, которое я закончил с заключается в использовании https://github.com/ZendExperts/ZeTheme.

В сочетании с опцией также сохранить тему в сеансе, я смог изменить тему, потому что она не во время выполнения. Необходима перезагрузка страницы.

Это обходной путь. Не ответ.

Смежные вопросы