protected function _initPage()
{
$this->bootstrap(array(
'layout',
'view',
'frontController',
));
$front = $this->getResource('frontController');
$layout = $this->getResource('layout');
$view = $this->getResource('view');
$request = new Zend_Controller_Request_Http();
$front->setRequest($request);
$baseUrl = $request->getBaseUrl();
$defaultsArray = array(
'page' => array(
'title' => array(
'separator' => '',
'content' => '',
'defaultAttachOrder' => 'APPEND',
),
'css' => array(),
'js' => array(),
'keywords' => false,
'description' => false,
'extension' => 'phtml',
)
);
$defaults = new Zend_Config($defaultsArray, true);
$cfg = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini', 'production');
$cfg = $defaults->merge($cfg);
$view->headTitle()
->setDefaultAttachOrder($cfg->page->title->defaultAttachOrder)
->setSeparator($cfg->page->title->separator)
->headTitle($cfg->page->title->content);
foreach ($cfg->page->css as $css) {
if (isset($css->media)) {
$view->headLink()->appendStylesheet($baseUrl . $css->href, $css->media);
} else {
$view->headLink()->appendStylesheet($baseUrl . $css->href);
}
}
foreach ($cfg->page->js as $js) {
$view->headScript()->appendFile(
$baseUrl . $js,
'text/javascript'
);
}
if ($cfg->page->keywords) {
$view->headMeta()->appendName('keywords', $cfg->page->keywords);
}
if ($cfg->page->description) {
$view->headMeta()->appendName('description', $cfg->page->description);
}
if ($cfg->page->extension != 'phtml') {
$layout->setViewSuffix($cfg->page->extension);
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
$viewRenderer->setViewSuffix($cfg->page->extension);
$viewRenderer->setView($view);
}
}
Listing 10.17. Metoda odpowiedzialna za przetworzenie opcji page z listingu 10.14
Rozdział 10. Zasoby