przewiń do treści

Zend Framework od podstaw

Włodzimierz Gajda

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

listing-10-17.txt