Alternatywne szablony w zależności od rodzaju strony
Zawarte tu informacje dotyczą modyfikacji wyglądu segmentów i całej strony w zależności od typu wyświetlanego segmentu (artykuł, wątek, książka). Mogą być one przydatne np. gdy chcesz w inny sposób zaprezentować użytkownikom statyczne strony typu „o nas” czy „regulamin korzystania” (pozbyć się informacji o dacie dodania itp.).
Drupal i PHPTemplate oferują dwie podstawowe możliwości:
- nadanie innego wyglądu segmentowi (tytuł, informacje o autorze, dacie dodania, odnośniki kontekstowe itp.)
- nadanie innego wyglądu całej stronie
poprzez stworzenie alternatywnych szablonów PHPTemplate.
Wygląd segmentów
Skopiuj swój plik node.tpl.php, odpowiadający za wygląd segmentu i nadaj mu nową nazwę, zgodnie ze schematem node-rodzaj_zawartości.tpl.php, gdzie rodzaj_zawartości to np. page
czy story
.
Następnie zmodyfikuj zawartość tego pliku zgodnie z Twoimi wymaganiami. Możesz usunąć pewne fragmenty albo dodać nowe. Zwróć uwagę, że – korzystając z funkcji Clean URLs
– możesz zamieścić swoją stronę pod adresem typu /o-nas czy /pomoc.
Wygląd całej strony
Alternatywne szablony modyfikujące wygląd całej strony osiągnąć można na wiele sposobów. Tutaj przedstawiony zostanie jeden z najprostszych, a zarazem najbardziej wygodnych.
Mechanizm tego rozwiązania polega na wywołaniu z głównego pliku szablonu całej strony innych szablonów, w zależności od rodzaju segmentu.
Skopiuj swój plik page.tpl.php w bezpieczne miejsce oraz do pliku page-default.tpl.php. Zawartość page.tpl.php zastąp poniższym kodem, którego autorem jest PhilK:
<?php
switch ($node->type) {
case 'book': $inc = 'page-book.tpl.php'; break;
case 'blog': $inc = 'page-blog.tpl.php'; break;
case 'image': $inc = 'page-image.tpl.php'; break;
case 'forum': $inc = 'page-forum.tpl.php'; break;
default: $inc = 'page-default.tpl.php'; break;
}
include ($inc);
?>
Działanie kodu:
- jeśli rodzaj segmentu to książka – odczytanie pliku page-book.tpl.php
- jeśli blog – page-blog.tpl.php
- jeśli grafika dodana przez moduł image – page-image.tpl.php
- jeśli wątek na forum – page-forum.tpl.php
- w innych przypadkach – page-default.tpl.php
Możesz usunąć wybrane linijki rozpoczynające się od case albo dodać własne, wywołujące szablony wyglądu innych rodzajów segmentów.
Następnie powinieneś oczywiście wyedytować każdy z potrzebnych plików .tpl.php i odpowiednio dostosować wygląd.
W ten sposób zmienić możesz nie tylko strukturę stron (HTML), ale i ich ostylowanie. W sekcji <head> danego szablonu umieść wywołanie alternatywnego arkusza stylów CSS, np. tak:
<style type="text/css" media="all">@import "/katalog_skórki/image.css";</style>
Możesz także sprawić by pierwsza, główna strona witryny posiadała inny wygląd. W tym celu stwórz szablon page-front.tpl.php i dodaj następującą linijkę na początek kodu w pliku page.tpl.php:
if ($is_front) {include 'page-front.tpl.php'; return; }
Inne możliwości
Jest wiele innych sposób na zmianę wyglądu w zależności od typu segmentu, włączają w to uzależnienie wyglądu od kategorii, w której umieszczony został dany segment. Więcej informacji znajdziesz na poniższych stronach:
- Customising full page layouts and sections
- Customising node layouts
- Customising flexinode layouts – dla użytkowników modułu flexinode
- moduł taxonomy_theme, umożliwiający zmianę wyglądu w zależności od słownika lub terminu taksonomii, do którego należy segment



Zmiana wyglądu strony przy wielu witrynach
Anonim, ndz., 2009-02-15 00:33„Skopiuj swój plik page.tpl.php w bezpieczne miejsce oraz do pliku page-default.tpl.php. Zawartość page.tpl.php zastąp poniższym kodem,[..]”
Czy skopiowanie modułu „system” do katalogu /sites/www.jakaś_witryna.pl/modules/system/ i dokonanie tam zmian zastąpi ustawienia z katalogu głównego /modules/system/ i pozwoli na ustalenie odmiennych szablonów dla tej wybranej witryny, a pozostawienie domyślnych ustawień dla innych? Jednym słowem, czy można bezpiecznie dublować podstawowe moduły systemowe i ważniejsze dla danej witryny będą te z katalogu tej witryny?
Wygląda na to że ktoś
Anonim (niezweryfikowany), pt., 2010-06-11 14:53Wygląda na to że ktoś kopiował ten kawałek kodu przez jakiś edytor wspomagający autokorektę apostrofów/cudzysłowów …
Zamiast:
case ‚book’: $inc = ‚page-book.tpl.php’; break;
Powinno być tak:
case ‚book’: $inc = ‚page-book.tpl.php’; break;
Popełniłeś ten sam błąd, nie
archetwist, sob., 2010-06-12 00:08 moderatorPopełniłeś ten sam błąd, nie wykorzystując znaczników :-) , ale dziękuję za informację, zrozumiałem o co chodzi i wyedytowałem artykuł.
tworzenie stron • grafika • doradztwo drupalowe