<?php
class My_Application_Resource_Page
extends Zend_Application_Resource_ResourceAbstract
{
protected $_page;
public function getPage()
{
if (null === $this->_page) {
$this->_page = new My_Page($this->getOptions());
}
return $this->_page;
}
public function init()
{
$page = $this->getPage();
$bootstrap = $this->getBootstrap();
$bootstrap->bootstrap(array(
'layout',
'view',
'frontController'
));
$front = $bootstrap->getResource('frontController');
$layout = $bootstrap->getResource('layout');
$view = $bootstrap->getResource('view');
$request = new Zend_Controller_Request_Http();
$front->setRequest($request);
$baseUrl = $request->getBaseUrl();
$view->headTitle()
->setDefaultAttachOrder($page->getTitleDefaultAttachOrder())
->setSeparator($page->getTitleSeparator())
->headTitle($page->getTitleContent());
foreach ($page->getCss() as $css) {
if (isset($css['media'])) {
$view->headLink()->appendStylesheet($baseUrl . $css['href'], $css['media']);
} else {
$view->headLink()->appendStylesheet($baseUrl . $css['href']);
}
}
foreach ($page->getJs() as $js) {
$view->headScript()->appendFile(
$baseUrl . $js,
'text/javascript'
);
}
if ($keywords = $page->getKeywords()) {
$view->headMeta()->appendName('keywords', $keywords);
}
if ($description = $page->getDescription()) {
$view->headMeta()->appendName('description', $description);
}
$ext = $page->getExtension();
if ($ext != 'phtml') {
$layout->setViewSuffix($page->getExtension());
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
$viewRenderer->setViewSuffix($page->getExtension());
$viewRenderer->setView($view);
}
return $page;
}
}
Listing 11.6. Klasa My_Application_Resource_Page
Rozdział 11. Implementacja wtyczki inicjalizującej zasoby