PHPTemplate to tzw. silnik skórek, napisany przez Adriana Rossouwa. Wykorzystuje on pliki o nazwach kończących się na .tpl.php do modyfikacji wbudowanych w Drupala funkcji theme_costam(). Listę dostępnych funkcji można znaleźć na stronie Development Plumbing. Każdy ze wspomianych plików zawiera szkielet HTML oraz jakiś prosty kod PHP służący do prezentowania dynamicznych danych. PHPTemplate jest więc świetnym wyborem jeśli znasz trochę PHP. Korzystając z prostych "ściągawek" możesz w łatwy sposób stworzyć rozbudowane skórki.
Jeśli natomiast nie znasz PHP, PHPTemplate i tak może być odpowiednim wyborem, ponieważ naprawdę niewielkie fragmenty kodu skórek wymagają jego użycia. Możesz po prostu skorzystać ze wspomianych już ściągawek, które użytkownicy umieszczają na drupal.org, i wkleić je do swojej skórki.
Jeśli posiadasz wersję 4.7 (lub późniejszą) Drupala, PHPTemplate jest już w nim zawarty. W przypadku starszych wersji, musisz go najpierw pobrać i zainstalować poprzez wysłanie na serwer, do podkatalogu /themes/engines.
Utwórz nowy podkatalog wewnątrz katalogu themes. Następnie utwórz w nim plik page.tpl.php. Jest to jedyny plik, który jest absolutnie wymagany. Jego zadanie polega na nadpisywaniu (zastępowaniu) funkcji theme('page') Drupala, która odpowiada za generowanie stron, wraz z takimi ich elementami jak nagłówek, stopka, karty czy paski boczne.
Możesz utworzyć pliki zastępujące następujące funkcje (kliknij w nazwę pliku by przejść do strony z jego objaśnieniem):
theme('page') - plik page.tpl.phptheme('block') - plik block.tpl.phptheme('box') - plik box.tpl.phptheme('node') - plik node.tpl.phptheme('comment') - plik comment.tpl.phpPHPTemplate zawiera przykładowe pliki szablonów - sprawdź w katalogu skórki box_grey. Możesz skopiować znajdujący się tam plik page.tpl.php do katalogu swojej skórki i tak zacząć jej tworzenie. Pamiętaj, że aby Drupal "dowiedział się" o istnieniu nowej skórki, będziesz musiał odwiedzić stronę zarządzaj » skórki.
Jeśli chcesz zastąpić jakieś inne, niewymienione tutaj funkcje, musisz postarać się o to sam.
Objaśnienie wszystkich standardowych zmiennych występujących w plikach szablonów oraz przykłady tych plików można znaleźć na stronie PHPTemplete theme engine na drupal.org.
Zanim przystąpisz do defniowania obszarów dla swojego szablonu PHPTemplate, być może będziesz chciał się zapoznać z ogólnymi informacjami na temat obszarów.
Poniżej znajdują się informacje na temat standardowych obszarów i dodawania własnych, ich wykorzystanie jednak daje o wiele szersze możliwości niż mógłbyś przypuszczać.
Domyślnie PHPTemplate definiuje pięć podstawowych obszarów: lewy, prawy, obszar zawartości, nagłówek oraz stopkę. Ich angielskie nazwy, używane w samym szablonie, to odpowiednio: left, right, content, header, oraz footer.
Definiowanie obszarów polega jedynie na wprowadzeniu w szablonie zmiennych odwołujących się do tychże obszarów. Zmienne te to: $sidebar_left, $sidebar_right, $content, $header oraz $footer. By wyświetlić na stronie zawartość danego obszaru, wpisalibyśmy w pliku szablonu taki na przykład kod:
<?php print $header; ?>
No dobrze, dotychczas nie było zbyt ciekawie, ale przejdziemy do czegoś bardziej interesującego. Przypuśćmy, że chcę dodać nowy obszar ponad główną zawartością, by być na przykład w stanie umieścić bloki zarówno nad zawartością (np. artykułami), jak i pod nią. Muszę więc najpierw zdefiniować swoje obszary w pliku szablonu mojej skórki.
Definiowanie obszarów jest proste jak budowa cepa i odbywa się w pliku template.php w katalogu ze skórką. Jeśli jeszcze nie posiadasz tego pliku, utwórz go teraz. Następnie wprowadź do niego nową funkcję:
<?php
function moja-skórka_regions() {
return array(
'left' => t('left sidebar'), /* to lewy pasek boczny */
'right' => t('right sidebar'), /* a to prawy */
'header' => t('header'), /* to nagłówek strony */
'top' => t('góra'), /* a to nasz nowy obszar! */
'content' => t('content'), /* dalej zawartość */
'footer' => t('footer') /* i stopka */
);
}
?>
Zwróć uwagę na komentarze objęte znakami /* */.
Wszystkie te obszary są standardowe, z jednym wyjątkiem – wprowadziliśmy nowy obszar o nazwie „top”, który nazwaliśmy „góra”. Reszcie obszarów nie musimy nadawać polskich nazw, ponieważ zostanie to automatycznie dokonane przez moduł obsługujący tłumaczenia.
Pamiętaj by zamienić tekst moja-skórka na nazwę swojej skórki. Inaczej funkcja nie będzie działać.
Mamy obszar, ale Drupal jeszcze nie wie, gdzie go umieścić. Musimy wprowadzić obszar do pliku szablonu strony. Otwieramy więc plik page.tpl.php i w wybranym miejscu (np. powyżej zawartości) wpisujemy:
<?php print $top; ?>
W ten jakże nieskomplikowany sposób umieściliśmy obszar w naszej skórce. Możemy już umieścić w nim bloki.
Wyobraź sobie co można uzyskać dzięki tej funkcji w połączeniu z alternatywnymi szablonami dla różnych działów witryny. Tak, tak, dzięki temu możemy na przykład sprawić by główna strona nie wyświetlała nawet listy najnowszych segmentów, a wybrane przez nas bloki i zmodyfikowane listy tematyczne.
O tym jednak napiszę w specjalnym poradniku, w którym omówię wykorzystanie obszarów, alternatywnych szablonów oraz genialnego modułu Views.