Динамическая настройка просмотра каталога - PullRequest
0 голосов
/ 07 августа 2009

Я делаю приложение на портале для клиентов, используя ZF. И портал должен работать на разные бренды компании. Поэтому мне нужно использовать все тот же код бэкэнда / контроллеры / и т. Д., Но динамически изменять каталог представления на основе имени хоста.

Прямо сейчас моя структура каталогов вида выглядит примерно так:

/application/views/scripts/brand1/
/application/views/scripts/brand1/index/index.phtml
/application/views/scripts/brand1/error/error.phtml
/application/views/scripts/brand2/
/application/views/scripts/brand2/index/index.phtml
/application/views/scripts/brand2/error/error.phtml
/application/views/scripts/brand3/
/application/views/scripts/brand3/index/index.phtml
/application/views/scripts/brand3/error/error.phtml
and so on.

Я использую функцию addScriptPath () в bootstrap.php, вот так

protected function _initView()
{
    $view = new Zend_View();
    $view->doctype('XHTML1_STRICT');
    $view->env = APPLICATION_ENV;
    $view->addScriptPath(APPLICATION_PATH . '/views/scripts/brand1');
    $view->addHelperPath(APPLICATION_PATH . '/views/helpers');

    ...
}

Однако, когда это выполняется, он ищет все представления, используя /views/scripts/brand1/(action).phtml вместо того, чтобы искать представления, используя правильную схему / view / scripts / brand1 / (controller) / (action) ) .phtml

tl; dr Можно ли динамически выбирать каталог представления и работать так же, как по умолчанию /views/scripts/(controller)/(action).phtml поведение?

1 Ответ

1 голос
/ 07 августа 2009

Я знал, что найду ответ после публикации здесь. В случае, если кто-то еще сталкивается с той же проблемой, решение использовалось:

$view->setBasePath(APPLICATION_PATH . '/views/brand1');

А затем изменив структуру каталогов на:

/application/views/brand1/scripts/...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...