Niezalogowany (Zaloguj się)

Kategorie

Vanilla 1.0.3 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

    • CommentAuthoradmirau
    • CommentTimeDec 27th 2006 zmieniony
     
    Poniższy przykład pokazuje, jak za pomocą PHPTAL wyświetlić dane na stronie.

    Więc zabieramy się do roboty!

    Najpierw tworzymy layout naszej strony,
    tradycyjnie, tak jak zwykle w XHTML:

    plik: plik_szablonu.html

    <code lang="xml">
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <title>
    miejsce na tytuł strony
    </title>
    </head>
    <body>
    <h1>miejsce na tytuł strony</h1>
    <table border="1">
    <thead>
    <tr>
    <th>Nagłówek</th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td>wiersze tabeli</td>
    </tr>
    </tbody>
    </table>
    </body>
    </html>
    </code>

    Wyświetlając stronę w przeglądarce, widzimy miejsce na tytuł strony i tabelkę.

    Podglądając źródło strony w przeglądarce,
    widzimy dokładnie taki sam kod jak wyżej.

    Teraz chcemy, aby na tej stronie zostały wyświetlone dane ze skryptu PHP, więc przygotowujemy odpowiedni plik PHP

    plik: strona.php
    <code lang="php">
    <?php

    /**
    * Przykład użycia szablonów PHPTAL
    * Wyświetla tablicę na stronie i generuje nagłówek strony
    */

    /* Konfiguracja PHPTAL */

    $stara_sciezka = ini_get('include_path');
    // dla serwera na windows trzeba użyć ';' zamaist ':' w lini poniżej
    ini_set('include_path', $stara_sciezka.':/sciezka/do/bibiotek/PHPTAL-1.1.7');

    // katalog z szablonami
    define('PHPTAL_TEMPLATE_REPOSITORY', '/sciezka/do/szablonow/_tpl/');

    // katalog dla szablonów skompilowanych
    // uwaga: katalog musi mieć prawa do zapisu!
    define('PHPTAL_PHP_CODE_DESTINATION', '/sciezka/do/szablonow/skompilowanych/');

    // wymuś kompilację za każdym razem
    define('PHPTAL_FORCE_REPARSE', 1);

    require_once 'PHPTAL.php';

    /* Koniec konfiguracji PHPTAL */

    // stworzenie nowego obiektu "szablon"
    $szablon = new PHPTAL('plik_szablonu.html');

    // tą tablicę chcemy wyświetlić na stronie
    $tablica=array('aaa','bbbb','ccc','dddd','eeee');

    // pobranie dzisiejszej daty
    $dzisiejsza_data=date('j F Y');

    // przypisanie do szablonu wartości, które wyświetlimy na stronie
    $szablon->tytul = 'Tytuł strony: Wiadomości z dnia ' . $dzisiejsza_data;
    $szablon->tablica = $tablica;

    try {
    // wyświetlenie szablonu
    echo $szablon->execute();
    }
    // wyświetlenie błędu, jeśli wystąpił podczas wyświetlania
    catch (Exception $e){
    echo $e;
    }

    ?>
    </code>

    Mamy już skrypt wyświetlający naszą stronę.

    Ale chcemy teraz wyświetlić na tej stronie przypisane w skrypcie PHP do szablonu dane.

    Musimy więc przerobić stronę, dodając tagi tal:

    tal:content - zmienia zawartość tagu HTML na wartość podanej zmiennej
    tal:repeat - tworzy pętlę

    Zmieniamy plik HTML, tym samym tworząc aktywny szablon:

    <code lang="xml">
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <title tal:content="tytul">
    miejsce na tytuł strony
    </title>
    </head>
    <body>
    <h1 tal:content="tytul">miejsce na tytuł strony</h1>
    <table border="1">
    <thead>
    <tr>
    <th>Nagłówek</th>
    </tr>
    </thead>
    <tbody>
    <tr tal:repeat="wiersz tablica">
    <td tal:content="wiersz">wiersze tabeli</td>
    </tr>
    </tbody>
    </table>
    </body>
    </html>
    </code>


    Po wgraniu obu plików na serwer do odpowiednich katalogów i uruchomieniu pliku PHP,
    widzimy:
    <code>
    Wiadomości z dnia DD-MM-RRRR

    [Nagłówek ]
    [ aaa ]
    [ bbb ]
    [ ccc ]
    [ dddd ]
    [ eeee ]
    </code>

    a podglądając kod strony HTML w przeglądarce:
    <code lang="xml">
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <title>Wiadomości z dnia 14-07-2006</title>
    </head>
    <body>
    <h1>Wiadomości z dnia 14-07-2006</h1>
    <table border="1">
    <thead>

    <tr>
    <th>Nagłówek</th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td>aaa</td>
    </tr><tr>

    <td>bbbb</td>
    </tr><tr>
    <td>ccc</td>
    </tr><tr>
    <td>dddd</td>
    </tr><tr>
    <td>eeee</td>

    </tr>
    </tbody>
    </table>
    </body>
    </html>
    </code>

    Prawda, że proste? :)