Obszary bloków i segmentów w PHPTemplate

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ć.

Standardowe obszary

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

Definiowanie własnych obszarów

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

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ć.

wyświetlanie obszarów

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.

Zastosowania

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.

Sposób wyświetlania odpowiedzi

Wybierz preferowany sposób wyświetlania odpowiedzi i kliknij "Zachowaj ustawienia", by wprowadzić zmiany.
Portret użytkownika Erewhon

Ja właśnie walczę z

moderator

Ja właśnie walczę z modułem Views i czekam z niecierpliwością na opis tego modułu. :)

Portret użytkownika archetwist

Nie jest to co prawda

moderator

Nie jest to co prawda dokładny opis modułu, ale zapowiadany poradnik: Różny wygląd podstron za pomocą alternatywnych szablonów, arkuszy i modułu Views :)

„Definiowanie obszarów jest

To już któraś z kolei edycja posta. Wszystkie problemy rozwiązane. Napiszę teraz jak się z nimi uporałem, albo prosto,Jak tworzyć segmenty w Drupalu 6

Otóż w Drupalu 6 definiowanie obszarów jest jeszcze prostsze „niż budowa cepa”. Wszystko definiujemy w pliku .info
Przykładowo mój plik iro.info:

; $Id: iro.info,v 1.5 2007/07/01 23:27:32 goba Exp $
name = iro
description = Tableless, recolorable, multi-column, fluid width theme (default).
version = VERSION
core = 6.x
engine = phptemplate

regions[left] = Lewy segment
regions[right] = Prawy segment
regions[header] = Naglowek
regions[annews] = Nad trescia /* <- tu moj blok */
regions[content] = Tresc
regions[footer] = Stopka

; Information added by drupal.org packaging script on 2008-07-09
version = "6.3"
project = "drupal"
datestamp = "1215640509"


W przypadku gdy nie chce zaskoczyć, trzeba wyczyścić cache.
Wchodząc do: Zarządzaj > Konfiguracja witryny > Wydajność

UWAGA! w pliku nasza-skorka.info nie używamy poslich znaków (nawet w opisach segmentów)! w przeciwnym wypadku natkniecie się na błąd:

Invalid argument supplied for foreach() in includes/theme.inc on line 448 i 443


Pozdrawiam, mam nadzieję że się przyda.

Portret użytkownika archetwist

Dzięki za ten opis.

moderator

Dzięki za ten opis. Należałoby właściwie całą tę część podręcznika (dotyczącą skórek) uaktualnić. Na drupal.org jest już nowa dokumentacja.