lut 06

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.

Autor siema \\ tagi: , , , , , , , , ,



6 Odpowiedzi do “Bootstrap i przygotowanie layout’u”

  1. ekleers napisał(a):

    <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?

  2. siema napisał(a):

    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

  3. Edek napisał(a):

    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.

  4. siema napisał(a):

    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.

  5. Patryk napisał(a):

    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)?

  6. ViX napisał(a):

    Patryk: w szablonie możesz użyć np. $this->escape($zmienna);