Portál AbcLinuxu, 30. dubna 2025 22:58
Mnohem lepsi je pouzit Zend_Layout, tohle do view imho moc nepatri a hlavne to budes muset mit ve vsech strankach, coz je trochu opruz a taky nemuzes stejnou template pouzit pro rozdilne views.
Dale je doporucovavano mit vsech rozdeleno do "samostatnych" modulu a defautlni nazvany default. Tzn. ze v adresari application bude podadresar default a v nem potom az to co tam mas ted.
Jinak preju hodne zabavy, se ZF se da opravdu hodne rychle vyvijet.Zend_Layout je vážně super věc. Do bootstrapu se dá něco jako:
$layout = Zend_Layout::startMvc(); $layout->setConfig($config);
V $config
je uložena instance konfigurace, vytvořená např. pomocí třídy Zend_Config_Ini
nebo Zend_Config_Xml
(já preferuju Zend_Config_Xml
) a ve svém konfiguračním XML je něco jako:
<configdata> <production> <layout>hlavnilayout</layout> <layoutPath>application/layout/</layoutPath> </production> </configdata>
No a ve vlastním layoutu hlavnilayout.phtml
pak můžeš uvést vlastní tělo HTML stránky:
<?php $this->headMeta()->appendHttpEquiv("Content-Type","text/html; charset=UTF-8"); ?> <?= "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" ?> <?= $this->doctype("XHTML1_STRICT")."\n" ?> <html> <head> <?= $this->headTitle()."\n" ?> <?= $this->headMeta()."\n" ?> <?= $this->headLink()."\n" ?> <?= $this->headScript()."\n" ?> </head> <body> <div id="Header"> <h1><?= $this->headTitle()->getValue() ?></h1> </div> <div id="Content"> <!-- Tady se bude generovat vlastní tělo stránky --> <?= $this->layout()->content ?> </div> <div id="Footer" class="NoPrint">Patička stránky</div> </body> </html>
Hlavní obsah stránky generována v controlleru se doplní v $this->layout()->code
. V controlleru lze rovněž pomocí $this->_helper->layout->disableLayout()
vykreslování layoutu buď úplně vypnout, nebo pomocí $this->_helper->layout->setLayout('jinylayout')
nastavit layout jiný.
Musím uznat, že předtím byla práce se Zend Framework trošku složitější.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.