Bootstrap, jest klasą w której możemy zdefiniować pewne elementy inicjujące naszego projektu. Zawarta jest ona w pliku application/Bootstrap.php.
Pierwszą metodą którą należy utworzyć jest metoda _initDoctype() wraz z zawartością. Warto zwrócić uwagę, że metoda może się nazywać inaczej ważne aby rozpoczynała się od znaku _ gdyż jak zauważyłem Zend Framework automatycznie uruchamia wszystkie metody zaczynające się od znaku podkreślenia ( _ ). Przykładowa zawartość pliku Bootstrap.php może wyglądać tak:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initDoctype()
{
$this->bootstrap('view');
$view = $this->getResource('view');
$view->doctype('XHTML1_STRICT');
}
}
Klasa ta wraz ze zdefiniowaną metodą przekazuje do widoku informacje jakiego rodzaju doctype będziemy używać. W tym wypadku XHTML Strict.
Teraz pozostaje nam już tylko stworzyć plik widoku. Plik widoku tworzymy w Application/layouts/scripts/layout.phtml. W ramach pliku layout.phtml umieścimy odwołanie do widoku częściowego. Przykładowa zawartość pliku layout.phtml może wyglądać tak:
<?php echo $this->doctype() ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Zend Framework Quickstart Application</title> <?php echo $this->headLink()->appendStylesheet('/css/global.css') ?> </head> <body> <div id="header" style="background-color: #EEEEEE; height: 30px;"> <div id="header-logo" style="float: left"> <b>ZF Quickstart Application</b> </div> <div id="header-navigation" style="float: right"> <a href="<?php echo $this->url( array('controller'=>'guestbook'), 'default', true) ?>">Guestbook</a> </div> </div> <?php echo $this->layout()->content ?> </body> </html>
Na czerwono oznaczyłem dwie ważne linie. Pierwsza odpowiada za wstawienie odpowiedniego doctype, natomiast druga wstawia zawartość widoków częściowych w ramach naszego głównego layout’u.
Czerwiec 25th, 2010 at 20:09
<a href="url(
array(‘controller’=>’guestbook’),
‘default’,
true) ?>”>Guestbook
co to jest?
dlaczego nie dziala?
no oprocz tego ze sie wyswietla
i dlaczego moja strona ma to co w layout.phtml i \public\index.php ?
to raczej nie jest dobre bo syle z index.php mam zadeklarowane w body a nie w head? czy cos przeoczylem?
Czerwiec 29th, 2010 at 17:30
Nie działa bo nie zauważyłem, że to jest link odwołujący się do kontrolera o nazwie Guestbook i modułu default akcji index, a takiego kontrolera nie ma więc aplikacja ci się wysypie. Zmień sobie ten link na jakiś inny
z resztą to jest tylko przykład a przypuszczam, że ten link nie będzie ci do niczego potrzebny
Wrzesień 7th, 2010 at 23:44
Mógłbyś coś napisać o dołączaniu stałych elementów do Layoutu, np. menu bocznego, szukam tego w tutorialach ale przyznam się szczerze że nie wiem jak to zrobić. Jak przesłać zmienne etc.
Wrzesień 12th, 2010 at 20:32
Edek: Powiem krótko. Zmienne z kontrolera do widoku przesyłasz tak: $this->view->zmienna = “wartość” natomiast w widoku odczytujesz taką zmienną poprzez np. echo $this->zmienna i to wszystko. Natomiast elementy bonczne menu górne dolne czy cokolwiek innego możesz umieścić w osobnych plikach i wykonać w widoku normalną instrukcję include lub require. Nie różni się to niczym od zwykłego programowania w PHP.
Listopad 26th, 2010 at 18:01
Dopiero “raczkuje” w Zendzie, ale czy są już gotowe pomoce w postaci typu htmlspecialchars, htmlspecialchars_decode, itd – tak jak to było w przypadku Kohana FW?
Czy po prostu w Zendzie ręcznie wpisuje się htmlspecialchars(CIAG, KODOWANIE)?
Maj 28th, 2011 at 11:40
Patryk: w szablonie możesz użyć np. $this->escape($zmienna);