Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00457 006745 14291194 na godz. na dobę w sumie
Komponenty tworzące systemu Drupal. Szybkie budowanie witryn internetowych za pomocą modułów CCK, Views i Panels - książka
Komponenty tworzące systemu Drupal. Szybkie budowanie witryn internetowych za pomocą modułów CCK, Views i Panels - książka
Autor: , , , Liczba stron: 392
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-246-3548-1 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> webmasterstwo >> drupal
Porównaj ceny (książka, ebook, audiobook).

Opanuj możliwości najbardziej funkcjonalnych modułów dla systemu Drupal -
twórz atrakcyjne strony internetowe, w pełni dopasowane do Twoich potrzeb!

Chcesz szybko stworzyć wydajny sklep internetowy, elegancką witrynę firmową, sprawny intranet korporacyjny bądź funkcjonalny portal społecznościowy, ale już przeraża Cię ilość związanej z tym pracy? Zapewne dlatego zainteresowałeś się Drupalem? I słusznie. Jakie inne narzędzie open source umożliwia programistom tak błyskawiczną oraz bezproblemową realizację nawet bardzo ambitnych i zaawansowanych projektów IT? Dzięki zaangażowaniu utalentowanej i aktywnej społeczności Drupala masz przecież możliwość korzystania z całego bogactwa tysięcy praktycznych modułów, które rozszerzają możliwości rdzenia tego systemu i pozwalają na niemal nieograniczone wzbogacanie projektu o kolejne przydatne funkcjonalności. Choć trudno w to uwierzyć, już kilka kliknięć wystarczy, aby tworzyć witryny internetowe o elastycznych, zróżnicowanych możliwościach.

Niezależnie od tego, czy jesteś programistą, projektantem, administratorem, architektem czy konsultantem - oto doskonały przewodnik po najbardziej wartościowych modułach i technikach włączania ich do swojego projektu. Znajdziesz tu słynną 'wielką trójkę', czyli moduły Content Construction Kit (CCK), Views i Panels, których potencjał pozwala na niesłychanie szybkie tworzenie idealnie skrojonych stron. Niemożliwe? Przekonaj się, że tak! Współautor tej niezwykłej książki, Earl Miles, od wielu lat jest aktywnym członkiem społeczności związanej z Drupalem, dzięki czemu w dużym stopniu wpłynął na kierunek, w jakim podąża ten system. Earl jest także kluczowym uczestnikiem projektu budowy modułu CCK oraz autorem modułów Views i Panels. Trudno zatem wyobrazić sobie lepszą osobę, która mogłaby wprowadzić Cię w tajniki ich skutecznego wykorzystania! Autorzy zamieścili tu wszystkie informacje, których nie znajdziesz nigdzie indziej, a także obszerny przykładowy kod 'recepturowy', stworzony w celu łatwej adaptacji i ponownego wykorzystania.

Dowiesz się zatem, jak:

Błyskawicznie twórz elastyczne, wielofunkcyjne witryny internetowe!

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Komponenty tworzące systemu Drupal. Szybkie budowanie witryn internetowych za pomocą modułów CCK, Views i Panels Autorzy: Earl Miles, Lynette Miles, Emma Jane Hogbin, Karen Stevenson Tłumaczenie: Piotr Pilch ISBN: 978-83-246-3548-1 Tytuł oryginału: Drupal s Building Blocks: Quickly Building Web Sites with CCK, Views, and Panels Format: 170×230, stron: 392 Opanuj możliwości najbardziej funkcjonalnych modułów dla systemu Drupal – twórz atrakcyjne strony internetowe, w pełni dopasowane do Twoich potrzeb! • Jak szybko zdefiniować dane witryny za pomocą modułu Content Construction Kit? • Jak tworzyć panele nadpisujące domyślne układy stron i stosować dla tych układów różne motywy? • Jak zbudować wielofunkcyjne formaty wyświetlania zapytań modułu Views? Chcesz szybko stworzyć wydajny sklep internetowy, elegancką witrynę firmową, sprawny intranet korporacyjny bądź funkcjonalny portal społecznościowy, ale już przeraża Cię ilość związanej z tym pracy? Zapewne dlatego zainteresowałeś się Drupalem? I słusznie. Jakie inne narzędzie open source umożliwia programistom tak błyskawiczną oraz bezproblemową realizację nawet bardzo ambitnych i zaawansowanych projektów IT? Dzięki zaangażowaniu utalentowanej i aktywnej społeczności Drupala masz przecież możliwość korzystania z całego bogactwa tysięcy praktycznych modułów, które rozszerzają możliwości rdzenia tego systemu i pozwalają na niemal nieograniczone wzbogacanie projektu o kolejne przydatne funkcjonalności. Choć trudno w to uwierzyć, już kilka kliknięć wystarczy, aby tworzyć witryny internetowe o elastycznych, zróżnicowanych możliwościach. Niezależnie od tego, czy jesteś programistą, projektantem, administratorem, architektem czy konsultantem – oto doskonały przewodnik po najbardziej wartościowych modułach i technikach włączania ich do swojego projektu. Znajdziesz tu słynną wielką trójkę , czyli moduły Content Construction Kit (CCK), Views i Panels, których potencjał pozwala na niesłychanie szybkie tworzenie idealnie skrojonych stron. Niemożliwe? Przekonaj się, że tak! Współautor tej niezwykłej książki, Earl Miles, od wielu lat jest aktywnym członkiem społeczności związanej z Drupalem, dzięki czemu w dużym stopniu wpłynął na kierunek, w jakim podąża ten system. Earl jest także kluczowym uczestnikiem projektu budowy modułu CCK oraz autorem modułów Views i Panels. Trudno zatem wyobrazić sobie lepszą osobę, która mogłaby wprowadzić Cię w tajniki ich skutecznego wykorzystania! Autorzy zamieścili tu wszystkie informacje, których nie znajdziesz nigdzie indziej, a także obszerny przykładowy kod „recepturowy”, stworzony w celu łatwej adaptacji i ponownego wykorzystania. Błyskawicznie twórz elastyczne, wielofunkcyjne witryny internetowe! Idź do • Spis treści • Przykładowy rozdział • Skorowidz Katalog książek • Katalog online • Zamów drukowany katalog Twój koszyk • Dodaj do koszyka Cennik i informacje • Zamów informacje o nowościach • Zamów cennik Czytelnia • Fragmenty książek online Kontakt Helion SA ul. Kościuszki 1c 44-100 Gliwice tel. 32 230 98 63 e-mail: helion@helion.pl © Helion 1991–2011 Spis treści Säowo wstöpne ..................................................................13 Przedmowa ........................................................................17 O autorach ........................................................................23 CzöĈè I Moduäy Content Construction Kit ........................25 Rozdziaä 1 Wprowadzenie do moduäów CCK i segmentów .....................27 System segmentów .......................................................................27 Dlaczego segmenty odgrywajñ istotnñ rolö? ...............................28 DomyĈlne typy zawartoĈci .........................................................29 Elementy segmentu .................................................................30 Dlaczego pola sñ dodawane do segmentów? .............................32 W poszukiwaniu Graala: jak powstaä pakiet CCK? ............................33 Rozpoczöcie pracy z moduäami CCK ................................................36 Tworzenie nowego typu zawartoĈci ..................................................37 çwiczenie 1.1. .........................................................................39 Podsumowanie .............................................................................42 Rozdziaä 2 Zagadnienia zwiñzane z polami ...........................................43 Co naleĔy wiedzieè przed utworzeniem pól i typów zawartoĈci? ..........43 Strony typów zawartoĈci .................................................................44 Sekcja Identification (identyfikacja) ...........................................44 Sekcja Submission form settings (ustawienia formularzy wysyäania) ............................................46 Ustawienia sekcji Workflow Settings (ustawienia przepäywu zadaþ) ....47 Sekcja Comment settings (ustawienia komentarzy) .....................48 Karty Fields (pola), Export (eksport) i Import (import) ..................50 Tworzenie nowych pól typu zawartoĈci .............................................50 Dodawanie pól .........................................................................51 Typy danych .............................................................................53 çwiczenie 2.1. .........................................................................55 Kontrolki .................................................................................57 6 Komponenty tworzñce systemu Drupal Skäadanie elementów w caäoĈè .......................................................57 çwiczenie 2.2. .........................................................................58 Zmiana sposobu wyĈwietlania pola ...........................................61 WspóäuĔytkowanie pól ..............................................................64 çwiczenie 2.3. .........................................................................65 Podsumowanie .............................................................................66 Rozdziaä 3 Pola — dodatkowe informacje ............................................67 Wybór typów pól ............................................................................67 Zastosowanie tekstu ................................................................68 Zastosowanie typów liczbowych ................................................68 Zastosowanie typu Node Reference ..........................................69 çwiczenie 3.1. .........................................................................70 Zastosowanie typu User Reference ...........................................71 Ograniczanie danych za pomocñ kontrolek ......................................72 çwiczenie 3.2. .........................................................................76 Moduä Date ..................................................................................77 çwiczenie 3.3. .........................................................................79 Pola obliczeniowe ..........................................................................80 çwiczenie 3.4. .........................................................................81 Pola moduäów Link i Email .............................................................84 Wizualne Ĉrodki przekazu ...............................................................85 FileField ..................................................................................85 ImageField ..............................................................................86 Moduäy ImageAPI, ImageCache i ImageCache UI ........................87 Podsumowanie .............................................................................87 Rozdziaä 4 Motywy i moduäy CCK ........................................................89 Motywy — podstawy ......................................................................89 çwiczenie 4.1. .........................................................................90 Stosowanie motywów powiñzanych z pakietem CCK .........................92 Elementy formatujñce ...............................................................92 Szablony pól ............................................................................92 çwiczenie 4.2. .........................................................................95 Szablony segmentów ................................................................96 çwiczenie 4.3. .........................................................................97 Wykluczanie pól .......................................................................99 Node Reference .....................................................................100 Moduäy pomocnicze .....................................................................101 Theme Developer ...................................................................101 çwiczenie 4.4. .......................................................................102 Contemplate .........................................................................103 Podsumowanie ...........................................................................104 Rozdziaä 5 Spis treĈci 7 Interfejs API moduäów CCK ..............................................105 Zastosowanie interfejsu API moduäów CCK ....................................105 Model pól ...................................................................................106 Tworzenie nowych typów pól, typów kontrolek i elementów formatujñcych ...................................................107 Tworzenie niestandardowych typów pól, typów kontrolek lub elementów formatujñcych ...............................................108 çwiczenie 5.1. .......................................................................109 Moduäy typów pól ...................................................................109 çwiczenie 5.2. .......................................................................110 Moduäy typów kontrolek ...............................................................115 Moduäy elementów formatujñcych .................................................117 Tworzenie instancji pól za pomocñ moduäu Content Copy ...............120 Tworzenie instancji pól za pomocñ interfejsu API funkcji CRUD ........121 Tworzenie danych dla pól moduäów CCK ........................................124 RóĔne funkcje pomocnicze ...........................................................127 Podsumowanie ...........................................................................128 CzöĈè II Moduä Views ....................................................129 Rozdziaä 6 Relacyjne bazy danych .....................................................131 System Drupal, jözyk SQL i pojawienie siö moduäu Views ...............131 Wymowa skrótu SQL ..............................................................131 „Urwisko uczenia” systemu Drupal ..........................................132 Podstawy relacyjnych baz danych ..................................................133 Wiersze i pola ........................................................................133 Klucze ...................................................................................134 Filtrowanie i sortowanie ...............................................................136 Filtrowanie ............................................................................136 Sortowanie ............................................................................136 Zäñczenia ..............................................................................137 Od jözyka SQL, poprzez moduä Views, do jözyka zrozumiaäego przez czäowieka .......................................138 Podsumowanie ...........................................................................138 Rozdziaä 7 Tworzenie widoków ..........................................................139 Interfejs uĔytkownika moduäu Views ..............................................139 Strona List (lista) ...................................................................140 Strona Add (dodaj) .................................................................143 çwiczenie 7.1. .......................................................................144 Strona Import (importuj) .........................................................157 Strona Tools (narzödzia) .........................................................158 çwiczenie 7.2. .......................................................................161 8 Komponenty tworzñce systemu Drupal Publiczne prezentowanie widoków: tworzenie formatów wyĈwietlania ................................................164 çwiczenie 7.3. .......................................................................164 çwiczenie 7.4. .......................................................................165 Bloki .....................................................................................166 çwiczenie 7.5. .......................................................................166 çwiczenie 7.6. .......................................................................168 Zaäñczniki ..............................................................................169 Kanaä ....................................................................................169 Podsumowanie ...........................................................................170 Rozdziaä 8 Argumenty, filtry ujawniane i zaleĔnoĈci ............................171 Argumenty ..................................................................................171 Argumenty w roli filtrów ..........................................................172 Konfigurowanie argumentu .....................................................173 çwiczenie 8.1. .......................................................................175 UĔycie argumentów jako czöĈci widoku ....................................177 çwiczenie 8.2. .......................................................................177 çwiczenie 8.3. .......................................................................180 Filtry ujawniane ...........................................................................181 çwiczenie 8.4. .......................................................................182 ZaleĔnoĈci ..................................................................................183 çwiczenie 8.5. .......................................................................184 çwiczenie 8.6. .......................................................................186 Podsumowanie ...........................................................................187 Rozdziaä 9 Stosowanie motywu dla widoków .....................................189 Przeglñd .....................................................................................189 Klasy moduäu Views ....................................................................190 çwiczenie 9.1. .......................................................................191 Pliki szablonów ...........................................................................192 Szablony formatów wyĈwietlania .............................................196 Style widoków ........................................................................197 Szablony wierszy ....................................................................198 Inne szablony ........................................................................200 Praca z szablonami .....................................................................202 Ponowne skanowanie plików szablonów ...................................203 çwiczenie 9.2. .......................................................................204 Debugowanie .........................................................................205 WyĈwietlanie domyĈlnych komunikatów dla pustych pól ............206 çwiczenie 9.3. .......................................................................206 Grupowanie w szablonie .........................................................208 çwiczenie 9.4. .......................................................................208 çwiczenie 9.5. .......................................................................211 Podsumowanie ...........................................................................213 Spis treĈci 9 Rozdziaä 10 Optymalizacja zapytaþ ......................................................215 ZrównowaĔenie czasu projektowania z czasem obciñĔenia procesora ..................................................215 MoĔliwoĈci oferowane przez moduä Views ......................................216 Gdy moduä Views nie wystarcza ....................................................216 OkreĈlanie wydajnoĈci zapytania .............................................216 çwiczenie 10.1. .....................................................................217 Osadzanie zapytaþ .................................................................217 Instrukcja EXPLAIN .................................................................218 Porównanie indeksowania z buforowaniem ...............................220 Eksperymentowanie z witrynñ .......................................................221 Podsumowanie ...........................................................................222 Rozdziaä 11 Interfejs API moduäu Views ...............................................223 Architektura danych .....................................................................223 Programowanie obiektowe ......................................................224 Tabele bazowe i zaleĔnoĈci .....................................................229 Obiekty wykorzystywane w widoku ...........................................230 Interfejs API moduäu Views ...........................................................239 Cykl istnienia widoku ...................................................................240 Cykl wykonywania widoku .......................................................240 Wykonywanie formatu wyĈwietlania moduäu Views ....................243 Haki zwiñzane z wykonywaniem ...............................................245 Hak zwiñzany z danymi i schematem bazy danych ..........................246 Tworzenie zaleĔnoĈci miödzy tabelami .....................................246 Deklarowanie tabel w haku hook_views_data() .........................247 Deklarowanie pól tabel ...........................................................250 Porównanie procedur obsäugi z dodatkami .....................................251 Procedury obsäugi ..................................................................251 Dodatki .................................................................................253 Podsumowanie ...........................................................................255 CzöĈè III Moduä Panels ...................................................257 Rozdziaä 12 Moduä Panels — wprowadzenie ........................................259 Wprowadzenie do moduäu Panels .................................................259 Krótka historia moduäu Panels ................................................259 Przekazywanie i pobieranie: róĔnice w dziaäaniu moduäu Panels ....260 Ukäad typu wskaĔ i kliknij ........................................................262 Kontekst ...............................................................................263 Architektura umoĔliwiajñca podäñczanie ...................................264 Moduäy .......................................................................................265 Pakiet moduäów Panels ..........................................................265 Chaos Tool Suite ...................................................................266 Podsumowanie ...........................................................................267 10 Komponenty tworzñce systemu Drupal Rozdziaä 13 Tworzenie paneli ..............................................................269 Pierwszy panel ............................................................................269 Karta Dashboard (panel kontrolny) na stronie Panels (panele) ...270 Strony paneli .........................................................................271 çwiczenie 13.1. .....................................................................276 Segmenty paneli ....................................................................279 Minipanele ............................................................................282 Dodawanie zawartoĈci do paneli ...................................................284 Dodawanie sekcji zawartoĈci ..................................................284 çwiczenie 13.2. .....................................................................287 Buforowanie ..........................................................................289 Konfigurowanie istniejñcych sekcji zawartoĈci ..........................289 Reguäy dostöpu ...........................................................................291 çwiczenie 13.3. .....................................................................291 Nadpisywanie podstawowych stron ...............................................293 Widok segmentu ....................................................................294 çwiczenie 13.4. .....................................................................296 Taksonomia ..........................................................................298 çwiczenie 13.5. .....................................................................299 Widok uĔytkownika .................................................................300 Nadpisywanie podstawowych stron edycji segmentu ......................301 Podsumowanie ...........................................................................302 Rozdziaä 14 Kontekst, zaleĔnoĈci i argumenty w module Panels ...........303 Konteksty ...................................................................................303 Konteksty na stronach paneli ..................................................304 çwiczenie 14.1. .....................................................................305 Taxonomy ..............................................................................308 çwiczenie 14.2. .....................................................................309 Argumenty w module Panels ........................................................311 çwiczenie 14.3. .....................................................................312 Okno modalne Add content (dodaj zawartoĈè) dla widoków ........313 Formaty wyĈwietlania sekcji widoku .........................................315 çwiczenie 14.4. .....................................................................316 çwiczenie 14.5. .....................................................................318 ZaleĔnoĈci ..................................................................................319 UĔycie zaleĔnoĈci ...................................................................319 Typy zawartoĈci User Reference (odwoäanie do uĔytkownika) i Node Reference (odwoäanie do segmentu) ...........................320 Podsumowanie ...........................................................................321 Spis treĈci 11 Rozdziaä 15 Moduä Panels — stosowanie motywów .............................323 Ukäad .........................................................................................323 Elastyczny ukäad ....................................................................323 Zmiana ukäadów ....................................................................327 Stylizer .......................................................................................328 Praca ze stylami ....................................................................330 çwiczenie 15.1. .....................................................................330 çwiczenie 15.2. .....................................................................331 Arkusze stylów w interfejsie uĔytkownika moduäu Panels ................332 çwiczenie 15.3. .....................................................................333 Arkusze stylów CSS w kodzie Ēródäowym .......................................334 Identyfikowanie konkretnej sekcji ............................................335 Inne zmiany stylistyczne .........................................................336 Podsumowanie ...........................................................................337 Rozdziaä 16 WdraĔanie witryny ............................................................339 Konfigurowanie Ĉrodowiska wdraĔania ..........................................339 Porównanie zawartoĈci i struktury ............................................339 Kontrola Ēródeä ......................................................................340 Przenoszenie do Ĉrodowiska produkcyjnego ..................................341 Oddzielenie wersji projektowej od produkcyjnej .........................341 Testowanie zmian ..................................................................342 Dokumentowanie wyników pracy .............................................343 Eksportowanie struktur ................................................................343 Eksportowanie moduäów CCK ..................................................343 çwiczenie 16.1. .....................................................................344 Eksportowanie widoków ..........................................................345 Eksportowanie paneli .............................................................346 Moduäy pomocnicze .....................................................................347 Deploy ..................................................................................347 Features ...............................................................................348 Drush ...................................................................................348 Podsumowanie ...........................................................................348 Dodatki ...........................................................349 Dodatek A Inne przydatne moduäy .....................................................351 Rozszerzanie zakresu zastosowania moduäów ...............................351 Moduäy ogólne ............................................................................352 Pathauto ...............................................................................352 Views .........................................................................................352 Views_or ...............................................................................352 Nodequeue ...........................................................................353 Flag ......................................................................................353 12 Komponenty tworzñce systemu Drupal Views Slideshow ....................................................................354 Views Bonus Pack .................................................................354 Views Attach .........................................................................354 Views Import .........................................................................355 ApacheSolr Views ..................................................................355 SimpleViews ..........................................................................355 Views Bulk Operations ...........................................................356 Views Datasource ..................................................................356 Sheetnode ............................................................................356 CCK ...........................................................................................357 Calendar ...............................................................................357 Panels .......................................................................................357 Advanced Profile Kit ...............................................................357 Total Control Admin Dashboard ...............................................358 Dodatek B Zgäaszanie problemów ......................................................359 Wysyäanie kompletnego raportu ....................................................359 Czytaj dokumentacjö ...................................................................361 Sprawdzaj inne Ēródäa ..................................................................361 RóĔnica miödzy bäödem i Ĕñdaniem wsparcia .................................362 Trzymaj siö tematu ......................................................................363 Cykl istnienia bäödu .....................................................................363 BñdĒ cierpliwy .............................................................................364 Pamiötaj, Ĕe prosisz kogoĈ innego o poĈwiöcenie swojego czasu ....365 ZaangaĔuj siö czynnie ..................................................................365 Dodatek C Procedury obsäugi i dodatki interfejsu API moduäu Views ..... 367 Procedury obsäugi moduäu Views ..................................................367 Procedury obsäugi pól .............................................................367 Procedury obsäugi sortowania .................................................368 Procedury obsäugi filtrów .........................................................368 Procedury obsäugi dla argumentów ..........................................368 Procedury obsäugi zaleĔnoĈci ..................................................369 Dodatki moduäu Views .................................................................369 Dodatki formatów wyĈwietlania ...............................................369 Dodatki stylów .......................................................................370 Dodatki wierszy .....................................................................370 Klasy moduäu Views ....................................................................370 Skorowidz ........................................................................381 4 Motywy i moduły CCK o utworzeniu treści pora nadać jej profesjonalny wygląd i zwiększyć jej czytelność. Pakiet CCK znakomicie się sprawdza, umożliwiając dodawanie przeróżnej P dostosowanej treści. Jednakże nie pozwala on na wyświetlanie danych w przejrzysty sposób, który zapewniłby użytkownikom możliwość wygodnego czytania. W tym rozdziale przyjrzymy się systemowi motywów, a także sposobowi jego współpracy z pakietem CCK. Zajmiemy się również modułem Contemplate, który może być pomocny. System szablonów i motywów w wersji 6. Drupala prezentuje spore osiągnięcia mające na celu ułatwienie stosowania motywów dla witryny. Na końcu omówimy dodatkowe moduły pomocnicze, które jeszcze bardziej upraszczają obsługę motywów w systemie Drupal. Motywy — podstawy Motywy są złożone z dwóch podstawowych części: funkcji i szablonu motywów. Drupal i jego moduły przekazują informacje warstwie motywów, tak by możliwe było ich wyświetlenie. Jeśli pracujesz z plikami poza obrębem plików szablonów motywu, postępujesz niewłaściwie. Pliki szablonów mają rozszerzenie .tpl.php. Plik szablonu może znajdować się w kilku miejscach instalacji. Choć podstawowe pliki są umieszczone w katalogu motywów, każdy moduł może też używać katalogu z motywami, który zawiera bardziej specyficzne informacje dla każdej części modułu. Dla przypomnienia, Garland oraz jego motyw podrzędny Minelli są używane na potrzeby instalacji i aktualizacji. Modyfikowanie ich nie jest wskazane. Przyglądając się różnym katalogom, zauważysz kilka plików o tej samej nazwie. Są to pliki domyślne, których system Drupal użyje, jeśli sam nie wprowadzisz żadnych zmian. Drupal korzysta z motywu, takiego jak Garland, aby dla treści zastosować styl. Wiele modułów, takich jak CCK, Views i inne, zapewnia dodatki w celu rozszerzenia możliwości systemu Drupal związanych z motywami. Na rysunku 4.1 pokazano kilka plików szablonów używanych przez domyślny motyw systemu Drupal, czyli Garlanda. Na rysunku 4.2 zaprezentowano katalogów motywów pakietu CCK, który zawiera pliki nadpisujące style motywu podstawowego. 90 Rozdziaä 4. Motywy i moduäy CCK Rysunek 4.1. Katalog /themes/garland Rysunek 4.2. Katalog /cck/theme Aby zmodyfikować jeden z motywów podstawowych, należy wykonać kilka kroków w celu zachowania motywu oraz zapewnienia sobie spokoju ducha. çwiczenie 4.1. Zachowywanie motywu podstawowego Wprawdzie formalnie rzecz biorąc, zachowywanie motywu podstawowego nie stanowi elementu stosowania motywów dla pakietu CCK, warto wiedzieć, że jest to najbezpieczniejsza metoda modyfikowania motywu podstawowego. Jeśli zaczniesz wprowadzać zmiany w motywie administracyjnym, pojawia się ryzyko przypadkowego ukrycia treści, spowodowania, że będzie ona zbyt mała lub zbyt duża, aby ją odczytać, lub wykonania dowolnej liczby nieciekawych rzeczy, które są trudne do monitorowania w arkuszu stylów. 1. Przejdź do katalogu /sites/all/themes. Katalog /sites/all/themes powinien już istnieć. W przeciwnym razie utwórz go. 2. Utwórz nowy katalog dla nowych plików motywów. Te pliki nadpiszą informacje w motywie podstawowym. Ponieważ w moim przypadku motyw podstawowy to Garland, w celu uproszczenia procedury utworzyłem katalog o nazwie garland_extend. A zatem kompletna ścieżka ma postać: /sites/all/themes/garland_extend. Motywy — podstawy 91 3. Utwórz plik .info dla rozszerzenia motywu. Ten krok jest istotny! Bez niego motyw nie uzyska informacji pozwalających mu znaleźć motyw podstawowy. Nazwa pliku .info musi być zgodna z nazwą katalogu motywu. Na potrzeby tego ćwiczenia użyj nazwy garland_extend.info. 4. Dodaj do pliku .info informacje, które umożliwią motywowi znalezienie jego motywu podstawowego, a ponadto pozwolą witrynie skorzystać z tego motywu. Oto przykład: name = garland_extend description = Motyw pozbawiony tabeli, umoĝliwiajÈcy zmianÚ kolorów, wielokolumnowy ze staïÈ szerokoĂciÈ. version = VERSION core = 6.x base theme = garland stylesheets[all][] = garland_extend.css 5. Utwórz plik CSS, który zostanie użyty przez motyw na potrzeby modyfikacji. W poprzednim kroku widać, że mój plik będzie miał nazwę garland_extend.css. Jeśli chcesz teraz utworzyć plik, nie ma przeciwwskazań. Będzie to pusty plik do momentu zdecydowania o wprowadzeniu zmian. Arkusze stylów w motywach Dobrñ praktykñ jest dodawanie nazwy arkusza stylów do pliku .info, nawet jeĈli sam plik CSS jest pusty. JeĔeli nie podasz nazwy arkusza stylów, domyĈlnie motyw uĔyje pliku style.css. Pojawiajñcy siö w tym przypadku potencjalny problem polega na tym, Ĕe wiele motywów korzysta z pliku style.css jako standardowego arkusza stylów. Utworzony przez uĔytkownika nowy pusty arkusz stylów nadpisze ten standardowy. Takie rozwiñzanie jest Ĉwietne, jeĈli zamierzasz caäkowicie usunñè stary arkusz. JednakĔe spowoduje problem, gdy nowy arkusz nie bödzie zawieraä Ĕadnego kodu CSS. Nowy folder motywu zawiera tylko dwa pliki: garland_extend.css i garland_extend.info. 6. Możesz teraz włączyć „nowy” motyw w witrynie. Zmiany dokonane w tym motywie będą obowiązywały. Ponadto będziesz miał możliwość użycia oryginalnego motywu Garland, gdy nastąpi konieczność zaktualizowania go! 7. Przejdź do pozycji Administer/Site building/Themes (administruj/budowanie witryny/motywy). Zaznacz pole wyboru widoczne obok nowego motywu (garland_extend) i wybierz przycisk opcji znajdujący się obok tego motywu, aby stał się on domyślny. Spowoduje to włączenie motywu. 92 Rozdziaä 4. Motywy i moduäy CCK Stosowanie motywów powiñzanych z pakietem CCK Dane generowane przez moduły CCK można podzielić na trzy poziomy tworzenia motywu: elementy formatujące, szablony pól i szablony segmentów. Każdy z tych poziomów można ponownie podzielić na części, które mają wpływ na określone cechy wyświetlanej strony lub stron. Pamiętaj o tym, że mechanizm motywów renderuje informacje dotyczące formatowania w kolejności od najbardziej do najmniej szczegółowego szablonu. Szczegółowy motyw nadpisuje bardziej ogólne szablony. Motyw dla jednego konkretnego pola (np. nazwa użytkownika) ma pierwszeństwo względem informacji zawartych w ogólnym motywie stosowanym dla wszystkich pól. Pliki nadpisujące pliki domyślnego motywu są nazywane sugestiami. Sugestie to bardziej szczegółowe pliki przeznaczone dla motywów. Elementy formatujñce W rozdziale 2. przyjrzeliśmy się elementom formatującym pola w określonych typach zawartości. Dokonując szybkiego przeglądu kluczowych kwestii, należy wspomnieć, że elementy formatujące umieszczone w interfejsie użytkownika wykonują proste operacje rozmieszczania pól. W celu uzyskania dostępu do tych elementów skorzystaj z następującej ścieżki nawigacyjnej: Home/Administer/Content management/(wybierz typ zawartości)/ Display fields (strona główna/administruj/zarządzanie treścią/(wybierz typ zawartości)/ wyświetl pola). Elementy formatujące używają domyślnej warstwy motywów systemu Drupal, która umożliwia zastosowanie dla pól pakietu CCK wszystkich nakładek, szablonów i innych funkcji motywów systemu Drupal. Wiele z dostarczanych elementów formatujących korzysta z funkcji motywów. Ogólnie element formatujący służy do umieszczenia danych wybranego pola w odpowiednim kodzie HTML w celu wygenerowania danych wyjściowych. Szablony pól Jednym z aspektów stosowania motywów dla pakietu CCK (i modułu Views!) oferujących największe możliwości jest opcja tworzenia i używania motywu dla każdego pojedynczego pola w przypadku każdej wyświetlanej strony. Prawdopodobnie stwarza to znacznie większe możliwości kontroli, niż kiedykolwiek będą wymagane. Choć szablony pól nie są ściśle powiązane z pakietem CCK (lub modułem Views), poznanie ich umożliwia znacznie szybsze określenie miejsca, w którym konieczne będzie podzielenie motywu. Szablony pól i elementy formatujące w pewnym stopniu wykonują podobne funkcje, ponieważ obsługują ten sam typ danych. Jednakże szablony pól koncentrują się w o wiele większym stopniu na kwestii „Jak to pole wygląda?” niż na kwestii „Gdzie znajduje się etykieta i czy w ogóle powinna zostać wyświetlona?”. Element formatujący pozwala umieścić etykietę Cena na stronie. Szablon i kod CSS umożliwiają sformatowanie rzeczywistej ceny 19,99 zł pogrubioną czcionką i kolorem zielonym. Stosowanie motywów powiñzanych z pakietem CCK 93 Wspomnieliśmy już, że pliki szablonów mają rozszerzenie .tpl.php, a ponadto zaprezentowaliśmy kilka przykładów nazw szablonów. Typy pól pakietu CCK pozwalają na użycie wyjątkowo szczegółowych nazw na potrzeby stosowania motywu dla poszczególnych pól. Struktura nazw jest zgodna z konwencją, która ułatwia zidentyfikowanie przeznaczenia pola. OstrzeĔenie Nigdy nie powinieneĈ modyfikowaè plików domyĈlnego motywu znajdujñcych siö w katalogu dowolnego moduäu (np. /sites/all/modules/cck/theme). Wywoäa to rozproszenie danych motywu w obröbie instalacji i moĔe spowodowaè spore zamieszanie, gdy póĒniej konieczne bödzie wprowadzenie zmian. Zawsze kopiuj plik domyĈlny do katalogu przetwarzanego motywu (/sites/all/modules/nazwa_moduäu) i tam modyfikuj ten plik. Pliki szablonów i nazwy plików Plik ogólnego szablonu dla pola nosi nazwę content-field.tpl.php. Jeśli nie dysponujesz bardziej szczegółowymi szablonami motywów, ten plik będzie używany dla układu zawartości pól. Moduł Devel może być pomocny w uzyskaniu bardziej szczegółowych plików motywów. Domyślny plik content-field.tpl.php można znaleźć w katalogu /cck/theme. Następnym krokiem na drodze do zwiększenia unikalności motywu jest zmiana pola dla wszystkich typów zawartości. Zauważ, że jeśli pole nie jest współużytkowane w wielu typach zawartości, ta operacja w rzeczywistości nie będzie miała dużego wpływu. Z kolei gdy pola są współużytkowane w kilku typach zawartości, jest to dobry sposób na zmianę układu pola w obrębie całej witryny. Niestety zastosowanie tej metody często wywołuje zdziwienie z powodu tego, dlaczego pole typu zawartości A zostało zmienione po utworzeniu pliku szablonu dla pola typu zawartości B. Konwencja nazewnicza plików z rozszerzeniem .tpl przedstawia się następująco: content-field- NAZWA_POLA - NAZWA_TYPU_ZAWARTOŚCI .tpl.php. W przypadku typu zawartości Joe’s Shirts (koszulki Janka) plik szablonu dla pola T-shirt size (rozmiar koszulki) ma nazwę content-field-field_shirt_size.tpl.php. Kolejna operacja zwiększania szczegółowości pozwala określić widok dla wszystkich pól dla konkretnego typu segmentu. Ten krok zapobiega przypadkowemu nadpisaniu współużytkowanych typów pól przez osoby stosujące motywy, lecz powoduje też, że widok nie jest udostępniany. Jeśli współużytkowane pole dla jednego typu zawartości jest pokazywane w określony sposób, w przypadku drugiego typu zawartości może być prezentowane w inny. W przykładzie plik o formacie nazwy content-field- NAZWA_TYPU_ZAWARTOŚCI .tpl.php przyjmuje nazwę content-field-t_shirts.tpl.php dla typu zawartości Joe’s Shirts (koszulki Janka). Na najniższym poziomie możesz utworzyć dane motywu dla konkretnego pola jednego typu zawartości. W przypadku tego typu pliku format nazwy ma postać content-field- NAZWA_POLA .tpl.php. 94 Rozdziaä 4. Motywy i moduäy CCK Podsumowując, pakiet CCK zawsze dodaje słowo field na początku każdej nazwy pola, mimo że w nazwie plików szablonów już występuje słowo field. W przypadku stosowania motywów dla pakietu CCK podczas wyszukiwania tych plików obowiązuje następująca kolejność pierwszeństwa: content-field- NAZWA_POLA - NAZWA_TYPU_ZAWARTOŚCI .tpl.php content-field- NAZWA_TYPU_ZAWARTOŚCI .tpl.php content-field- NAZWA_POLA .tpl.php content-field.tpl.php Jeśli żaden z tych plików nie jest obecny w folderze motywu użytkownika (lub w folderze podstawowego motywu), pakiet CCK użyje szablonu swojego domyślnego motywu. Zmienne dostöpne w szablonie pól Zmienne dostępne w szablonie pól nie powinny być zaskoczeniem dla nikogo, kto zaznajomił się ze strukturą segmentu systemu Drupal lub wykonał jakąkolwiek czynność związaną ze stosowaniem motywu. Poniższa lista pochodzi bezpośrednio z pliku content-field.tpl.php. Poszerzono ją o kilka opisów. „ $node — obiekt całego segmentu. „ $field — tablica pól, która zawiera wszystkie pola dostępne w segmencie. „ $items — tablica zawierająca wartości wszystkich elementów tablicy pól. Każda wartość w tej tablicy jest w pełni sformatowana i przefiltrowana. „ $teaser — określa, czy dane pole zawartości jest wyświetlane w skrócie artykułu. „ $page — określa, czy dane pole zawartości jest wyświetlane na stronie całego artykułu. Pole może znajdować się w skrócie artykułu lub na stronie całego artykułu, a także w obu miejscach lub w żadnym z nich. „ $field_name — nazwa określonego pojedynczego pola. „ $field_type — typ danych, które zawiera pole. „ $field_name_css — nazwa, której kod CSS użyje podczas odwoływania się do danego pola. Wartości zmiennych $field_name_css i $field_type_css są takie same jak wartości zmiennych $field_name i $field_type z tym wyjątkiem, że w przypadku wartości zmiennej $field_name_css pola znaki podkreślenia (_) są zastępowane kreskami (-), gdy strona jest generowana w celu wyświetlenia. Oznacza to, że dla pola field_shirt_size w pakiecie CCK klasa CSS będzie miała nazwę field-shirt-size. „ $field_type_css — typ danych, którego kod CSS użyje podczas odwoływania się do pola. W odniesieniu do znaków podkreślenia i kresek ta zmienna zachowuje się tak samo jak zmienna $field_name_css. „ $label — etykieta nadana elementowi, taka jak T-shirt size (rozmiar koszulki). Stosowanie motywów powiñzanych z pakietem CCK 95 „ $label_display — miejsce wyświetlania etykiety określone przez element formatujący. Etykieta może być pokazana w wierszu, ponad nim lub zostać ukryta. „ $field_empty — wartość TRUE lub FALSE. Dla zmiennej jest ustawiana wartość TRUE, jeśli pole nie zawiera danych do wyświetlenia. çwiczenie 4.2. Zmiana czöĈci motywu: kolor pola Sklep Joe’s Clothes (ubrania Janka) zamierza sprawić, by dostępne rozmiary dla każdego typu koszulki stały się doskonale widoczne dla klientów. Firma chciałaby też, aby rozmiary były podawane w kolorze czerwonym. 1. Określ poprawny plik szablonu, który zostanie użyty. Na razie przyjmijmy, że jeśli Janek rozbuduje sklep, może oczekiwać zapewnienia identycznego wyglądu wszystkim polom rozmiaru. W tym przypadku najlepszym kandydatem do spełnienia tych wymagań jest plik content-field- NAZWA_POLA .tpl.php. 2. Skopiuj plik content-field.tpl.php do katalogu /sites/all/modules/theme/garland_extend i zmień jego nazwę na content-field-field_shirt_size.tpl.php. 3. Musisz teraz zmodyfikować plik CSS, aby określić nowy kolor dla rozmiaru. Używany plik arkusza stylów nosi nazwę garland_extend.css. Zostanie on wywołany przez motyw. Otwórz plik CSS i wprowadź następujące informacje dotyczące stylu: div.field-field-shirt-size div.field-items { color: #FF0033; } 4. Zapisz plik. Po ponownym załadowaniu strony dowolnej koszulki, która udostępniała informacje o rozmiarach, będą one wyróżnione na czerwono. Możesz wymusić operację pełnego odświeżania, ponieważ wiele przeglądarek będzie buforować arkusze stylów. Być może zastanawiasz się, skąd uzyskać nazwę elementu div w celu dokonania zmiany koloru. Plik szablonu dla pola zawiera wszystkie wymagane informacje. Oto fragment pliku content-field-field_shirt_size.tpl.php: div class= field field-type- ?php print $field_type_css ? field- ?php print $field_name_css ? ?php if ($label_display == above ) : ? div class= field-label ?php print t($label) ? : nbsp; /div ?php endif;? div class= field-items 96 Rozdziaä 4. Motywy i moduäy CCK Ostatni wiersz jest najbardziej interesujący. Zawiera on łańcuch field-items oznaczający wartości wewnątrz samego pola. Ponieważ konieczne jest wyizolowanie zmiany koloru tekstu tak, aby używała tylko tych wartości, wymagana jest dokładność. Selektor div.field-field-shirt-size izoluje styl tylko dla pola rozmiaru koszulki, a selektor div.field-items dodatkowo poszerza to ograniczenie w celu dokonania zmiany wyłącznie wartości zamiast zarówno wartości, jak i etykiety. Jeśli zamierzasz zmienić etykietę, możesz użyć następującego selektora CSS, aby w polu shirt-size określić tylko etykietę: div.field-field-shirt-size div.field-label Szablony segmentów Szablony segmentów pełnią rolę dużych opakowań dla wszystkich elementów treści. Szablony są integralną częścią systemu motywów rdzenia. Szablon segmentów zawiera dane i informacje o rozmieszczeniu, a ponadto jest jednym z łatwiejszych do utworzenia elementów motywu w sytuacji, gdy nie wymagasz zastosowania wielu kolorów dla tekstu lub masz specjalne oczekiwania względem obrazów i innych danych. Większość motywów będzie uwzględniać domyślny szablon segmentów o nazwie node.tpl.php. System motywów rdzenia systemu Drupal umożliwia zmianę tego stanu rzeczy w celu zawężenia zasięgu motywu. Domyślny szablon node.tpl.php ma wpływ na wygląd wszystkich segmentów. Jeśli oczekujesz czegoś trochę innego dla wybranego typu zawartości, możesz po prostu utworzyć nowy szablon przez skopiowanie pliku domyślnego i zmienić nazwę pliku do postaci node- TYP_ZAWARTOŚCI .tpl.php. Aby zmodyfikować motyw dla wszystkich segmentów artykułów, należałoby użyć pliku szablonu segmentów o nazwie node-story.tpl.php. Po utworzeniu tego szablonu możesz zmienić wygląd wszystkich artykułów bez wpływu na resztę systemu! Pakiet CCK zapewnia kilka zmiennych dla szablonu segmentów, które obsługują większość scenariuszy stosowania motywu dla segmentu. $ NAZWA_POLA _rendered Ta zmienna zapewnia w pełni renderowane dane wyjściowe wybranego pola uzupełnione o kod HTML. Są to ostateczne dane wyjściowe szablonu pola. Renderowane dane wyjściowe uwzględniają wszystkie wartości pola, a także każde ustawienie, które zostało utworzone przez elementy formatujące. $ NAZWA_GRUPY _rendered Podobnie do zmiennej $ NAZWA_POLA _rendered ta zmienna generuje w pełni renderowane dane wyjściowe. W tym przypadku dotyczy to całej grupy pól (jeśli jest używana). W przykładowym typie zawartości Batch brewed (partia warzonego piwa) użyto grupy pól Alcohol level (poziom alkoholu). Ta zmienna może być użyta w szablonie segmentów w celu dokonania jednoczesnej zmiany wszystkich pól w grupie z wykorzystaniem zmiennej $alcohol_level_rendered. W zasadzie zmienna $ NAZWA_GRUPY _rendered jest podzbiorem zmiennej $ NAZWA_POLA _rendered. Stosowanie motywów powiñzanych z pakietem CCK 97 $NAZWA_POLA Ta zmienna zawiera dwie grupy danych. Jedna z grup uwzględnia tylko nieprzetworzone dane bez żadnych informacji elementu formatującego zapewnianych wcześniej opisanym zmiennym. Dane te są udostępniane w tym samym formacie tablicy, który jest używany wewnętrznie przez pakiet CCK. Każdorazowo gdy ta tablica jest stosowana, zawartość może być inna w zależności od typu pola, dla którego jest używany motyw. Zmienna $NAZWA_POLA zawiera drugi zestaw danych przechowywanych w elemencie view. Ten element w rzeczywistości nie jest powiązany z modułem Views, dlatego nie należy mylnie sugerować się nazwą. Element zawiera te same informacje, które zostałyby znalezione w zmiennej $ NAZWA_POLA _rendered. Dzięki temu dysponujesz czystymi danymi dostępnymi do wyświetlenia, a także nieprzetworzonymi danymi nadającymi się do modyfikowania. Uwaga Nieprzetworzone dane zapewniane przez zmiennñ $NAZWA_POLA nie sñ okrajane na potrzeby wyĈwietlania! Takie dane mogñ byè przydatne dla twórcy motywów lub programisty, lecz nie powinny byè uĔywane bezpoĈrednio jako wyĈwietlane dane wyjĈciowe. Na potrzeby prezentowania danych uĔyj wartoĈci zawartych w elemencie view lub skorzystaj z funkcji content_format(), aby zapewniè, Ĕe dane przekazywane do wyĈwietlenia bödñ czyste. çwiczenie 4.3. Zastosowanie motywu dla grupy pól Czasem istnieje grupa pól, którą chcesz uwidocznić w typie zawartości lub wręcz przeciwnie. Pakiet CCK oferuje nazwy grup jako część danych wyjściowych wyświetlanych ostatecznie w przeglądarce. W przykładzie w typie zawartości Batch brewed (partia warzonego piwa) użyto grupy pól Alcohol level (poziom alkoholu). 1. Określ nazwę grupy, która została przekazana jako nazwa klasy. Dowolny segment obejmujący tę zawartość udostępni nazwę grupy w miejscu, w którym z łatwością możesz ją znaleźć. 2. Wyświetl kod źródłowy strony (rysunek 4.3). 3. W kodzie źródłowym poszukaj łańcucha fieldgroup. Możesz znaleźć wiersz podobny do następującego: fieldset class= fieldgroup group-alcohol-level Ta klasa umożliwia zastosowanie motywu dla wszystkich grup pól lub tylko dla grupy group-alcohol-level. 4. Otwórz plik garland_extend.css i dodaj następujący kod: fieldset.group-alcohol-level { font-size: x-small; } 98 Rozdziaä 4. Motywy i moduäy CCK Rysunek 4.3. Stan przed dokonaniem zmiany w kodzie CSS 5. Zapisz plik CSS i odśwież stronę w przeglądarce (rysunek 4.4). Rysunek 4.4. Stan po zmodyfikowaniu grupy pól Użycie grupy pól jako klasy umożliwia zmianę tylko jednego zestawu pól zamiast wpływania na cały segment. Pozwala to również na jednoczesną zmianę wszystkich tych pól zamiast stosowania motywu osobno dla każdego pola. Stosowanie motywów powiñzanych z pakietem CCK 99 Dodawanie plików do motywów System Drupal buforuje listö plików dostöpnych dla danego motywu. JeĈli utworzysz nowy plik szablonu, bödziesz musiaä ponownie zbudowaè rejestr motywów, aby mechanizm motywów znalazä nowe pliki. W celu ponownego zbudowania rejestru motywów wykonaj jednñ z nastöpujñcych czynnoĈci: i PrzejdĒ do pozycji Administer/Site configuration/Performance (administruj/ konfiguracja witryny/wydajnoĈè). Przewiþ do doäu strony i kliknij przycisk o nazwie Clear cached data (wyczyĈè buforowane dane). i UĔyj odnoĈnika Clear cache (wyczyĈè bufor) moduäu Devel. Wykluczanie pól Gdy dowolny element treści jest w całości wyświetlany w witrynie opartej na systemie Drupal, dostarczany jest przede wszystkim przez zmienną $content. Ta zmienna zawiera cały renderowany kod HTML, który jest prezentowany w głównej części strony. W większości przypadków nie stanowi to problemu. Ponieważ motyw będzie często stosowany dla witryny w spójny sposób, wskazane jest wyświetlanie wszystkich dodatków i kontrolek w ramach jednej zmiennej. W zmiennej mogą być uwzględnione takie elementy jak na przykład dołączone obrazy i kontrolki do głosowania. Sporadycznie takie rozwiązanie nie jest pożądane. Na przykład możesz oczekiwać, że niektóre elementy treści zostaną wyświetlone niezależnie do reszty. Aby zapobiec dołączeniu pól do zmiennej $content, zaznacz pole Exclude (wyklucz) na karcie Display fields (wyświetl pola) typu zawartości. Przejdź do pozycji Administer/Content management/ Content types/(wybierz typ zawartości)/Display fields (administruj/zarządzanie treścią/ typy zawartości/(wybierz typ zawartości)/wyświetl pola). Na tej karcie możesz wykluczyć elementy ze skrótu artykułu lub całego segmentu. Zauważ, że istnieje różnica między opcjami Hidden (ukryte) i Exclude (wyklucz). Opcja Hidden (ukryte) uwzględnia dane, lecz nie wyświetla ich na stronie. Dla porównania opcja Exclude (wyklucz) całkowicie zapobiega dodawaniu danych do zmiennej. Ponownie przyjrzyj się rysunkowi 2.11, aby zlokalizować przycisk Exclude (wyklucz). Jeśli na karcie Display fields (wyświetl pola) wybierzesz pole, menu rozwijane opcji Teaser (skrót artykułu) i Full node (cały segment) umożliwią wybranie opcji Hidden (ukryte) w celu ukrycia pola. Na tym etapie możesz dostosować plik szablonu, używając zmiennych $ NAZWA_GRUPY _rendered lub $ NAZWA_POLA _rendered w instrukcji print języka PHP w celu umieszczenia ich w dowolnym żądanym miejscu strony. Bądź świadomy tego, że zastosowanie pól wyboru ustawienia Exclude (wyklucz) spowoduje wykluczenie danych wybranego pola ze wszystkich motywów. Jednakże każdy motyw może zawierać inne informacje w zmiennej $content, dlatego rzeczywiście wyświetlane pola mogą być różne dla poszczególnych motywów. 100 Rozdziaä 4. Motywy i moduäy CCK Node Reference Z typem Node Reference (odwołanie do segmentu) związanych jest kilka specjalnych zmiennych i innych elementów, które mogą spowodować jeszcze więcej zmian w motywie. Pola typu Node Reference używają wszystkich wcześniej omówionych funkcji motywów, ale też uwzględniają kilka specjalnych szablonów, które mogą być zastosowane, gdy pola tego typu służą do wyświetlenia segmentów w przypadku korzystania z elementów formatujących skrót artykułu lub cały segment. Te szablony sprawdzają typ przywoływanego segmentu i stosują dla niego odpowiedni motyw. Sugestie zawarte w następującym pliku mają pierwszeństwo względem innych: node-nodereference- NAZWA_POLA_ODWOŁUJĄCEGO - NAZWA_TYPU_ZAWARTOŚCI .tpl.php Jest to najbardziej szczegółowy szablon sugestii. Szablon szuka pola odwołującego się, a także typu przywoływanego segmentu. W poprzednich ćwiczeniach stworzyliśmy pole typu Node Reference dla typu zawartości Batch brewed (partia warzonego piwa). Celem tego pola było odwołanie się do receptury użytej do przygotowania konkretnej partii piwa. W zasadzie nie było wymagane, aby użytkownik określił w tym polu receptury, może ono odwołać się do dowolnego innego pola. Jeśli pole ma zostać użyte w celu odwołania do receptury, powinieneś skorzystać z pliku szablonu o następującej nazwie: node-nodereference-field_recipe_used-beer_recipe.tpl.php Jeżeli to pole odwołujące się zostało zastosowane do odwołania do artykułu, w nazwie pliku szablonu zamiast łańcucha -beer_recipe.tpl.php wystąpi łańcuch -story.tpl.php. node-nodereference- NAZWA_TYPU_ZAWARTOŚCI .tpl.php Wykorzystanie tego szablonu spowodowałoby zastosowanie motywu dla wszystkich pól typu Node Reference, w przypadku których przywoływane pole jest w określonym typie zawartości. Jeśli szablonowi nadano na przykład nazwę node-nodereference-t_shirts.tpl.php, może być użyty do zastosowania motywu dla dowolnego segmentu t_shirts, gdy odwołuje się do niego pole typu Node Reference. node-nodereference- NAZWA_POLA_ODWOŁUJĄCEGO .tpl.php Gdziekolwiek zostanie użyte pole odwołujące się, spowoduje, że szablon ten zostanie wykorzystany do zastosowania motywu dla przywoływanego segmentu. node-nodereference.tpl.php Ten szablon stosuje motyw dla dowolnego segmentu, który jest przywoływany przez pole typu Node Reference. Używając przedstawionych szablonów, możesz utworzyć układ kolekcji jesiennej dla typu zawartości Joe’s Shirts (koszulki Janka) i zastosować pole typu Node Reference w celu odwołania się do każdego segmentu koszulki. Użytkownicy przeszukujący cały katalog mogą następnie z łatwością stwierdzić, które produkty są nowe w kolekcji jesiennej, Moduäy pomocnicze 101 jeśli dla segmentów przywoływanych zostanie zastosowany motyw różniący się trochę od standardowego. Pakiet CCK oferuje jeszcze dwie zmienne w celu użycia ich w plikach szablonów w przypadku korzystania z odwołań do segmentów. $referring_field Ta zmienna wybiera pole, które odwołuje się do bieżącego segmentu. Potencjalnie zmienna może posłużyć do śledzenia motywu aż do jego źródła. $referring_node Ta zmienna przechowuje segment, który zawiera pola odwołujące się bieżącego segmentu. Moduäy pomocnicze Podczas pracy z motywami systemu Drupal nie ma potrzeby określania wszystkiego we własnym zakresie. Dostępne są różne moduły pomocnicze, które znacznie ułatwiają stosowanie motywów systemu Drupal. W tym podrozdziale opisaliśmy kilka naszych ulubionych modułów. Theme Developer Theme Developer (http://drupal.org/project/devel_themer) nie jest modułem służącym wyłącznie do tworzenia motywów. Jednakże jest jednym z najbardziej wartościowych narzędzi udostępnionych w celu ułatwienia stwierdzenia, które szablony wpływają na dowolny wybrany element treści. Aby zainstalować ten moduł, konieczny będzie również moduł Devel (http://drupal.org/project/devel), który także zapewnia wiele przydatnych funkcji. Po zainstalowaniu i włączeniu moduł Theme Developer udostępnia pole wyboru w dolnym lewym narożniku okna przeglądarki o nazwie Themer info (informacje modułu Themer). Po włączeniu opcja powoduje wyłączenie możliwości śledzenia jakichkolwiek odnośników na konkretnej stronie. Jeśli klikniesz w danej sekcji strony, pojawi się okno wyszczególniające dokładnie, jakie pliki .tpl wpływają na ten element treści strony. Udostępniana jest pełna ścieżka ważności szablonów uporządkowanych w kolejności od najbardziej do najmniej szczegółowych. Lista obejmuje wszystkie kandydujące pliki szablonu, które mogą mieć wpływ na treść, nawet jeśli te pliki nie istnieją w systemie. Skorzystaj z tych informacji, gdy będziesz musiał zdecydować, czy powinieneś zmienić ogólny motyw, bądź w sytuacji, kiedy chcesz nadpisać motyw na tak szczegółowym poziomie jak konkretne pole jednego typu zawartości. Dysponując taką wiedzą, znacznie łatwiej będziesz mógł określić, jaki plik szablonu powinien zostać zmieniony. Dzięki temu, że lista plików szablonu umożliwia klikanie, o wiele łatwiejsze staje się otwarcie pliku szablonu. Zamiast przeszukiwać cały system w celu znalezienia pliku możesz go szybko zlokalizować na przejrzystej liście. Ta kwestia jest szczególnie istotna, gdy pliki szablonu mają identyczną nazwę. Na przykład istnieje domyślny plik content-field.tpl.php, 102 Rozdziaä 4. Motywy i moduäy CCK lecz pakiet CCK uwzględnia również szablon o tej samej nazwie, który będzie domyślnie używany. Pole wyboru Themer info (informacje modułu Themer) jednoznacznie identyfikuje plik, który jest używany w celu zastosowania motywu dla każdego elementu treści. çwiczenie 4.4. WyĈwietlanie informacji o motywie za pomocñ moduäu Themer W tym ćwiczeniu pokażemy, jak pomocne może się okazać nawet niewielkie wsparcie ze strony modułu Themer, którego zastosowanie ułatwia stwierdzenie, jakie mogą być pliki szablonu. 1. Zainstaluj moduły Themer i Devel. 2. Przejdź do pozycji Administer/Site building/Modules (administruj/budowanie witryny/moduły) i włącz moduły Devel i Theme Developer. 3. Otwórz stronę główną witryny. 4. Kliknij pole wyboru Themer info (informacje modułu Themer) w dolnym lewym narożniku okna. 5. Kliknij dowolny komponent na stronie. Jeśli we wcześniejszym ćwiczeniu utworzyłeś pole T-shirt size (rozmiar koszulki), kliknij sekcję T-shirt size (rozmiar koszulki). Powinno się pojawić okno podobne do pokazanego na rysunku 4.5. Rysunek 4.5. Nakäadka informacyjna moduäu Theme Developer Moduäy pomocnicze 103 Pole wyboru Themer info (informacje modułu Themer) powoduje też wyszczególnienie elementów nadrzędnych elementu, dla którego zastosowano motyw. Sekcja elementów nadrzędnych również umożliwia klikanie. Uaktywnienie sekcji powoduje wyróżnienie grupy zawartości, na którą sekcja ma wpływ. Tego rodzaju informacja zwrotna ma kluczowe znaczenie, gdy próbujesz zidentyfikować problemy dotyczące nadpisywania występującego między komponentami, dla których zastosowano motyw. Oto ostrzeżenie: moduł Themer powinien być włączony tylko w witrynach testowych lub wtedy, gdy jest on wyraźnie niezbędny do zadziałania motywu. Jeśli włączono ten moduł, podczas wykonywania określonych zadań w widokach może być zauważalne nieoczekiwane zachowanie. Może to powodować niejasności, gdy wykonujesz czynności niemające związku ze stosowaniem motywu! Podobnie do wielu znakomitych narzędzi rozwiązujących problemy ten moduł powinien być włączony, gdy aktywnie z niego korzystasz, natomiast wyłączony, jeśli go nie używasz. W celu utworzenia bardziej szczegółowego pliku możesz użyć plików wyszczególnionych przez moduł Devel. Okazuje się, że gdy poznasz konwencję nazewniczą, z łatwością będziesz mógł określić poprawny plik, aby zmienić konkretne pole. Jeżeli przeglądasz listę priorytetów modułu Devel, ujrzysz dwa pliki content-field.tpl.php. W systemie istnieją dwa takie pliki: jeden to ogólny plik systemu Drupal, a drugi to domyślny plik pakietu CCK. Ponieważ pola tego pakietu używają jego szablonu, w porównaniu z podstawową instalacją systemu Drupal uzyskujesz już o jeden poziom większą szczegółowość. Contemplate Contemplate, znany również jako Content Templates (http://drupal.org/project/contemplate), to moduł, który stanowi centrum bardziej filozoficznej debaty trwającej w społeczności związanej z systemem Drupal. Wraz z jego rozwojem poczyniono większe starania na drodze do oddzielenia treści od warstwy prezentacji. Wiele osób jest przekonanych, że ta dychotomia to dobry pomysł, ponieważ pozwala programistom i twórcom motywów na pracę absolutnie bez konieczności orientowania się, czym się zajmują inni. Motyw jest niezależną treścią, która nie musi być modyfikowana, gdy w informacjach dotyczących całej witryny są wprowadzane mniej istotne aktualizacje. Taka elastyczność zmniejsza koszty ogólne i związane z konserwacją, co jest wskazane. Moduł Contemplate reprezentuje coś pośredniego między motywem i treścią. Ten moduł zapewnia widoczność zawartości motywu przez umożliwienie tworzenia danych szablonu za pośrednictwem stron pakietu CCK, co jest zaletą. Oznacza to jednak również, że nie korzystasz z „poprawnej” metody stosowania zwyk
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Komponenty tworzące systemu Drupal. Szybkie budowanie witryn internetowych za pomocą modułów CCK, Views i Panels
Autor:
, , ,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: