Szablony

Streszczenie

Obecna implementacja szablonów strony pozwala na stworzenie zestawu stron wewnątrz kategorii template, których można używać jako początkowa treść dla nowo tworzonych stron.
Problemem jest to, że nie istnieje realne powiązanie pomiędzy szablonem, a stroną; i gdy strona zostaje zapisana — jest już kompletnie niezależna od szablonu.

Na dużych sajtach z setkami stron stworzonych za pomocą zdefiniowanych szablonów, nie istnieje prosty sposób na zmianę ich wyglądu.

Nie mniej jednak, chcielibyśmy przedstawić "żywe szablony". Takie szablony zawierają specjalną definicję szablonu (zlokalizowaną w nazwa_kategorii:_template, jedną dla każdej kategorii), która będzie miała wpływ na wygląd każdej strony znajdującej się w danej kategorii.

Szczegóły

Strony szablonów to specjalny typ stron wewnątrz kategorii, których nazwa zaczyna się podkreślnikiem ( _ ). Przykładem definicji szablonu może być:

_template
category:_template
bugs:_template
proposals:_template

Te specjalne strony, z podkreślnikiem ( _ ), nie są wyświetlane przez inne moduły w żadnych listach i są ukryte w większości przypadków.

Definiowanie wyglądu

Głównym celem szablonów jest definiowanie wyglądu strony wewnątrz kategorii. Przykład powinien wszystko wyjaśnić:

+ Oryginalna zawartość strony znajduje się poniżej

%%content%%

----------------

[[module Comments]]

To jest prosty sposób, aby pokazać, to taki szablon tak naprawdę robi. Jeżeli taki kod zostanie zapisany jako nazwa-jakiejś-kategorii:_template, wszystkie strony z kategorii nazwa-jakiejś-kategorii podczas wyświetlania będą łączyć ze sobą swoją treść oraz szablon. Zawartość strony zostanie podstawiona pod znacznik %%content%%. W ten sposób możemy dodać nagłówki, boczne menu, elementy nawigacyjne, moduły, okna komentarzy do szablony, a pojawią się one automatycznie na każdej nowo stworzonej stronie wewnątrz kategorii zawierającej ten szablon.

Jeśli będziesz chciał edytować stronę z takiej kategorii, będzie można edytować tylko treść "wewnętrzną". Szablon jest dodawany dopiero, gdy ogląda się już zapisaną i skompilowaną stronę.

Dzielenie zawartości

Zacznijmy od przykładu szablonu:

[[div style="float:right; width: 200px; border: 1px solid #999; margin: 10px;"]]
%%content{1}%%
[[/div]]

%%content{2}%%

[[table]]
[[row]]
[[column]]
%%content{3}%%
[[/column]]
[[column]]
%%content{4}%%
[[/column]]
[[/row]]
[[/table]]

====

To będzie treść bocznej belki

====

To jest główna treść

====

To znajdzie się w lewej komórce tabeli.

====

A to w prawej

Powyżej opisane są dwie rzeczy: dzielenie zawartości strony oraz domyślna zawartość strony

Dzielenie pozwala na stworzenie sekcji na stronie i manipulowanie nimi osobno poprzez szablon. Sekcje oddzielone są poprzez serię (4 lub więcej) znaków równosci ( ==== ), a odwołują się do %%content{X}%% w szablonie, gdzie X jest kolejnym numerem treści między znakami równości. W szablonie możesz uzyskać do nich dostęp w dowolnej kolejności.

Używając takiego układu możesz łatwo tworzyć zaawansowane układy stron (wielokolumnowe, wielonawigacyjne itp.) oraz edytować i zarządzać nimi w bardzo łatwy sposób.

Domyślna zawartość

W szablonie możesz również dodać domyślną treść dla nowo utworzonych stron. Takie treści oddzielone są tagiem '====', w taki sam sposób, jak przy dzieleniu zawartości. Aby odróżnić je wizualnie, możesz wydłużyć tag, np. do 10 znaków równości. Gdy użytkownik zechce stworzyć nową stronę w kategorii, ta treść zostanie mu pokazana w oknie edycji.

Również, gdy domyślna treść jest zdefiniowana w szablonie, nie ma możliwości wyboru szablony z kategorii templates (poprzedni mechanizm szablonów)

Używanie taga "===="

Może się tak zdarzyć, że będziesz chciał umieścić tag "====" w treści strony, ale nie chcesz, by oddzielał treść, a tylko pokazał się jako znaki równości. Można "wyłączyć" mu funkcję oddzielana treści, poprzez otoczenie go podwójnymi atkami, czyli "@@", jak pokazano poniżej:

@@====@@

Zmienne na stronach _template

Wraz z rosnącą populanością modułu ListPages oraz zwiększonym użyciem ich tagów formatujących (np. %%title%%) wprowadziliśmy kilka zmiennych formatujących strony szablonów. Poniżej znajduje się lista wspieranych tagów:

zmienna aliasy opis
%%title%% tytuł strony
%%linked_title%% %%title_linked%% tytuł strony linkujący do niej samej
%%page_unix_name%% uniksowa nazwa strony — ta, która pojawia się w adresie URL
%%category%% nazwa kategorii strony
%%link%% adres URL do strony
%%author%% wyświetla autora strony
%%date%% wyświetla datę stworzenia strony
%%date|format%% wyświetla datę z własnym formatowaniem. Zajrzyj do dokumentacji PHP strftime. Możesz znaleźć również howto stworzone przez społeczność Wikidota.
%%date_edited%% wyświetla datę ostatniej edycji strony
%%date_edited|format%% tak jak powyżej, z własnym formatowaniem
%%rating%% wyświetla liczbę — ocenę strony
%%comments%% wyświetla liczbę komentarzy do strony
%%tags%% wyświetla tagi strony

Poniżej znajduje się przykład jak można użyć szablonu do stworzenia bloga (np. blog:_template):

autor: %%author%%, data: %%date|%e %B %Y%%
ocena: %%rating%%, tagi: %%tags%%

%%content%%

Zmienianie szablonu:

Gdy edytujesz szablon _template w danej kategorii, wszystkie strony w tej kategorii zostaną przekompilowane i zostaną w nich wprowadzone zmiany z szablonu.

Notka: system szablonów został oryginalnie opisany na naszej stronie developerskiej.

Dodaj nową wypowiedź
2007-2009 Copyright Wikidot Inc.