CSS jest wartościowym dodatkiem do większości zastosowań WWW, ponieważ stanowi on system
szablonów dla HTML. Wykorzystując CSS, można zmienić atrybuty wszystkich elementów HTML. Na przykład można tak zdefiniować znacznik <h3>, aby w kontekście tej witryny wyglądał w określony sposób. Na wydrukach 14.4. i 14.5. pokazany jest wygląd komercyjnego edytora CSS o nazwie TopStyle z firmy Bradbury Software LLC ( http://www.bradsoft.com/). Edytor ten upraszcza proces tworzenia plików CSS oraz pozwala na podgląd zmienionych stylów.
179
PHP – Kompendium wiedzy
Rysunek 14.4.
Arkusz stylu
pokazujący
możliwość
modyfikacji
znaczników
<body>, <td> i
<h3>
Rysunek 14.5.
Inny arkusz stylu
pokazujący
możliwość
modyfikacji
znaczników
<body>, <td> i
<h3>
Użycie CSS wraz z systemem szablonów zwiększa możliwość wprowadzania zmian do wyglądu witryny
minimalizując konieczność wprowadzania zmian do kodu aplikacji. Pliki CSS mogą być nawet dołączane dynamicznie, w postaci zmiennej szablonu. Mimo, że nie jest to optymalne rozwiązanie dla wszystkich typów witryn, pozwala zrealizować kolejny poziom konfiguracji wyglądu tworzonej aplikacji.
Rozdział 14 – Witryny oparte o szablony
180
Poprzedni przykład stanowi podstawowy szkielet dla tworzenia aplikacji WWW opartej o szablony.
Jednak nie zostały tu pokazane przykłady tworzenia powtarzających się elementów. Często zachodzi potrzeba stworzenia tabeli zawierającej wszystkie towary, lub listę kategorii zapisanych w bazie danych.
Kolejny przykład pokazuje, w jaki sposób można dołączyć powtarzające się elementy, korzystając z klasy FastTemplate. Wydruk 14.9. zawiera główny plik szablonu. Wydruk 14.10. to zawartość szablonu items, natomiast wydruk 14.11. szablon pojedynczego elementu. Na wydruku 14.12 znajduje się skrypt łączący te szablony w całość.
Wydruk 14.9. Główny szablon kategorii
<html>
<head>
<title>{TITLE}</title>
</head>
<body>
{ITEMS}
</body>
</html>
Wydruk 14.10. Szablon kategorii ‘items’
Do wyboru są następujące kategorie produktów:
<ul>
{ITEM_LIST}
</ul>
Wydruk 14.11. Szablon dla pojedynczej kategorii
<li><a href="show_category.phtml?cat_id={CAT_ID}">{CAT_NAME}</a></li> Wydruk 14.12. Skrypt generujący stronę z listą kategorii
<?php
include( "class.FastTemplate.php" );
$aTPL = new FastTemplate( "." );
$aTPL->define( array( 'base' => 'cat_base.tpl',
'items' => 'cat_items.tpl',
'item' => 'cat_item.tpl' ) );
$aCategories = array( "ubrania", "prezenty", "zabawki", "książki" ); foreach( $aCategories as $aID => $aName )
{
$aTPL->assign( array( 'CAT_ID' => $aID,
'CAT_NAME' => $aName ) );
// analiza elementu i jego dołączenie do zmiennej szablonu
// ITEM_LIST
$aTPL->parse( 'ITEM_LIST', '.item' );
}
$aTPL->assign( array( 'TITLE' => 'Lista kategorii' ) );
$aTPL->parse( 'ITEMS', 'items' );
$aTPL->parse( 'BASE', 'base' );
$aTPL->FastPrint( 'BASE' );
?>
Rysunek 14.6. Lista
kategorii
Przedstawiony przykład zawiera wbudowaną listę kategorii w celu wygenerowania strony z listą kategorii.
Wynik działania skryptu przedstawiony jest na rysunku 14.6. Po raz kolejny załóżmy, że dział projektowy zdecydował się na zmianę formatu listy kategorii z listy wypunktowanej na tabelę. Zmiany są ograniczone jedynie do plików items i item. Wykorzystując poprzedni przykład zmienione szablony przedstawione są na wydrukach 13. i 14. Efekt końcowy pokazany jest na rysunku 14.7.
181
PHP – Kompendium wiedzy
Wydruk 14.13. Nowy szablon „items”
Do wyboru są następujące kategorie produktów:
<br><br>
<table border="1">
{ITEM_LIST}
</table>
Wydruk 14.14. Nowy szablon „item”
<tr>
<td>
Kategoria nr. {CAT_ID}
</td>
<td>