Drupal 7. Od podstaw 9788324658084, 9788324629213, 8324629211, 8324658084

Drupal to jedna z najpopularniejszych platform do tworzenia serwisów WWW. Dzięki niemu przygotujesz witrynę o dowolnej t

335 115 9MB

Polish Pages 272 [274] Year 2011

Report DMCA / Copyright

DOWNLOAD PDF FILE

Recommend Papers

Drupal 7. Od podstaw
 9788324658084, 9788324629213, 8324629211, 8324658084

  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

Tytuł oryginału: Beginning Drupal 7 Tłumaczenie: Julia Szajkowska ISBN: 978-83-246-5808-4 Original edition copyright © 2010 by Todd Tomlinson All rights reserved Polish edition copyright © 2011 by Helion S.A. All rights reserved All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Wydawnictwo HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: [email protected] WWW: http://helion.pl (księgarnia internetowa, katalog książek) Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie?dru7op_ebook Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.

Printed in Poland. • Poleć książkę na Facebook.com

• Księgarnia internetowa

• Kup w wersji papierowej

• Lubię to! » Nasza społeczność

• Oceń książkę

Jestem winien podziękowania wielu osobom, bez wsparcia których ta książka nigdy nie ukazałaby się drukiem. Dwie z nich miały ogromny wpływ na moje życie i chęć tworzenia. Im właśnie chciałbym zadedykować tę książkę. Grant Wiley (1925 – 1996), prezes Sportland Distributing, umożliwił mi w roku 1976 wejście w raczkujący świat komputerów. Gdyby nie jego wsparcie i wiara we mnie, pewnie nadal przerzucałbym paczki w jakimś magazynie. Grant uwierzył w moje możliwości i dał mi szansę w postaci podręcznika do komputera IBM, zlecając, bym zajął się nowouruchomionym systemem IBM System/32. Dzięki niemu poznałem oblicze biznesu, jakiego nie zobaczy się nigdy w żadnej szkole. To jego nauki towarzyszyły mi przez całe życie zawodowe i to je wcielałem w czyn, doradzając dziesiątkom największych firm na całym świecie. Poza tym pragnę podziękować mojej dziewięćdziesięcioośmioletniej babci, Gladys Tomlison, która wydała swoją pierwszą książkę, ukończywszy dziewięćdziesiąt sześć lat. Dziękuję Ci, babciu, za wszystko, co zrobiłaś dla mnie przez te lata, oraz za wpływ, jaki wywarłaś na moje życie.

Spis treści Autor ..........................................................................................................11 O recenzencie technicznym .........................................................................13 Podziękowania ...........................................................................................15 Wprowadzenie ...........................................................................................17 Rozdział 1.

Wprowadzenie do systemu Drupal .............................................................19 Systemy zarządzania treścią ................................................................................................. 19 Drupal ............................................................................................................................... 20 Rdzeń systemu Drupal ................................................................................................... 20 Moduły dodatkowe ......................................................................................................... 21 Motywy w systemie Drupal ........................................................................................... 23 Tworzenie zawartości ............................................................................................................ 23 Podsumowanie ....................................................................................................................... 26

Rozdział 2.

Tworzenie treści i organizowanie jej ..........................................................27 Podstawy są najważniejsze ................................................................................................... 27 Tworzenie treści w systemie Drupal ................................................................................... 28 Skróty artykułów i pełne wpisy ..................................................................................... 29 Edycja treści ............................................................................................................................ 30 Pozostałe opcje zarządzania treścią ..................................................................................... 31 Ustawienia menu ............................................................................................................ 31 Informacje o wersji ......................................................................................................... 32 Ustawienia adresu URL ................................................................................................. 34 Ustawienia odpowiedzi .................................................................................................. 34 Kto, kiedy? ....................................................................................................................... 36 Opcje publikacji .............................................................................................................. 36 Usuwanie treści ...................................................................................................................... 37 Odszukiwanie wpisów ........................................................................................................... 37 Podsumowanie ....................................................................................................................... 38

Rozdział 3.

Tworzenie kont użytkowników i zarządzanie nimi .....................................39 Użytkownicy, rangi i uprawnienia ...................................................................................... 39 Konta użytkowników ............................................................................................................ 40 Konfigurowanie konta użytkownika ................................................................................... 40 Tworzenie rang ...................................................................................................................... 42 Przypisywanie uprawnień ..................................................................................................... 43

SPIS TREŚCI

Tworzenie konta użytkownika ............................................................................................. 44 Konta zakładane przez użytkowników ............................................................................... 46 Zmiana hasła .......................................................................................................................... 48 Podsumowanie ....................................................................................................................... 48

Rozdział 4.

Taksonomia ................................................................................................49 Przegląd taksonomii .............................................................................................................. 49 Tworzenie słowników ........................................................................................................... 50 Przypisywanie słownika taksonomii do rodzaju treści .................................................... 53 Wybór terminu taksonomii podczas tworzenia nowego wpisu ..................................... 55 Listy przyjazne wyszukiwarkom i użytkownikom ............................................................ 56 Hierarchia terminów taksonomii ........................................................................................ 57 Przypisywanie zawartości strony do większej liczby słowników .................................... 58 Podsumowanie ....................................................................................................................... 58

Rozdział 5.

Tworzenie menu .........................................................................................59 Wybieranie z menu ............................................................................................................... 59 Dodawanie elementu do listy menu ................................................................................... 61 Dodawanie elementu do menu ..................................................................................... 61 Dodawanie do menu zewnętrznej strony internetowej ............................................ 61 Tworzenie nowego menu ..................................................................................................... 62 Podsumowanie ....................................................................................................................... 64

Rozdział 6.

Instalowanie motywów graficznych ...........................................................65 Jak wygląda praca z motywami graficznymi systemu Drupal? ....................................... 67 Jak znaleźć nowy motyw? ..................................................................................................... 67 Instalacja skórki ..................................................................................................................... 68 Motyw panelu administracyjnego ....................................................................................... 70 Opcje konfiguracyjne ............................................................................................................ 71 Podsumowanie ....................................................................................................................... 71

Rozdział 7.

Bloki ...........................................................................................................73 Bloki, bloki, bloki… ............................................................................................................... 73 Jak umieścić blok na stronie? ............................................................................................... 73 Lista dostępnych bloków ...................................................................................................... 74 Zmienianie kolejności bloków ............................................................................................. 75 Zmienianie położenia bloków i wyłączanie zbędnych elementów ................................. 75 Konfigurowanie bloków ....................................................................................................... 75 Bloki z modułów dodatkowych ........................................................................................... 78 Tworzenie własnych bloków ................................................................................................ 79 Podsumowanie ....................................................................................................................... 81

Rozdział 8.

Moduły systemu Drupal .............................................................................83 Moduły dodatkowe ................................................................................................................ 83 Jak pobierać, instalować i konfigurować moduły? ............................................................ 84 Konfigurowanie modułu i określanie uprawnień ............................................................. 86 Włączanie innych modułów ................................................................................................ 88 Wyłączanie modułu ........................................................................................................ 88 Aktualizowanie wersji modułu ..................................................................................... 89 Odinstalowanie modułu ................................................................................................ 89

6

SPIS TREŚCI

Pierwsza jedenastka modułów ............................................................................................. 90 Moduł Content Construction Kit (CCK) .................................................................... 90 Moduł Views ................................................................................................................... 90 Moduł Panels ................................................................................................................... 91 Moduł Imagecache ......................................................................................................... 91 Moduł Nicemenus .......................................................................................................... 91 Moduł Nodequeues ........................................................................................................ 91 Moduł WYSIWYG ......................................................................................................... 92 Moduł Pathauto .............................................................................................................. 92 Moduł Webform ............................................................................................................. 92 Moduł Backup and Migrate .......................................................................................... 92 Moduł Ubercart .............................................................................................................. 93 Podsumowanie ....................................................................................................................... 93

Rozdział 9.

Funkcje interaktywne .................................................................................95 Blogowanie .............................................................................................................................. 95 Włączanie funkcji blogowania ...................................................................................... 95 Tworzenie wpisów w blogu ........................................................................................... 96 Wyświetlanie wpisów w blogu ...................................................................................... 97 Dodawanie listy najświeższych wpisów ....................................................................... 98 Fora .......................................................................................................................................... 98 Przygotowywanie pierwszego forum ........................................................................... 98 Ankiety .................................................................................................................................. 103 Tworzenie pierwszej ankiety ....................................................................................... 104 Formularze internetowe ..................................................................................................... 106 Tworzenie formularza .................................................................................................. 107 Podsumowanie ..................................................................................................................... 110

Rozdział 10. Rodzaje zawartości ...................................................................................113 Podstawowe rodzaje zawartości — strona i artykuł ....................................................... 113 Definiowanie własnego rodzaju wpisu ............................................................................. 114 Tworzenie własnego rodzaju wpisu .................................................................................. 115 Personalizowanie szablonu rodzaju zawartości ....................................................... 120 Inne rodzaje pól ................................................................................................................... 125 Przyciski opcji ................................................................................................................ 126 Pole wyboru ................................................................................................................... 128 Lista rozwijana .............................................................................................................. 130 Pole wysyłania plików .................................................................................................. 131 Obszar tekstowy ............................................................................................................ 133 Pola liczbowe i inne elementy szablonu .................................................................... 134 Formatowanie układu własnego rodzaju zawartości ...................................................... 134 Podsumowanie ..................................................................................................................... 137

Rozdział 11. Moduł Views ............................................................................................139 Instalacja modułu Views ..................................................................................................... 139 Tworzenie pierwszego widoku .......................................................................................... 140 Ustawienia widoków .................................................................................................... 142 Ustawienia podstawowe ............................................................................................... 142 Ustawienia zaawansowane .......................................................................................... 145

7

SPIS TREŚCI

Ustawienia stylów ......................................................................................................... 146 Jawny formularz ............................................................................................................ 147 Pola .................................................................................................................................. 148 Zależności ....................................................................................................................... 149 Argumenty ..................................................................................................................... 149 Kryteria sortowania ...................................................................................................... 149 Filtry ................................................................................................................................ 150 Podgląd ........................................................................................................................... 151 Wyświetlanie widoku w postaci strony ..................................................................... 151 Tworzenie widoków w tabeli ............................................................................................. 154 Tworzenie kanałów RSS za pomocą widoków ................................................................ 158 Podsumowanie ..................................................................................................................... 159

Rozdział 12. Moduł Panels ............................................................................................161 Dostępne układy paneli ...................................................................................................... 162 To strona, strona czy może strona? ................................................................................... 162 Tworzenie strony panelowej .............................................................................................. 165 Zmienianie wyglądu istniejącej strony panelowej ................................................... 172 Praca z bazowym szablonem paneli .................................................................................. 177 Umieszczanie innych elementów w panelach strony .......................................................... 179 Podsumowanie ..................................................................................................................... 180

Rozdział 13. Praca nad motywem graficznym ..............................................................181 Wybór punktu startowego .................................................................................................. 181 Zanim zaczniesz ................................................................................................................... 182 Standardowe pliki motywu graficznego .................................................................... 182 Konfigurowanie motywu Genesis ..................................................................................... 184 Modyfikowanie motywu podstawowego ......................................................................... 185 Dodawanie poziomego menu ............................................................................................ 189 Nadawanie stylu stopce ....................................................................................................... 191 Nadawanie stylu segmentom ............................................................................................. 192 Nadawanie stylu blokom .................................................................................................... 193 Zmiana nazwy serwisu i logo ............................................................................................. 194 Pomocne narzędzie .............................................................................................................. 194 Podsumowanie ..................................................................................................................... 195

Rozdział 14. Zarządzanie witryną w systemie Drupal ...................................................197 Wykonywanie kopii zapasowej witryny ........................................................................... 198 Odzyskiwanie zawartości bazy z kopii ....................................................................... 200 Wykonywanie kopii zapasowej systemu ................................................................... 200 Sprawdzanie dzienników zdarzeń ..................................................................................... 201 Raport „Recent log messages” ..................................................................................... 201 Raport „Top ’page not found’ errors” ........................................................................ 202 Raport „Status report” .................................................................................................. 203 Szukanie aktualizacji ........................................................................................................... 203 Zakładanie nowych kont użytkowników ......................................................................... 205 Podsumowanie ..................................................................................................................... 208

8

SPIS TREŚCI

Rozdział 15. Obraz całości ............................................................................................209 Co teraz? ................................................................................................................................ 209 Szukaj pomysłów na innych serwisach budowanych w Drupalu .......................... 209 Śledź rozwój systemu Drupal i modułów dodatkowych ......................................... 210 Zaangażuj się w działania lokalnej społeczności użytkowników systemu Drupal ......211 Przepis na zbudowanie własnego serwisu w systemie Drupal ....................................... 211 Podsumowanie ..................................................................................................................... 215

Rozdział 16. Studium przypadku ..................................................................................217 Określenie charakteru serwisu i przygotowanie projektu ............................................. 217 Określenie odbiorcy ..................................................................................................... 217 Określenie zawartości, jakiej będą szukać odbiorcy ................................................ 218 Określanie struktury serwisu ............................................................................................. 219 Określanie własnych rodzajów zawartości i struktury taksonomii .............................. 220 Tworzenie systemu nawigacji ............................................................................................ 220 Instalowanie systemu Drupal ............................................................................................. 220 Projekt graficzny .................................................................................................................. 221 Pobieranie i instalacja modułów dodatkowych ............................................................... 221 Dodawanie rang i określanie uprawnień .......................................................................... 222 Tworzenie słowników taksonomii i dodawanie terminów ........................................... 223 Tworzenie własnych rodzajów zawartości ....................................................................... 223 Tworzenie widoków ............................................................................................................ 225 Formularz kontaktowy ........................................................................................................ 226 Strona „O nas” ...................................................................................................................... 226 Forum .................................................................................................................................... 226 Subskrybent kanałów RSS .................................................................................................. 227 Elementy menu .................................................................................................................... 227 Dopracowanie zawartości stron ........................................................................................ 228 Faza testów ............................................................................................................................ 228 Udostępnienie witryny ........................................................................................................ 231 Zakładanie kont użytkowników ........................................................................................ 233 Podsumowanie ..................................................................................................................... 233

Dodatek A

Instalacja systemu Drupal ........................................................................235 Środowisko pracy dla systemu Drupal ............................................................................. 235 Konfigurowanie serwera ..................................................................................................... 236 Instalacja systemu Drupal .................................................................................................. 236 Pobieranie systemu Drupal ......................................................................................... 237 Rozpakowywanie archiwum z plikami instalacyjnymi ........................................... 237 Przenoszenie plików systemu Drupal do głównego katalogu serwera WWW ..........237 Zakładanie bazy danych ............................................................................................... 237 Zakładanie konta użytkownika ................................................................................... 238 Konfigurowanie systemu Drupal ...................................................................................... 239 Podsumowanie ..................................................................................................................... 241

Dodatek B

Inne źródła ...............................................................................................243 Moduły systemu Drupal ..................................................................................................... 243 Motywy graficzne ................................................................................................................. 243 Dokumentacja ...................................................................................................................... 243

9

SPIS TREŚCI

Gdzie szukać pomocy, gdy pojawią się problemy? ......................................................... 244 Jak wykonać kopię zapasową serwisu? ............................................................................. 244 Gdzie umieścić serwis w systemie Drupal? ...................................................................... 245 Gdzie szukać wiedzy o HTML i CSS? ............................................................................... 245 Poradniki filmowe ............................................................................................................... 245 Podcasty ................................................................................................................................ 245

Dodatek C

Integracja z serwisami społecznościowymi ..............................................247 Dziel się treścią, by sięgnąć dalej ....................................................................................... 247 Integracja strony z portalami społecznościowymi .......................................................... 248 Integracja systemu Drupal z serwisem Facebook .................................................... 249 Integracja systemu Drupal z serwisem Twitter ........................................................ 249 Integracja systemu Drupal z serwisem Flickr ........................................................... 249 Integracja systemu Drupal z serwisem YouTube ..................................................... 250 Jednoczesne wyświetlanie aktualnych statusów z kilku różnych portali .............. 250 Tworzenie serwisu społecznościowego na platformie Drupal ...................................... 251 Moduł Organic Groups ...................................................................................................... 253 Przygotowanie modułu Organic Groups do pracy .................................................. 253 Przygotowanie rodzajów zawartości .......................................................................... 253 Konfigurowanie modułu Organic Groups ................................................................ 253 Włączanie bloków modułu Organic Groups ............................................................ 254 Określanie dostępności ................................................................................................ 254 Określanie uprawnień użytkowników ....................................................................... 255 Zakładanie pierwszej grupy ................................................................................................ 255 Dodawanie wypowiedzi w klubie ............................................................................... 257 Rozbudowa możliwości modułu Organic Groups ................................................... 257 Podsumowanie ..................................................................................................................... 257

Dodatek D

E-commerce ..............................................................................................259 Handel elektroniczny w Drupalu ...................................................................................... 259 Podstawowe informacje o module Ubercart ................................................................... 259 Instalacja modułu Ubercart ................................................................................................ 261 Ustawienie sklepu ................................................................................................................ 261 Aktualizacja szablonu produktu ........................................................................................ 263 Dodawanie towarów do katalogu ...................................................................................... 263 Zarządzanie magazynem .................................................................................................... 264 Włączanie bloków modułu Ubercart ................................................................................ 265 Widok katalogu .................................................................................................................... 266 Dodawanie do koszyka ....................................................................................................... 266 Realizacja zamówienia ........................................................................................................ 267 Zarządzanie zamówieniami ................................................................................................ 267 Raportowanie ....................................................................................................................... 268 Podsumowanie ..................................................................................................................... 268

Skorowidz .................................................................................................269

10

Autor Todd Tomlison jest wiceprezesem eGovernment Solutions, będącej częścią ServerLogic Corporation z Portland w stanie Oregon. Przez ostatnie piętnaście lat Todd poświęcał się projektowaniu, rozwijaniu i obsłudze złożonych rozwiązań internetowych, przeznaczonych dla publicznych i prywatnych przedsiębiorstw, funkcjonujących na całym świecie. System Drupal pozwolił mu zbudować wiele wspaniałych, funkcjonalnych serwisów internetowych, czego przykładem może być strona http://arapahoelibraries.org/ald/. Przed przyjęciem posady w ServerLogic Todd pełnił funkcję głównego dyrektora do spraw strategicznych rozwiązań dla e-biznesu w Oracle Corporation, gdzie do jego obowiązków należało doradzanie największym klientom Oracle, w jaki sposób wykorzystywać możliwości internetu. Piastował też stanowiska wiceprezesa w Claremont Technology Group, gdzie był odpowiedzialny za rozwijanie rozwiązań internetowych, wiceprezesa i głównego projektanta w Emerald Solutions, dyrektora zarządzającego w CNF Ventures oraz starszego menedżera w Andersen Consulting/Accenture. Todd ukończył studia licencjackie z dziedziny informatyki oraz magisterskie z zarządzania, a w chwili obecnej pracuje nad spisaniem pracy doktorskiej. Jego fascynacja systemem Drupal jest niezaprzeczalna, a potrzeba przedstawiania zalet tej platformy i możliwości, jakie ona daje, wkroczyła już w fazę obsesji. Jeśli chcesz zobaczyć kogoś, kto w jednej chwili „zapłonie ogniem prawdziwej wiary”, zatrzymaj Todda na ulicy i zadaj mu pytanie „O co chodzi z tym Drupalem? Jak mogę go wykorzystać?”.

DRUPAL 7. OD PODSTAW

12

O recenzencie technicznym

Steve Edwards, projektant systemów w Drupal Staffing and Consulting, pracuje w przemyśle informatycznym od 1995 roku. Pracował w działach pomocy technicznej, pełnił role analityka i kierownika projektów wszędzie tam, gdzie informatyka stykała się z bankowością, sprawami transportu i telekomunikacji. W 1998 roku Steve zajął się tworzeniem stron internetowych, a w 2006 roku dodał platformę Drupal do zestawu swoich podstawowych narzędzi. Dziś jest aktywnym członkiem społeczności Drupala oraz autorem wielu modułów dodatkowych i poprawek rdzenia systemu. Chwile wolne od pracy spędza z rodziną lub w kościele. Uwielbia sport i udziela się w ochotniczym pogotowiu ratunkowo-poszukiwawczym.

DRUPAL 7. OD PODSTAW

14

Podziękowania Chciałbym podziękować następującym osobom: Rodzicom za zachęcanie mnie do szukania nowych wyzwań. Siostrze za to, że wytrzymywała z takim maniakiem komputerowym jak ja, zanim szał komputerów ogarnął cały świat. Córce za czas, który pozwoliła mi spędzić na pisaniu, choć wolałaby zapewne iść z tatą do kina lub parku. Toddowi K., Fran C. i Vicky S. za rady, których nie szczędzili początkującemu autorowi, i dzielenie się swoimi doświadczeniami w tej dziedzinie. Steve’owi, który przekonał mnie, że Drupal jest lepszy niż Joomla, i który wykonał korektę merytoryczną tej książki. Brianowi G. za to, że poszedł ślepo za mną i zgodził się złożyć firmę, która realizuje zlecenia wyłącznie za pomocą Drupala. Paulowi H. za nieocenione rady i pokazanie mi niestandardowych rozwiązań w pracy z Drupalem. Cynthii, Johnowi, Oliemu i Alyson oraz pracownikom Arapahoe Libraries za to, że zdecydowali się zerwać z szablonowym myśleniem i postawili na Drupala. Carol oraz wszystkim pracownikom Bloomfield Township Public Library za wizję i pasję, z jaką pomogli mi ją zrealizować. Bonnie i Peterowi za zaszczepienie mi wizji tworzenia platformy nowej generacji dla uczniów szkół średnich i wiarę w to, że Drupal jest narzędziem, którego potrzebują. Mike’owi Mostafavi za rozbudzenie we mnie chęci nauczania i umożliwienie mi wykonywania tego zajęcia na uniwersytecie przez osiem lat. Philowi, Mike’owi, Steve’owi i Terry’emu za szansę doradzania ludziom, jak korzystać z Drupala. Driesowi za wizję i zapał, z którym stworzył Drupala. Wszystkim członkom społeczności Drupala za zaangażowanie, dzięki któremu Drupal stał się najdoskonalszym systemem zarządzania treścią na świecie. Wydawnictwu Apress za przeprowadzenie mnie przez koszmar przygotowywania książki do wydania. Bez waszego zapału do wydawania drukiem najlepszych książek na ziemi nigdy nie zdołałbym dopisać do swoich osiągnięć „autor podręcznika”.

DRUPAL 7. OD PODSTAW

16

Wprowadzenie W swoim stosunkowo krótkim życiu system Drupal zdołał w niezwykłym stopniu odmienić kształt internetu. Dzięki funkcjom zarządzania treścią (CMS) Drupal umożliwia małym i dużym przedsiębiorstwom tworzenie wielofunkcyjnych i treściwych stron internetowych. Dzięki cechom szkieletu aplikacji Drupal zmienia sposób myślenia o procesie projektowania aplikacji internetowych. Gdy po raz pierwszy zetknąłem się z możliwościami tej platformy, wiedziałem instynktownie, że stoję przed czymś więcej niż kolejnym systemem zarządzania treścią. Gdy zrozumiałem, jak szybko i z jaką łatwością mogę sam tworzyć wielofunkcyjne strony WWW, zmieniłem cel zawodowych dążeń i skupiłem się całkowicie na Drupalu. W czasie rozmów z klientami nieraz zastanawiałem się: „Skąd brać informacje dla kogoś, kto nigdy wcześniej nie miał kontaktu z Drupalem?”. Niestety, nie udało mi się znaleźć odpowiedniego źródła. Wtedy rozpocząłem pracę nad tą książką. Często słyszę pytanie: „Czym właściwie jest Drupal?”. Prosta odpowiedź to: „Drupal to system zarządzania treścią o otwartym kodzie, pozwalający szybko i łatwo tworzyć złożone strony WWW — proste blogi, witryny korporacyjne, sieci społecznościowe lub dowolne inne projekty”. To, co możesz stworzyć w Drupalu, jest ograniczone wyłącznie Twoją wyobraźnią i czasem, jaki zechcesz poświęcić tej platformie. Otwartość kodu systemu Drupal sprawia, że społeczność zajmująca się jego rozwijaniem stale poprawia jakość systemu i rozwija jego możliwości, dodając kolejne moduły dodatkowe do i tak bogatego już rdzenia. Jeżeli w internecie pojawi się nowa idea, można zakładać, że odpowiedni moduł pojawi się na serwerze społeczności Drupal już kilka dni później. Drupal jest tym, czym jest, wyłącznie dzięki społeczności programistów i tylko dzięki nim będzie rozwijać się dalej. Pokażę Ci, w jaki sposób wykorzystać potęgę społeczności, jak łatwo i bez większego wysiłku tworzyć niezwykłe rozwiązania na stronach WWW. Twoja podróż do celu, jakim jest opanowanie Drupala, rozpoczęła się w chwili, w której sięgnąłeś po tę książkę. Jeśli pozwolisz poprowadzić się przez jej treść, zyskasz wiedzę i doświadczenie, pozwalające tworzyć złożone i rozbudowane serwisy w platformie Drupal. Zyskasz też wiedzę, która pozwoli Ci wyjść poza granice pojęć podstawowych i rozwijać idee przedstawione w tej książce. Opanowanie Drupala nie różni się niczym od poznawania innych nowych technologii. Nieraz natkniesz się na problemy pozornie nie do pokonania, które sprawią, że zatrzymasz się i podrapiesz po głowie. Mam nadzieję, że dzięki tej książce część przeszkód zniknie, a pozostałe stracą status problemów nierozwiązywalnych. Już cieszę się na myśl o stronach internetowych, które umieścisz w sieci, i mam nadzieję, że spotkamy się na nadchodzącym DrupalConie.

DRUPAL 7. OD PODSTAW

18

ROZDZIAŁ 1 „„„

Wprowadzenie do systemu Drupal Rozdział ten zawiera podstawowe informacje dotyczące zasad funkcjonowania systemów zarządzania treścią (ang. content management system — CMS), krótką charakterystykę systemu Drupal w kontekście definicji systemów CMS, opis składowych systemu Drupal oraz wskazówki dotyczące tego, jak wykonać pierwszą stronę za pomocą narzędzi oferowanych przez Drupal.

Systemy zarządzania treścią Najprostszy system zarządzania treścią powinien zawierać narzędzia pozwalające tworzyć strony WWW, publikować je w sieci i w stosunkowo prosty sposób zmieniać ich zawartość. Zawartość ta nie jest zdefiniowana i może przyjmować dowolną formę — krótkich notatek informacyjnych, notek wysyłanych na bloga, materiałów wideo, zdjęć, podcastów, artykułów czy opisów towarów, którymi handlujesz. Można zatem pokusić się o sformułowanie następującej definicji — treść stanowi dowolne połączenie tekstu, grafiki, zdjęć, dźwięku i filmu, zorganizowanych w taki sposób, by odwiedzający Twoją stronę mogli wysłuchać, przeczytać lub obejrzeć interesujące ich informacje. Typowy system CMS zawiera zazwyczaj zestaw stałych elementów, których zadaniem jest uproszczenie procesów tworzenia strony, rozwijania jej i zarządzania jej zawartością. Wyróżniamy wśród nich: • panel administratora; • bazę danych, w której przechowywana jest zawartość strony; • mechanizm pozwalający umieszczać zawartość bazy danych we właściwych miejscach kodu strony WWW; • narzędzia służące do tworzenia, publikowania i redagowania treści; • moduł, którego zadaniem jest stworzenie i modyfikowanie wyglądu menu oraz innych elementów nawigacyjnych; • narzędzie pozwalające wybrać motyw graficzny strony WWW; • narzędzie służące do zarządzania kontami użytkowników; • system zabezpieczeń; • elementy właściwe dla technologii Web 2.0 — mechanizmy forum, bloga, encyklopedii internetowych czy narzędzia pozwalające przeprowadzać głosowania i ankiety;

ROZDZIAŁ 1. „ WPROWADZENIE DO SYSTEMU DRUPAL

• narzędzia służące do tworzenia taksonomii i dodawania znaczników; • mechanizm formularzy internetowych; • narzędzia pozwalające tworzyć aplikacje typu e-commerce. Napisano setki darmowych systemów zarządzania treścią (sprawdź ich spis na stronie www.csmmatrix.org1). Znajdziesz wśród nich najprostsze rozwiązania, służące jedynie do prowadzenia blogów (na przykład WordPress), ale też złożone systemy, dające znacznie większe możliwości (takie jak Drupal).

Drupal Drupal to darmowy projekt, powstający na zasadzie otwartości kodu. System jest tworzony w języku PHP i rozpowszechniany zgodnie z zasadami licencji GNU General Public License. Podstawą rozwoju tego systemu był projekt holenderskiego studenta, Driesa Buytaerta, mający zapewnić jemu i jego znajomym narzędzie, dzięki któremu mogliby dzielić się informacjami na temat aktualnych wydarzeń. Na początku roku 2001 Buytaert zdecydował się uwolnić kod projektu, co spotkało się z żywą i pozytywną reakcją społeczności internetowej, która natychmiast przystąpiła do prac nad rozwinięciem początkowo prostej platformy. W ten sposób narodził się jeden z największych i najbardziej wszechstronnych systemów zarządzania treścią. Zalety systemu Drupal sprawiają, że stał się on oczywistym wyborem dla autorów przeróżnych stron internetowych — od posiadaczy prostych blogów po administratorów wielkich serwisów rządowych i firmowych. Najprostsza edycja systemu Drupal, tak zwany rdzeń, zawiera zestaw podstawowych narzędzi, pozwalających stworzyć stronę WWW o klasycznym układzie broszury, bloga prowadzonego przez jednego lub kilku autorów, forum internetowe lub portal społecznościowy, którego treść będzie wprowadzana przez jego użytkowników. Na rdzeń Drupala składają się moduły, pozwalające publikować nową zawartość serwisu, opatrzywszy ją wcześniej sygnaturą autora, tworzyć konta nowych użytkowników i zarządzać już istniejącymi, budować elementy nawigacji po stronie, dodawać fora internetowe i budować ankiety, a także zarządzać zawartością strony poprzez dostępny z poziomu przeglądarki interfejs administratora. Budowa systemu Drupal umożliwia rozwinięcie jego możliwości poprzez instalowanie dodatkowych aplikacji, tak zwanych modułów. W sieci znajdziesz tysiące modułów (określanych mianem kontrybucji lub modułów dodatkowych), pozwalających rozbudować możliwości podstawowej wersji Drupala w dowolnym kierunku, przekształcając go na przykład w system e-commerce czy sieć społecznościową, umożliwiając integrację zawartości serwisu z zewnętrznymi aplikacjami lub dodawanie plików multimedialnych. Aby uruchomić system Drupal, musisz dysponować platformą, na której będziesz mógł zainstalować PHP w wersji 5.2+ (na przykład Apache, IIS, Lighttpd lub nginx) oraz na której zdołasz skonfigurować bazę danych (na przykład MySQL, SQLite czy PostgreSQL) przeznaczoną do przechowywania zawartości strony i informacji o ustawieniach serwisu.

Rdzeń systemu Drupal Pliki pobrane w archiwum instalacyjnym systemu Drupal zawierają zestaw modułów zwany popularnie rdzeniem Drupala. Na rdzeń, czy też silnik systemu, składają się wszystkie fragmenty kodu, które pozwalają stworzyć stronę działającą zgodnie z założeniami Drupala. Kod ten to przede wszystkim pewna liczba dostępnych od ręki modułów, które pozwalają szybko uzyskać praktycznie w pełni funkcjonalną stronę internetową. Rdzeń systemu Drupal zawiera narzędzia umożliwiające:

1

Strona jest prowadzona w języku angielskim. Porównanie większości dostępnych w sieci systemów zarządzania treścią w języku polskim znajdziesz między innymi na stronach pl.wikipedia.org/wiki/Porównanie_systemów_CMS oraz www.os-cms.pl — przyp. tłum.

20

SYSTEMY ZARZĄDZANIA TREŚCIĄ

• dodawanie i modyfikowanie zawartości, • odbieranie i wysyłanie plików, • tworzenie i modyfikowanie menu, • zakładanie kont użytkowników i zarządzanie nimi, • określanie ról i uprawnień użytkowników, • budowanie taksonomii, • zakładanie i prowadzenie blogów, • utrzymywanie forów dyskusyjnych, • przeprowadzanie głosowań. W rdzeniu systemu Drupal znajdziesz też bardzo sprawną wyszukiwarkę, narzędzie obsługi różnych języków oraz funkcję zgłaszania błędów i zapisywania ich w dzienniku.

Moduły dodatkowe Wprawdzie sam rdzeń systemu Drupal wystarcza do utworzenia bardzo zaawansowanych stron internetowych, ale sytuacje, w których ograniczone funkcje silnika nie pozwolą wprowadzić w życie bardziej fachowych rozwiązań, nie należą do rzadkości. Kiedy staniesz przed takim problemem, sprawdź najpierw, czy nie znajdziesz rozwiązania w zasobach modułów dodatkowych, udostępnianych przez programistów z całego świata. Prawdopodobieństwo tego, że ktoś inny musiał zmierzyć się wcześniej z takim samym zagadnieniem i opracował odpowiednie rozszerzenie rdzenia systemu, jest bardzo duże. Poszukiwania właściwego modułu dodatkowego rozpocznij na stronie www.drupal.org/projects/modules2 (możesz też sprawdzić zawartość strony drupal.org.pl/kategoria/moduly — przyp. tłum.). Moduły są zgrupowane w oddzielnych kategoriach, opisujących ich przeznaczenie. Na górze wspomnianej strony znajduje się rozwijana lista kategorii modułów, Sort by categories (wyświetlaj według kategorii). Oto najważniejsze spośród wymienionych na niej działów: • utility — narzędzia • content — zawartość • content display — wyświetlanie zawartości • third-party integration — integracja z zewnętrznymi aplikacjami • administration — administracja • Content Construction Kit (CCK) — narzędzia tworzenia zawartości • developer — deweloper • community — społeczność • media • e-commerce Poniżej znajdziesz opis najpopularniejszych modułów oraz kilku mniej znanych, ale niewątpliwie bardzo przydatnych. • Ubercart — Moduł oferujący wszystkie narzędzia niezbędne we w pełni funkcjonalnym serwisie handlowym, które umożliwią Ci prowadzenie sprzedaży towarów i artykułów dostępnych wyłącznie w wersji elektronicznej. Moduł ten pozwala realizować płatności za pomocą kart kredytowych i kontrolować wysyłkę towarów. Jeśli chcesz prowadzić sprzedaż w internecie, z pewnością powinieneś zainteresować się tym dodatkiem. 2

Strona w języku angielskim — przyp. tłum.

21

ROZDZIAŁ 1. „ WPROWADZENIE DO SYSTEMU DRUPAL

• Webform — Prosty mechanizm umożliwiający tworzenie i publikowanie formularzy internetowych (na przykład karty zgłoszenia wolontariusza lub formularza kontaktowego). Praca z tym narzędziem nie wymaga wiedzy z zakresu programowania, więc każdy użytkownik obeznany z zasadami dodawania zawartości w systemie Drupal zdoła szybko i sprawnie opanować reguły budowania również bardziej złożonych formularzy internetowych. • Views — Proste narzędzie, pozwalające pobierać zawartość z bazy danych systemu Drupal i wyświetlać ją na Twojej stronie internetowej. Moduł Views ma niemalże nieograniczone możliwości, dzięki którym zdołasz umieścić na stronie praktycznie dowolną zawartość — dodać oznaczenia wydarzeń w kalendarzu, stworzyć galerię zdjęć, wygenerować pokaz slajdów, zebrać w tabeli atrybuty treści strony (informacje o tytułach notek, ich autorach, dacie publikacji, terminach taksonomicznych czy treści artykułów). • Panels — Moduł, dzięki któremu zbudujesz stronę o skomplikowanej strukturze, nie zapisując przy tym ani jednego wiersza kodu. Do dyspozycji dostaniesz kilka przygotowanych wcześniej układów strony (wiersze i kolumny) oraz jeden ogólny szablon, na podstawie którego będziesz mógł zaprojektować własny wygląd strony. • Date i Calendar — Dzięki tym modułom zyskasz możliwość zmieniania zawartości pól daty i narzędzie, które pozwoli Ci dodawać nowe wydarzenia do kalendarza. • Content Construction Kit (CCK) — To narzędzie pozwalające tworzyć własne rodzaje treści. W rozdziale 2. znajdziesz opis dwóch podstawowych typów zawartości dostępnych w systemie Drupal 7 — artykułu i strony — ale to nie jedyne rodzaje wpisów, jakie mogą pojawiać się w serwisie. Niewykluczone, że będziesz zainteresowany dodaniem zawartości, której konstrukcja będzie uwzględniać dodatkowe pola, nie tylko nagłówek i treść. Przykładem własnego typu wpisu jest strona wydarzenia, która poza tytułem i opisem (treść) zawiera pola daty (bądź godziny) rozpoczęcia wydarzenia, daty (godziny) jego zakończenia, pole adresu oraz informację o cenie i sposobie zakupu biletów. Moduł CCK oferuje Ci narzędzia niezbędne do utworzenia własnego rodzaju zawartości strony. • Backup i Migrate — Dzięki tym modułom będziesz mógł stworzyć plan wykonywania kopii zapasowych bazy danych, a także zyskasz możliwość odzyskania jej zawartości na podstawie tak przygotowanej kopii. Ten moduł jest obowiązkowy dla każdego, kto prowadzi stronę komercyjną, zbudowaną w systemie Drupal. • Google Analytics — Ten prosty formularz pozwoli Ci uruchomić usługę Google Analytics na swojej stronie. Google Analytics to darmowa usługa, której zadaniem jest śledzenie ruchu na stronie — podawanie liczby odwiedzających ją osób, określanie miejsca, z którego nadeszło połączenie, sprawdzanie pojęć, które doprowadziły odwiedzającego na Twoją stronę, podawanie czasu, jaki odwiedzający spędził na stronie. To tylko część z wielu statystyk mających pomóc Ci poznać poziom użyteczności strony i zrozumieć czynniki, które mają na niego wpływ. Więcej informacji na temat Google Analytics znajdziesz na stronie www.google.com/analytics. • ImageCache — To narzędzie, które automatycznie zmieni rozmiary zdjęcia, przeskaluje je i przytnie. Żaden autor serwisu, na którym użytkownicy mogą umieszczać zdjęcia, nie powinien rezygnować z takiej pomocy. Moduł ImageCache może przerobić wysłane na serwer zdjęcie z aparatu cyfrowego, mające rozmiar 4 MB, do rozsądnych z punktu widzenia użycia w sieci wymiarów (określonych z góry przez autora serwisu) 200 px×200 px, zmieniając tym samym znacząco rozmiar pliku i czas otwierania strony. • IMCE — Prosty w użyciu menedżer plików, dzięki któremu dodawanie plików na serwer i pobieranie ich stamtąd stanie się dużo prostsze. • Pathauto — Moduł, który wykorzystuje tytuł strony, by automatycznie utworzyć przyjazny silnikom wyszukiwarek adres URL (na przykład www.drupal7ksiazka.com/przyklady zamiast domyślnego adresu nadawanego przez system Drupal www.drupal7ksiazka.com?node=1234).

22

TWORZENIE ZAWARTOŚCI

• Scheduler — Moduł, dzięki któremu będziesz mógł określić dzień publikacji nowego wpisu (ang. node) oraz dzień, w którym dany wpis przestanie być widoczny na stronie. Dzięki temu modułowi każdy może przygotować nową publikację wcześniej i nie ujawniać jej, dopóki nie nadejdzie odpowiedni moment. • WYSIWYG — Moduł pozwalający pobierać, instalować i konfigurować edytory tekstu, działające na zasadzie „dostajesz, co widzisz”.

Motywy w systemie Drupal Motyw to komponent określający zasady konstrukcji stron serwisu i definiujący ich wygląd. Typowy motyw używany w systemie Drupal pozwala określić następujące cechy budowy strony serwisu: • Liczba kolumn, w których będzie prezentowana treść. (Na przykład: układ trójkolumnowy, zawierający kolumny prawą, środkową i lewą; układ dwukolumnowy z wąską kolumną po lewej stronie i szeroką kolumną treści po prawej; układ jednokolumnowy). • Czy strony serwisu będą miały umieszczony na górze baner? • Czy strony serwisu będą posiadać stopkę? • Miejsce położenia menu nawigacji (na górze strony, pod banerem, w prawej kolumnie itp.). • Kolory, jakie pojawią się na stronach. • Krój czcionek i ich rozmiary dla poszczególnych elementów strony (nagłówków, tytułów i treści). • Elementy graficzne, na przykład logo. Rdzeń systemu Drupal oferuje kilka dostępnych od razu motywów graficznych, w oparciu o które możesz tworzyć swoją witrynę, ale jeśli nie będą one Cię satysfakcjonować, możesz przeszukać zasoby darmowych motywów, umieszczone pod adresem drupal.org/project/themes, ewentualnie skorzystać z rad zawartych w poradniku drupal.org/theme-guide i stworzyć własny szablon.

Tworzenie zawartości Strona internetowa bez zawartości byłaby niczym książka bez słów, gazeta bez wiadomości czy czasopismo bez artykułów — niewarta jednego spojrzenia. Dzięki systemowi Drupal tworzenie, publikowanie i zmienianie zawartości strony jest prostsze, niż kiedykolwiek dotąd. Za chwilę przekonasz się, jak niewiele trzeba, by dodać na stronie pierwszy fragment treści. Jeżeli dotąd nie zainstalowałeś Drupala, zapoznaj się z zawartością dodatku A, w którym znajdziesz dokładny opis procesu instalacji i konfiguracji rdzenia systemu. Ekran tworzenia zawartości w systemie Drupal można wywołać na kilka sposobów. Tym razem skupię się na opisie najprostszego z nich, a inne omówię w rozdziale 2. Na stronie głównej, Welcome to localhost (witaj na serwerze localhost), Twojego serwisu znajduje się na razie tylko jeden odnośnik — Add new content (dodaj zawartość). W kolumnie po lewej stronie (rysunek 1.1) znajdziesz ten sam odnośnik, umieszczony w menu Management (zarządzaj). Kliknij dowolny z nich — obydwa prowadzą do strony, na której będziesz mógł dodać zawartość do swojego serwisu. Po kliknięciu jednego ze wspomnianych odnośników zobaczysz listę rodzajów zawartości serwisu, jakie możesz utworzyć (rysunek 1.2). System Drupal 7 domyślnie pozwala tworzyć zawartość należącą do jednego z dwóch rodzajów treści — artykułu (Article) lub strony (Basic page). Obydwa rodzaje wpisów wprowadza się w oknie składającym się z dwóch pól tekstowych — pola tytułu i pola zawartości. W polu tytułu wprowadzasz nagłówek wpisu, natomiast w polu zawartości umieszczasz treść. Inne rodzaje wpisów wprowadza się za pomocą wyglądających nieco inaczej formularzy. Jeżeli zdecydujesz się na dodanie

23

ROZDZIAŁ 1. „ WPROWADZENIE DO SYSTEMU DRUPAL

Rysunek 1.1. Kliknij dowolny z odnośników Add new content (dodaj zawartość), by zacząć pracę nad stroną

Rysunek 1.2. Wybierz rodzaj wpisu3 wpisu w postaci artykułu, będziesz mógł dodatkowo opisać go odpowiednimi etykietami (tags), przypisując tym samym jego treść odpowiednim kategoriom. O nadawaniu etykiet i tworzeniu innych rodzajów zawartości strony (również własnych) opowiem w dalszych częściach tej książki. Rozpocznij pracę od utworzenia zawartości najprostszego typu — strony. Wybierz odnośnik Basic page (strona), żeby utworzyć szkielet pierwszego wpisu. Po kliknięciu tego odnośnika pojawi się formularz dodawania zawartości (rysunek 1.3). Podaj w nim tytuł swojego wpisu (pole Title) i wpisz treść w polu zawartości (Content). Po zapisaniu tytułu i treści artykułu przewiń zawartość okna przeglądarki na dół. Po lewej stronie zobaczysz pionowe menu z kilkoma poleceniami do wyboru. Kliknij odnośnik Publishing options (opcje publikacji) — pozostałe pozycje tego menu omówię w rozdziale 2. — i zaznacz pola wyboru Published (do publikacji) oraz Promoted to front page (na stronie głównej). Opcja Published (do publikacji) zagwarantuje wprowadzenie zawartości do serwisu natychmiast po kliknięciu przycisku Save (zachowaj), natomiast wybranie opcji Promoted to front page (na stronie głównej) automatycznie ustawi podaną treść na stronie głównej serwisu. Następnie kliknij przycisk Save (zachowaj). System Drupal doda nową stronę do bazy danych i natychmiast wyświetli w oknie przeglądarki jej zawartość (rysunek 1.4). Gratulacje! Właśnie utworzyłeś i opublikowałeś pierwszy element swojego serwisu w systemie Drupal. System Drupal oferuje znacznie więcej opcji tworzenia treści, publikowania i wprowadzania zmian w istniejących już wpisach, o czym opowiem w następnych rozdziałach tej książki. Możemy uznać, że Twoja przygoda z systemem Drupal właśnie się rozpoczęła.

3

Artykuł — forma wypowiedzi służąca przedstawianiu zawartości ulegającej częstym zmianom. Jest idealny do dodawania nowych informacji, notek prasowych czy wpisów na blogu. Strona — służy przede wszystkim do umieszczania w serwisie treści nieulegających częstym zmianom, na przykład informacji z działu „O mnie” — przyp. tłum.

24

TWORZENIE ZAWARTOŚCI

Rysunek 1.3. Tworzenie strony w systemie Drupal

25

ROZDZIAŁ 1. „ WPROWADZENIE DO SYSTEMU DRUPAL

Rysunek 1.4. Proszę! Oto efekt publikacji

Podsumowanie Ten rozdział został poświęcony omówieniu podstawowych informacji dotyczących systemów zarządzania treścią oraz najprostszych możliwości, jakie oferuje rdzeń systemu Drupal. Znajdziesz tu także kilka słów na temat dodatkowych modułów, służących rozbudowaniu funkcji rdzenia, motywów graficznych oraz zasad dodawania nowych wpisów na stronie. Rozdział 2. to przede wszystkim rozważania dotyczące tworzenia nowych wpisów, zasad ich publikacji oraz możliwości zarządzania wprowadzoną treścią, jakie daje system Drupal 7.

26

ROZDZIAŁ 2 „„„

Tworzenie treści i organizowanie jej Pamiętaj! Strona internetowa pozbawiona zawartości jest warta tyle, co książka pozbawiona słów, i mniej więcej tak samo interesująca. W tym rozdziale skupię się na zagadnieniach związanych z wprowadzaniem treści do serwisu, mając na celu dostarczenie Ci narzędzi, dzięki którym zdołasz podjąć się śmiałego przedsięwzięcia, jakim jest tworzenie własnej strony, publikowanie na niej i organizowanie wprowadzonych tam treści. Pierwszy kontakt z tą stroną systemu Drupal miałeś już w rozdziale 1 , teraz pora zastanowić się, jak można go rozwinąć.

Podstawy są najważniejsze Treść stanowi sedno każdego serwisu internetowego, niezależnie od tego, czy zostanie ona wprowadzona do sieci za pomocą systemu Drupal, czy przy użyciu innych narzędzi. To treść przyciąga odwiedzających, a brak treści jest często tym, co zniechęca ich do powrotu na naszą stronę po pierwszej wizycie. Najprostszą formą treści dostępnych w internecie jest dowolne połączenie tekstu ze zdjęciami, filmem, dźwiękiem i grafiką. Pojedynczy wpis w serwisie może mieć charakter: • artykułu prasowego, • notki na blogu, • opisu produktu, • opisu przedsiębiorstwa, • wpisu na forum, • zdjęcia, • wpisu encyklopedycznego. Treść umieszczana na stronie tworzonej w systemie Drupal bardzo często ma postać dłuższego fragmentu tekstu, poprzedzonego adekwatnym tytułem. Z rozdziału 1. dowiedziałeś się, w jaki sposób utworzyć najprostszą stronę, składającą się właśnie z tych dwóch elementów. System Drupal pozwala rozbudować ten schemat, oddając do Twojej dyspozycji narzędzia do tworzenia własnych typów wpisów. Tworząc własny szablon wpisów, zyskujesz możliwość definiowania dodatkowych pól, w których będą podawane informacje związane z tworzonym właśnie spisem. Typowym przykładem własnego rodzaju zawartości jest wydarzenie. Wydarzenie, poza tytułem i treścią (opisem zdarzenia), zawiera dodatkowe związane z nim dane. Najczęściej są to godzina i data wydarzenia, adres miejsca, w którym ma odbyć się impreza, oraz w niektórych przypadkach także mapa dojazdu lub zdjęcie obiektu. O tworzeniu własnych rodzajów zdarzeń napiszę więcej w rozdziale 10.

ROZDZIAŁ 2. „ TWORZENIE TREŚCI I ORGANIZOWANIE JEJ

Tworzenie treści w systemie Drupal W rozdziale 1. poznałeś podstawowe możliwości komponowania treści, jakie daje system Drupal, i dzięki nim dodałeś pierwszy wpis w swoim nowym serwisie. W ten sposób stworzyłeś najprostszą stronę internetową. Drupal 7 oferuje też drugi rodzaj wpisów — artykuł. Artykuł różni się od strony tylko dwoma elementami — narzędziem pozwalającym dodawać grafikę do komponowanej właśnie treści oraz polem, w którym autor może umieszczać tak zwane znaczniki, czyli słowa mające za zadanie zaklasyfikować zawartość strony, pomóc zachować porządek w serwisie i w przyszłości umożliwić wyszukanie treści o podobnym charakterze. Znacznikom poświęcę sporą część rozdziału 4., ponieważ są one bardzo istotnym elementem systemu Drupal. Aby utworzyć nowy artykuł i opublikować następnie jego zawartość w sieci, kliknij najpierw jeden z odnośników Add new content (dodaj zawartość), widocznych na stronie, a następnie z listy dostępnych typów wybierz opcję Article (artykuł). Formularz, który pojawi się w oknie przeglądarki, różni się od znanego Ci już narzędzia tworzenia stron tylko dwoma dodatkowymi polami. Rozpocznij tworzenie zawartości wpisu od nadania mu odpowiedniego tytułu. Następnie znajdź jakąś grafikę na dysku swojego komputera, klikając przycisk Przeglądaj, i wyślij ją na serwer za pomocą kliknięcia przycisku Upload (wyślij). Pole dodawania grafiki zostało przedstawione na rysunku 2.1.

Rysunek 2.1. Znajdź na dysku grafikę, którą chcesz dodać do treści artykułu Po wskazaniu rysunku na dysku komputera powinieneś zaobserwować zmianę wyglądu formularza wysyłki obrazów. Teraz powinien on przedstawiać miniaturę umieszczonej na serwerze grafiki (rysunek 2.2) oraz udostępnić Ci pole, w którym można wpisać tekst alternatywny obrazka. Warto wprowadzić ten atrybut, szczególnie jeśli spodziewasz się, że stronę będą odwiedzać osoby z upośledzeniem funkcji wzroku.

Rysunek 2.2. Na ekranie pojawia się podgląd grafiki, a Ty zyskujesz okazję, by opisać umieszczany na serwerze rysunek Kolejnym krokiem jest wprowadzenie treści strony i podanie opisujących ją znaczników (rysunek 2.3). Rolę znacznika może pełnić dowolne słowo lub wyrażenie, opisujące przekaz artykułu. Znaczniki muszą być oddzielone od siebie przecinkami. Więcej na ten temat znajdziesz w rozdziale 4. Z umieszczonego na dole po lewej stronie menu wybierz zakładkę Publishing options (opcje publikacji), zaznacz w niej pola wyboru Published (do publikacji) i Promoted to the front page (na stronie głównej), a następnie kliknij przycisk Save (zachowaj). W efekcie tych działań w oknie przeglądarki powinna pojawić się zaktualizowana wersja strony głównej (rysunek 2.4), z uwzględnionym na niej nowym artykułem. Rysunek 2.4 przedstawia wygląd artykułu po opublikowaniu. Jak widzisz, tekstowi towarzyszą rysunek i lista znaczników. Szczegóły związane z dodawaniem znaczników i tworzeniem taksonomii poznasz w rozdziale 4., ale warto wspomnieć już teraz, że kliknięcie któregoś z odnośników znaczników spowoduje wyświetlenie listy artykułów, do których został on przypisany.

28

TWORZENIE TREŚCI W SYSTEMIE DRUPAL

Rysunek 2.3. Wprowadzanie treści artykułu i dodawanie znaczników

Rysunek 2.4. Wygląd strony głównej po aktualizacji

Skróty artykułów i pełne wpisy Jedną z najważniejszych cech Drupala ułatwiających pracę z tekstem jest automatyczne wyświetlanie zawartości strony w postaci skrótu lub pełnej wersji artykułu. Skrót artykułu zawiera zazwyczaj pierwszych sześćset znaków, natomiast pełna postać wpisu nie jest w żaden sposób ograniczona. Pod obydwoma wpisami widocznymi na rysunku 2.4 znajduje się odnośnik Read more (czytaj dalej), który świadczy

29

ROZDZIAŁ 2. „ TWORZENIE TREŚCI I ORGANIZOWANIE JEJ

o tym, że Drupal domyślnie wyświetla zawartość wpisów w trybie skrótu. Długość skrótu zależy od zdefiniowanej wcześniej długości zawartości. Więcej informacji na temat formatowania skrótów znajdziesz w rozdziale 10.

Edycja treści Prędzej czy później nadejdzie chwila, kiedy zdecydujesz się wprowadzić jakieś zmiany w opublikowanej wcześniej notatce. Edytowanie treści przebiega niemal identycznie jak jej dodawanie, z tą tylko różnicą, że najpierw musisz odnaleźć fragment serwisu, który chcesz zmodyfikować. Gdy po zalogowaniu się na konto użytkownika z odpowiednimi uprawnieniami (rozdział 6.) otworzysz już stronę internetową, na której znajduje się zawartość mająca ulec edycji, po prawej stronie tytułu wpisu zobaczysz dwa odnośniki — Edit (edytuj) i View (pokaż). Widok ten przedstawia rysunek 2.5.

Rysunek 2.5. Aby edytować zawartość utworzonej wcześniej strony, kliknij odnośnik Edit (edytuj) Domyślne ustawienia systemu Drupal zakładają, że edycji wpisów, ich aktualizacji czy usunięcia może podjąć się wyłącznie ich autor. Wyjątkiem od tej reguły są administratorzy serwisu lub inni użytkownicy, których ranga uprawnia ich do edytowania, aktualizowania i usuwania cudzych wpisów. Oni także mogą dokonywać zmian w Twoich publikacjach. Jeśli obok tytułu wpisu nie pojawia się odnośnik Edit (edytuj), oznacza to, że nie jesteś zalogowany na koncie, które uprawniałoby Cię do dokonywania zmian w danej części treści serwisu. Aby wprowadzić modyfikacje wpisu, kliknij odnośnik Edit (edytuj). Zawartość wpisu pojawi się na ekranie w trybie edycji, w którym możesz wprowadzić wszelkie niezbędne zmiany (rysunek 2.6).

Rysunek 2.6. Treść wpisu wyświetlana w trybie edycji

30

POZOSTAŁE OPCJE ZARZĄDZANIA TREŚCIĄ

Spróbuj przeprowadzić aktualizację wpisu dodanego w poprzednim ćwiczeniu. W tym celu otwórz stronę główną serwisu (wpisz w przeglądarce adres http://localhost lub dowolny inny URL, pod którym znajduje się Twoja strona), następnie kliknij odnośnik Edit (edytuj), umieszczony po prawej stronie tytułu wpisu, i wprowadź zmiany w treści lub nagłówku artykułu. W końcu zaakceptuj zmiany, klikając przycisk Save (zachowaj), umieszczony na dole strony (w tym celu będziesz musiał prawdopodobnie przewinąć jej zawartość). Nowa wersja artykułu pojawi się natychmiast na stronie głównej.

Pozostałe opcje zarządzania treścią Przed zapisaniem zmian dokonanych w treści za pomocą formularza edycji zmieniliśmy jedną z opcji pionowego menu Publishing options (opcje publikowania), umieszczonego na dole tego formularza. Przyjrzyjmy się teraz pozostałym opcjom menu, związanym z publikacją treści. Gdy już je poznasz, zajmiemy się bardziej złożonymi zagadnieniami. Kliknij odnośnik Edit (edytuj) umieszczony obok tytułu wpisu i przewiń zawartość okna. Na dole strony znajduje się pionowe menu z następującymi zakładkami: • Menu settings (ustawienia menu), • Revision information (informacje o wersji), • URL path settings (ustawienia adresu URL), • Comment settings (ustawienia odpowiedzi), • Authoring information (kto, kiedy), • Publishing options (opcje publikacji).

Ustawienia menu Niektóre wpisy są tak ważne, że wymagają dodania ich do jednego z menu nawigacyjnych. Domyślnie w systemie Drupal są dostępne dwa rodzaje menu — Main menu (odnośniki podstawowe) oraz Secondary menu (odnośniki dodatkowe). Odnośniki menu podstawowego pojawiają się zazwyczaj na szczycie strony, natomiast odnośniki menu dodatkowego umieszcza się najczęściej w stopce, w lewej kolumnie układu lub pod banerem strony — to zależy od motywu graficznego, na jaki się zdecydujesz. O szczegółach pracy z różnymi rodzajami nawigacji opowiem szerzej w rozdziale 5., teraz pokażę tylko, jak przypisać testową zawartość strony głównej do grupy odnośników podstawowych. Otwórz stronę główną witryny i kliknij odnośnik powiązany z wybranym fragmentem testowym strony, który utworzyłeś w poprzednich krokach pracy nad witryną. Następnie kliknij zakładkę Menu settings (ustawienia menu), przedstawioną na rysunku 2.7. W formularzu edycji pojawi się panel Menu settings (ustawienia menu). Zaznacz pole wyboru Provide a menu link (wybierz odnośnik menu), żeby wyświetlić trzy pola tekstowe — Menu link title (tytuł odnośnika menu), Parent item (kategoria nadrzędna) i Weight (waga). W polu Menu link title (tytuł odnośnika menu) wpisz opis zawartości artykułu, mając na uwadze to, że będzie on pojawiać się w menu, więc powinien być możliwie krótki. Z listy rozwijanej Parent item (kategoria nadrzędna) wybierz opcję Main menu (odnośnik podstawowy) — na razie to jedyne menu zdefiniowane na stronie. Jeśli pozycje menu mają być sortowane alfabetycznie, pozostaw ustawienie parametru Weight (waga) na wartości 0. Aby zastąpić sortowanie alfabetyczne inną, wybraną przez siebie kolejnością wpisów w menu, przypisz każdemu z nich odpowiednią wagę z listy dostępnych wartości. Im niższa wartość, tym „lżejszy” wpis w menu. W spisach poziomych lżejsze pozycje pojawiają się bardziej z lewej strony, w spisach pionowych są umieszczane na górze. Zdefiniowanie wagi pozycji menu staje się istotne na przykład wtedy, gdy chcesz, by odnośnik do strony głównej pojawiał się zawsze na pierwszym miejscu menu. Aby wymusić ten efekt, przypisz stronie domowej najniższą wartość z dostępnych na liście wag.

31

ROZDZIAŁ 2. „ TWORZENIE TREŚCI I ORGANIZOWANIE JEJ

Rysunek 2.7. Kliknij zakładkę Menu settings (ustawienia menu) i określ parametry wpisów Kliknij przycisk Save (zachowaj). Wpisy dodane do menu zostaną zapamiętane i od tej chwili będą pojawiać się w menu głównym. Dodana właśnie pozycja powinna być widoczna po prawej stronie nagłówka (w niebieskim obszarze ekranu), co ilustruje rysunek 2.8.

Rysunek 2.8. Menu zawiera teraz nową pozycję Kliknij nową pozycję menu, by przenieść się na odpowiadającą jej stronę. Jeżeli usuniesz wpis uwzględniony w menu, odpowiednia jego pozycja zostanie również automatycznie usunięta.

Informacje o wersji Czy zdarzyło Ci się kiedykolwiek wprowadzić zmiany w dokumencie, zapisać je, a potem uświadomić sobie, że popełniłeś błąd, który powinieneś naprawić? Czy zdarzyło Ci się to kiedykolwiek po zamknięciu dokumentu Microsoft Word, kiedy jest już za późno na przywrócenie poprzedniej wersji pliku? Prędzej czy później nadejdzie pora, gdy zechcesz dokonać zmian w opublikowanej zawartości strony, ale po uprzednim przygotowaniu sobie kopii istniejącego aktualnie materiału. Drupal oferuje Ci narzędzie, które pozwala wykonać nową wersję wpisu (kopię) i zapisać ją obok poprzedniej. Otwórz ponownie treść testowego artykułu i przewiń zawartość formularza edycji w dół do miejsca, w którym znajduje się pionowe menu. Kliknij zakładkę Revision information (informacje o wersji). Obok zakładki pojawi się pole wyboru Create new revision (stwórz nową wersję). Zaznacz to pole i wpisz powód wprowadzania zmian (rysunek 2.9).

32

POZOSTAŁE OPCJE ZARZĄDZANIA TREŚCIĄ

Rysunek 2.9. Podaj opis wprowadzonych zmian Po opisaniu zmian kliknij przycisk Save (zachowaj). System Drupal będzie wyświetlać wpis dotyczący korekty po kliknięciu odnośnika Revisions (wersje). Wygląd strony prezentuje rysunek 2.10.

Rysunek 2.10. Obok tytułu wpisu pojawił się nowy odnośnik — Revisions (wersje) Po kliknięciu odnośnika Revisions (wersje) w oknie przeglądarki pojawi się strona, na której będą wypisane wszystkie poprzednie wersje wpisu oraz aktualna (rysunek 2.11).

Rysunek 2.11. Na jednej stronie umieszczono odnośniki do wszystkich wersji wpisu Klikając datę i godzinę utworzenia poprzedniego wpisu, możesz podejrzeć jego zawartość. Jeżeli zechcesz przywrócić poprzednią wersję wpisu, kliknij przycisk Wstecz umieszczony w oknie przeglądarki, dzięki czemu powrócisz do listy wszystkich zmian wpisu, a następnie kliknij odnośnik revert (cofnij). W ten sposób bieżąca wersja wpisu zostanie zastąpiona poprzednią. Kliknięcie odnośnika revert (cofnij) spowoduje wyświetlenie komunikatu, w którym zostaniesz poproszony o potwierdzenie swojej decyzji. Kliknięcie odnośnika revert (cofnij) oznacza usunięcie nowej publikacji wpisu i zastąpienie jej starą. Cały opisany tu proces mógł zajść, ponieważ na początku wprowadzania zmian zażądałeś, aby Drupal utworzył nową wersję wpisu na podstawie kopii starej wersji. Można ominąć ten krok i skorzystać z funkcji automatycznego tworzenia kopii wpisu w chwili wprowadzania jakichkolwiek zmian w treściach danego typu. Szczegółowy opis tej procedury znajdziesz w dalszej części rozdziału.

33

ROZDZIAŁ 2. „ TWORZENIE TREŚCI I ORGANIZOWANIE JEJ

Ustawienia adresu URL Być może zwróciłeś uwagę na fakt, że wszystkie adresy URL prowadzące do wpisów na Twojej stronie są tworzone według schematu http://localhost/node/1. Fragment adresu node informuje Cię o tym, że Drupal wyświetla właśnie pojedynczy segment serwisu (node), natomiast pojawiająca się po nim liczba to identyfikator wyświetlanego segmentu. W omawianym przypadku dokonujemy zmian w pierwszym wprowadzonym wpisie, więc jego identyfikator ma wartość 1. Dodawanie poszczególnych segmentów serwisu będzie zwiększać tę wartość o 1. Wprawdzie adres http://localhost/node/1 prowadzi do interesującej nas treści, ale taki adres nie zapada łatwo w pamięć ani nie pojawia się wysoko w wynikach wyszukiwania. Na szczęście Drupal pozwala zastąpić go innym, bardziej przyjaznym ciągiem znaków. Kliknij odnośnik Edit (edytuj) umieszczony po prawej stronie tytułu wpisu i przewiń zawartość formularza w dół. W pionowym menu otwórz zakładkę URL path settings. W tym miejscu możesz utworzyć tak zwany alias, czyli alternatywny adres URL, który będzie prowadzić do zawartości kryjącej się dotąd pod adresem http://localhost/node/1. W polu URL alias (alternatywny URL) wpisz nowy adres, lepiej opisujący treść wpisu (rysunek 2.12).

Rysunek 2.12. Zmiana adresu URL strony na bardziej opisowy „ Uwaga: Poszczególne słowa adresu URL muszą być oddzielone od siebie dywizem (-), a nie znakiem spacji.

Po wpisaniu nowego aliasu URL dla danego wpisu, naciśnij znajdujący się na dole formularza przycisk Save (zachowaj). W przykładzie, który tu omawiam, nowy adres przyjmuje kształt http://localhost/ strona-probna. Nowy adres jest w pełni czytelny dla człowieka i, co chyba ważniejsze, ułatwia pracę silnikom wyszukiwania, ponieważ jest lepiej powiązany z zawartością strony niż adres generowany automatycznie. Nadawanie stronom adresów alternatywnych jest bardzo ważnym elementem pracy nad serwisem WWW, ale wizja przypisywania ręcznie aliasu każdej podstronie jest co najmniej nieprzyjemna. Na szczęście istnieje moduł systemu Drupal, który automatycznie wykonuje konwersję adresu domyślnego na „przyjazny” — wystarczy go zainstalować i włączyć. Moduł ten nazywa się Pathauto. Opis procesu instalacji modułów, również Pathauto, znajduje się w rozdziale 8.

Ustawienia odpowiedzi Jeżeli uruchomisz odpowiednią opcję systemu Drupal, każdy z internautów odwiedzających Twoją stronę zyska możliwość komentowania zawartości poszczególnych wpisów. W tym celu kliknij odnośnik Edit (edytuj) i przewiń zawartość formularza w dół. W pionowym menu otwórz zakładkę Comment settings (ustawienia odpowiedzi). Po jej otwarciu na ekranie pojawi się okno widoczne na rysunku 2.13.

34

POZOSTAŁE OPCJE ZARZĄDZANIA TREŚCIĄ

Rysunek 2.13. Ustawienia opcji komentowania Zaznacz w formularzu opcję Open (włączony), a następnie kliknij przycisk Save (zachowaj). Strona wpisu ulegnie natychmiast zasadniczej zmianie, ponieważ pod wpisem pojawi się pole formularza wysyłania odpowiedzi (rysunek 2.14).

Rysunek 2.14. Od tej pory odwiedzający mogą komentować Twoje wpisy Z chwilą uruchomienia tej opcji odwiedzający zyskają możliwość odpowiadania na Twoje wpisy (oczywiście przy założeniu, że dopuścisz otrzymywanie komentarzy od anonimowych użytkowników; kwestię określania uprawnień poruszę w rozdziale 6.). Spróbuj wpisać coś w polach Subject (tytuł) i Comment (odpowiedź), a następnie kliknij przycisk Save (zachowaj). Twoja odpowiedź powinna pojawić się w sekcji strony Comments (odpowiedzi). Jeżeli jesteś autorem wpisu na stronie lub jej administratorem, masz prawo edytować, usuwać i odpowiadać na komentarze. Aby wykonać którąś z tych czynności, kliknij odpowiedni odnośnik umieszczony pod wybraną odpowiedzią. Odpowiedzi będą pojawiać się w kolejności chronologicznej. Ponieważ jesteś administratorem strony, masz prawo zadecydować o tym, w jaki sposób będą one uporządkowane — od najstarszych czy od najnowszych na szczycie strony. W rozdziale 10. znajdziesz więcej szczegółów na temat zmiany ustawienia domyślnego porządku wyświetlania komentarzy. Jednocześnie możesz włączyć lub wyłączyć opcję udzielania odpowiedzi oddzielnie dla każdego wpisu, co w połączeniu z możliwością akceptowania bądź odrzucania komentarzy daje Ci absolutną kontrolę nad charakterem strony. Ponadto istnieje opcja umożliwiająca „dziedziczenie” ustawień odpowiadania na wpisy dla konkretnego rodzaju wpisu, co oznacza, że każdej treści danego typu zostaną przypisane zdefiniowane uprzednio zasady. O ustawianiu globalnych parametrów serwisu, między innymi właśnie opcji odpowiadania, napiszę szerzej w rozdziale 10.

35

ROZDZIAŁ 2. „ TWORZENIE TREŚCI I ORGANIZOWANIE JEJ

Kto, kiedy? Raz jeszcze kliknij odnośnik Edit (edytuj) umieszczony obok tytułu wpisu i przewiń zawartość formularza edycji na dół. Otwarcie zakładki Authoring information (kto, kiedy) pionowego menu spowoduje wyświetlenie w formularzu ekranu widocznego na rysunku 2.15.

Rysunek 2.15. Wpisz tu informacje o autorze Te pola pozwalają określić, kto dodał dany wpis na stronie i kiedy miało to miejsce. Z zakładki tej korzysta się raczej rzadko, ale w razie potrzeby możesz zmienić te informacje.

Opcje publikacji Ostatnią pozycją pionowego menu formularza edycji jest zakładka Publishing options (opcje publikacji). Kliknij odnośnik Edit (edytuj), znajdujący się obok tytułu wpisu, i przewiń zawartość formularza na sam dół. Otwórz zakładkę Publishing options (opcje publikacji), żeby zapoznać się z jej zawartością (rysunek 2.16).

Rysunek 2.16. Opcje publikacji wpisu Ten ekran znasz już z etapu tworzenia wpisu na stronie. Wtedy zaznaczyłeś na nim opcję Promoted to front page (na stronie głównej). Ta sama zakładka pozwoli Ci cofnąć publikację wybranej treści, dzięki czemu wpis będzie niewidoczny dla osób odwiedzających stronę, ale nadal dostępny dla Ciebie (autora) oraz dla administratorów serwisu. Dzięki tej często niedocenianej funkcji systemu Drupal możesz przekonać się, jak dany wpis będzie prezentował się w serwisie, zanim udostępnisz go szerszej publiczności. Ta sama funkcja pozwala przygotować artykuł zawczasu, a opublikować go jakiś czas później. 36

USUWANIE TREŚCI

Zaznaczenie pola wyboru Promoted to front page (na stronie głównej) jest informacją dla systemu Drupal, że dany spis ma pojawiać się zawsze na stronie głównej serwisu. Jeśli usuniesz to zaznaczenie, wpis zniknie ze strony głównej, ale będzie nadal dostępny po podaniu adresu URL, który określiłeś, wykonując polecenia z jednego z poprzednich podrozdziałów, albo poprzez adres http://localhost/node/X (gdzie X jest kolejnym numerem identyfikacyjnym danego wpisu). Istnieją jeszcze inne metody umieszczania wpisów na stronie głównej serwisu, o których wspomnę podczas omawiania bardziej zaawansowanych rozwiązań w systemie Drupal. Opcja Sticky at the top of list (przyklejony) uruchamia mechanizm zachowywania wpisu zawsze na najwyższej pozycji listy. Szczegóły jej działania opiszę szerzej w rozdziale 10. Jest ona przydatna przede wszystkim wtedy, gdy chcesz podkreślić wyjątkową wagę treści jakiegoś artykułu, na przykład przekazać odwiedzającym zasady umieszczania uwag do treści wpisów.

Usuwanie treści Do tej pory skupiałem się na tworzeniu wpisów i edytowaniu ich zawartości, nie wspomniałem natomiast ani słowa o usuwaniu segmentów serwisu. Zdarzają się przypadki, kiedy treść wpisu dezaktualizuje się, co kwalifikuje ją do usunięcia z serwisu. Proces usuwania wpisu jest bardzo prosty. Oczywiście najpierw musisz utworzyć jakiś artykuł, kierując się wskazówkami z tego rozdziału. Jego treść i tytuł nie mają znaczenia, ponieważ sam artykuł zostanie usunięty niemal natychmiast po jego opublikowaniu. Upewnij się teraz, czy zaznaczyłeś w zakładce Publishing options (opcje publikacji) obydwa pola Published (do publikacji) i Promoted to the front page (na stronie głównej) — chcemy, żeby artykuł pojawił się na stronie głównej serwisu. Po opublikowaniu kliknij odnośnik Edit (edytuj) umieszczony obok tytułu wpisu i przewiń zawartość formularza edycji na sam dół (rysunek 2.17).

Rysunek 2.17. Przygotowania do usunięcia wpisu Na dole strony znajdziesz przycisk Delete (usuń). Kliknij go, a na ekranie pojawi się ekran Are you sure to delete (czy na pewno chcesz usunąć wpis). Kliknięcie przycisku Delete (usuń) spowoduje fizyczne usunięcie wpisu z bazy danych systemu Drupal. Po usunięciu wpisu zostaniesz przeniesiony na stronę główną, gdzie przekonasz się na własne oczy, że wpis został usunięty, a odpowiadająca mu pozycja menu zniknęła.

Odszukiwanie wpisów Po pewnym czasie od utworzenia na Twojej stronie będzie znajdować się zapewne kilkaset wpisów, więc prędzej czy później narzędzie do wyszukiwania zawartości w serwisie stanie Ci się niezbędne. Oczywiście, aby odnaleźć wybrany wpis, możesz: • udać się na stronę serwisu, na której został on umieszczony, aby dokonać jego edycji; • wpisać jego adres URL w pasku adresowym przeglądarki; • skorzystać z paska wyszukiwania w przeglądarce; • posłużyć się stroną wypisującą zawartość serwisu.

37

ROZDZIAŁ 2. „ TWORZENIE TREŚCI I ORGANIZOWANIE JEJ

Zadziała każda z podanych tu metod, ale najczęściej stosuje się rozwiązanie polegające na użyciu listy zawartości serwisu. Aby otworzyć stronę z listą, kliknij odnośnik Content (zawartość), znajdujący się na pierwszej pozycji menu w czarnym pasku. Na ekranie pojawi się formularz przedstawiony na rysunku 2.18.

Rysunek 2.18. Ekran zawartości Strona ta daje możliwość sortowania zawartości serwisu według tytułu, rodzaju, autora, statusu lub daty aktualizacji. W celu wyboru parametru sortowania należy kliknąć nagłówek odpowiedniej kolumny. Możesz też filtrować wyniki sortowania (ograniczać liczbę wyświetlanych wpisów), wybierając status wpisu (na przykład opublikowany lub niepublikowany) z rozwijanej listy, znajdującej się na górze strony. Tam też znajdziesz drugą listę, która pozwala filtrować wyniki wyszukiwania zgodnie z ich typem (na przykład artykuł lub strona). Kliknij przycisk Filter (filtruj), żeby odświeżyć listę wyników, ograniczając ich liczbę do tych, które spełniają podane kryteria. Możesz otworzyć zawartość każdego z wpisów, klikając jego tytuł. Możesz też usunąć go lub edytować, korzystając w tym celu z odnośników delete (usuń) i edit (edytuj). Lista zawartości jest niezwykle wygodna, gdy chcesz wykonać jedną z następujących czynności — opublikować, cofnąć publikację, usunąć, przenieść na stronę główną, usunąć ze strony głównej, przykleić lub odkleić — dla większej liczby wpisów naraz. Aby wykonać działania na wielu wpisach, zaznacz pola wyboru przy tytułach tych wybranych, wskaż działanie, jakie ma zostać wykonane, i kliknij przycisk Update (aktualizuj).

Podsumowanie Pisząc ten rozdział, skupiłem się przede wszystkim na tematach związanych z tworzeniem treści serwisu, określaniem parametrów publikacji oraz na zagadnieniach związanych z aktualizowaniem wpisów i ich usuwaniem z serwisu. Dowiedziałeś się, w jaki sposób dodawać odnośnik do artykułu do listy menu, udostępniając zawartość wpisu czytelnikom, a także jak tworzyć łatwe do zapamiętania adresy URL, które jednocześnie będą sprzyjać promowaniu Twojej strony w wyszukiwarkach internetowych. W tej chwili dysponujesz juz podstawową wiedzą, niezbędną do tworzenia prostych stron WWW w systemie Drupal, jednak odradzam Ci przerywanie nauki już w tym miejscu, ponieważ postępując tak, straciłbyś okazję do poznania bardziej zaawansowanych, a niezwykle potężnych narzędzi, jakie Drupal ma do zaoferowania. W dalszych rozdziałach opiszę etapy tworzenia stron o bardziej rozbudowanej strukturze, pokażę, w jaki sposób można przygotować spis zawartości serwisu, jak kontrolować dostęp do poszczególnych części serwisu oraz jak zarządzać jego zawartością.

38

ROZDZIAŁ 3 „„„

Tworzenie kont użytkowników i zarządzanie nimi Teraz, gdy Twój serwis już powstał i jest gotów do działania, staniesz przed koniecznością podjęcia kilku ważnych decyzji. Przede wszystkim musisz zastanowić się, czy ktoś poza Tobą powinien otrzymać prawa administrowania zawartością serwisu. Ponadto musisz określić, czy serwis ma być dostępny dla wszystkich, czy też prawo do zapoznawania się z pełną zawartością i korzystanie z wszystkich funkcji serwisu będą dostępne wyłącznie dla zarejestrowanych i zalogowanych użytkowników. W tym rozdziale opiszę te funkcje systemu Drupal, które decydują o sposobie traktowania osób odwiedzających serwis, a także przedstawię narzędzia pozwalające konfigurować ustawienia konta użytkownika tak, by ograniczyć jego prawo do decydowania o kształcie serwisu.

Użytkownicy, rangi i uprawnienia O tym, kto będzie mógł podejmować pewne działania w Twoim serwisie oraz jaki będą miały one zasięg, decydują ustawienia bezpieczeństwa systemu Drupal. Dzięki tym ustawieniom określasz możliwości oglądania zawartości witryny, tworzenia nowych treści, aktualizowania starych i usuwania wpisów w zależności od rodzaju konta użytkownika, przypisanej mu rangi i nadanych uprawnień. Użytkownicy (czyli odwiedzający witrynę) są dzieleni przez system Drupal 7 na dwie główne kategorie — użytkowników anonimowych i użytkowników uwierzytelnionych. Użytkownicy anonimowi korzystają z serwisu bez logowania polegającego na podaniu identyfikatora i hasła. Jeżeli odwiedzisz witrynę www.cnn.com bez podawania loginu i hasła, zostaniesz zaklasyfikowany jako użytkownik anonimowy. System Drupal pozwala użytkownikom zachować anonimowość, jednocześnie dając administratorowi narzędzia niezbędne do ograniczenia możliwości podejmowania działań przez takich użytkowników. Użytkownicy uwierzytelnieni identyfikują się własną nazwą i powiązanym z nią hasłem. Wkrótce opiszę, w jaki sposób tworzy się nazwy użytkowników i ich hasła, na razie jednak liczy się to, byś nauczył się odróżniać dwie kategorie użytkowników. Rangi to mechanizm systemu Drupal, który pozwala administratorowi serwisu definiować podkategorie dla uwierzytelnionych użytkowników. Podział na rangi może pokrywać się z przynależnością do konkretnego działu w firmie (osobna ranga dla pracowników kadr, osobna dla działu zakupów, sprzedaży, marketingu i obsługi klienta), ale może też definiować charakter działań w serwisie (ranga dla twórców zawartości, dla korektorów), określać dostęp do poszczególnych działów serwisu (towary, wsparcie, sprzedaż, strona główna) czy zawierać dowolną inną definicję, jaką uznasz za niezbędną. Rangi stanowią po prostu narzędzie wprowadzenia w grupie użytkowników uwierzytelnionych kategorii, którym zostaną przypisane konkretne uprawnienia. Każdemu z uwierzytelnionych użytkowników serwisu możesz nadać jedną lub więcej rang (np. możesz przypisać do wybranego konta rangi powiązane z działaniem w dziale sprzedaży, tworzeniem treści i z towarami), ale możesz też nie nadawać mu żadnej.

ROZDZIAŁ 3. „ TWORZENIE KONT UŻYTKOWNIKÓW I ZARZĄDZANIE NIMI

Uprawnienia w systemie Drupal to narzędzie, dzięki któremu określasz możliwości działań użytkowników przypisanych do poszczególnych rang. Każdej ze zdefiniowanych rang możesz przypisywać dziesiątki uprawnień, możesz też cofać je do woli. Uprawnienia mogą obejmować przeróżne rodzaje aktywności w serwisie — tworzenie nowych stron, dodawanie nowych artykułów, edytowanie artykułów bez względu na to, kto jest ich autorem, prawo do przeszukiwania zawartości serwisu, prawo do zakładania nowych kont użytkowników. To właśnie wypadkowa wszystkich uprawnień przypisanych do danej rangi decyduje o tym, co przydzielony do niej użytkownik może zdziałać na stronie. Mając do dyspozycji możliwość zakładania kont użytkowników i przydzielania im rang o zdefiniowanych wcześniej uprawnieniach, zyskujesz bardzo elastyczne narzędzie, które pozwoli Ci zabezpieczyć dostęp do najważniejszych fragmentów serwisu i jego zawartości.

Konta użytkowników Każda z witryn tworzonych w systemie Drupal ma przynajmniej jedno konto użytkownika — konto administratora. Konto to zostaje utworzone automatycznie w czasie instalowania systemu Drupal. To za jego pomocą zarządzasz zawartością strony. Konto to wystarcza w zupełności wszystkim właścicielom serwisów, który samodzielnie tworzą ich zawartość i administrują treścią. Jeśli przewidujesz, że w przyszłości mogą pojawić się nowi autorzy treści na stronie lub osoby uprawnione do zarządzania jej kształtem, powinieneś zawczasu zdecydować, którego z mechanizmów tworzenia kont będziesz chciał używać. System Drupal oferuje Ci trzy alternatywne metody zakładania kont. • Użytkownik sam zakłada konto, które staje się aktywne bez akceptacji ze strony administratora. • Użytkownik wysyła prośbę o utworzenie konta, ale staje się ono aktywne dopiero po uzyskaniu akceptacji administratora. • Tylko administrator ma prawo zakładać nowe konta. Twoja decyzja powinna zależeć przede wszystkim od charakteru prowadzonego przez Ciebie serwisu internetowego. Jeśli jego głównym celem jest udzielanie informacji i wiesz, że użytkownicy strony nie będą potrzebowali własnych kont, by zapoznać się z treścią stron serwisu czy uczestniczyć w jego tworzeniu (choćby poprzez dodawanie komentarzy), wtedy najrozsądniejszym wyborem wydaje się być opcja trzecia. W ten sposób unikniesz wprowadzania użytkowników w błąd poprzez wywoływanie wrażenia, że do poznania zawartości strony niezbędne jest zalogowanie się. Jeżeli serwis oferuje materiały lub funkcje, które nie są przeznaczone dla szerszej publiczności, wprowadzenie kont użytkowników staje się nieodzowne. W takim przypadku wybór metody postępowania zależy przede wszystkim od tego, czy chcesz pozwolić użytkownikom na zakładanie kont bez przeprowadzania dodatkowej weryfikacji (rozwiązanie pierwsze), czy też chcesz potwierdzać w jakiś sposób ich tożsamość (rozwiązanie drugie). Wybór metody tworzenia kont jest jednym z kroków procesu definiowania ustawień konta użytkownika w serwisie zbudowanym w systemie Drupal.

Konfigurowanie konta użytkownika Zanim podejmiesz się utworzenia pierwszego konta użytkownika, powinieneś zajrzeć na stronę zarządzania kontami i sprawdzić, a może także zmienić, ogólne zasady pracy w serwisie. Aby otworzyć stronę konfiguracji konta, kliknij odnośnik Configuration (konfiguracja) umieszczony na szczycie strony (widoczny tylko, jeśli jesteś zalogowany do konta administratora). Na ekranie pojawi się strona zatytułowana Configuration (konfiguracja). Na samej górze znajduje się grupa ustawień zatytułowana People (użytkownicy). Kliknij odnośnik Account settings (ustawienia konta), który zaprowadzi Cię na stronę zawierającą cały szereg opcji konfiguracji konta użytkownika. Na tej stronie możesz zdefiniować następujące ustawienia: • nazwę anonimowego użytkownika — w większości przypadków pozostawienie nazwy domyślnej sprawdza się wyśmienicie;

40

KONFIGUROWANIE KONTA UŻYTKOWNIKA

• rangę skojarzoną z uprawnieniami konta administratora (zasady tworzenia rang opiszę w dalszej części tego rozdziału) — wybrana ranga stanie się domyślną dla administratora modułów dodawanych później do systemu. Najrozsądniej jest pozostawić w tym miejscu ustawienie wartości administrator. Następnym zestawem opcji są definicje ustawień zebrane w grupie Registration and Cancellation (rejestracja i usuwanie). Służą one określeniu statusu konta użytkownika w systemie Drupal. Pierwsza grupa opcji (Who can register accounts? — sposób tworzenia konta) odpowiada za wybór metody tworzenia nowych kont. • Jeżeli tylko administrator ma mieć prawo zakładania nowych kont użytkowników, wybierz pierwszą z opcji, Administrators Only (tylko administratorzy mogą tworzyć nowe konta użytkowników). • Jeżeli każdy odwiedzający stronę ma zyskać możliwość utworzenia własnego konta, wybierz opcję Visitors (odwiedzający mogą tworzyć konta użytkowników bez konieczności czekania na zatwierdzenie). • Jeżeli odwiedzający ma mieć prawo wystąpienia z prośbą o utworzenie konta, ale jej rozpatrzenie ma należeć do obowiązków administratora, wybierz trzecią opcję, Visitors, but administrator approval is requested (odwiedzający mogą tworzyć konta użytkowników, które następnie muszą zostać zatwierdzone). Żeby zademonstrować działanie tego systemu, wybiorę teraz pierwszą z opcji, czyli tę, w której tylko administrator może tworzyć nowe konta użytkowników. Kolejna opcja, Require e-mail verification (wymagaj weryfikacji adresów e-mail podawanych przez użytkowników tworzących nowe konta), jest domyślnie zaznaczona i sugeruję pozostawić ją w tym stanie. Dzięki niej system Drupal wysyła do każdego nowo rejestrowanego użytkownika wiadomość e-mail z prośbą o potwierdzenie decyzji o utworzeniu konta. Jest to forma zabezpieczenia się przed skryptami zakładającymi nowe konta w serwisie, skuteczna o tyle, że niewiele programów jest na tyle sprawnych, by poprawnie reagować na wiadomości z żądaniem weryfikacji. Dalej znajdziesz grupę ustawień (When cancelling a user account — w chwili likwidacji konta użytkownika), które określają, co stanie się z wpisami tworzonymi przez użytkownika po usunięciu jego konta z systemu. W większości przypadków najrozsądniejszym rozwiązaniem jest pozostawienie domyślnej opcji Delete the account and keep all content (usuń konto, zachowując wszystkie wpisy). Oczywiście możesz zmienić ją na dowolną inną, która bardziej pasuje do charakteru Twojego serwisu. Ustawienia z grupy Personalization (personalizacja) pozwalają określić, czy użytkownik będzie mógł dodawać zdjęcie i podpis do swojego profilu. Na potrzeby przykładu pozostawię domyślne ustawienia tych opcji, ale oczywiście możesz włączać i wyłączać je w dowolnej konfiguracji, w zależności do tego, czy zechcesz udostępnić te funkcje użytkownikom swojego serwisu. Pozostałe opcje, znajdujące się na dole strony, zawierają ustawienia wyglądu wiadomości e-mail wysyłanych przez system do użytkowników. Wiadomości te są wysyłane przy okazji zmian w ustawieniach konta, a w tym miejscu panelu konfiguracji określasz ich treść. Możesz przeredagować ją tak, by w każdym z przypadków odpowiadała Twoim indywidualnym potrzebom. Przejrzyj zawartość zakładek pionowego menu i sprawdź, jak wyglądają komunikaty generowane przez system i wysyłane do użytkowników. System Drupal daje Ci także możliwość definiowania pól, które każdy z użytkowników będzie musiał wypełnić podczas rejestracji. Jeżeli chcesz uzupełnić domyślny formularz rejestracyjny systemu, który zawiera jedynie pola nazwy użytkownika i hasła, o dodatkowe elementy, na przykład adres czy numer telefonu, otwórz zakładkę Manage Fields (zarządzanie polami), umieszczoną na górze formularza Configuration (konfiguracja). Dodawanie nowego pola do formularza jest bardzo proste. Wystarczy podać opisującą go etykietę, określić systemową nazwę pola i podać typ, który zadecyduje o sposobie wyświetlania pola na ekranie użytkownika (na przykład pole tekstowe). Rysunek 3.1 przedstawia etap tworzenia nowego pola, które ma zdradzać lokalizację użytkownika. Etykietą pola jest Location (lokalizacja), nazwą user_location, natomiast samo pole będzie zbierać dane tekstowe (Form element to edit the data) i zapisywać je w postaci tekstu (Type of data to store).

41

ROZDZIAŁ 3. „ TWORZENIE KONT UŻYTKOWNIKÓW I ZARZĄDZANIE NIMI

Rysunek 3.1. Aktualizacja ustawień konta użytkownika Kliknięcie przycisku Save (zachowaj) otworzy następne formularze konfiguracyjne, w których będziesz mógł określić dodatkowe parametry utworzonego właśnie pola. Dla celów demonstracyjnych (a także w przypadku tworzenia typowego pola formularza rejestracyjnego) wystarczą domyślne ustawienia proponowane przez system. Skoro zakończyłeś już definiowanie ustawień kont użytkowników, pora zająć się określeniem rang i przydzieleniem im odpowiednich uprawnień.

Tworzenie rang Ranga użytkownika jest określeniem jego przynależności do konkretnej grupy użytkowników, których konta dają im identyczne prawa i obowiązki wewnątrz serwisu. Gdybyś prowadził serwis szkoły podstawowej, mógłbyś zdefiniować rangi nauczycieli, uczniów i pozostałego personelu. Jeżeli witryna pełni rolę serwisu społecznościowego, możesz utworzyć rangi autorów tekstu, recenzentów, publikujących i administratorów forum. Najtrudniejszym etapem tworzenia rang jest zdecydowanie, jakich będzie potrzebować Twój serwis. Ogólna zasada stwierdza, że łatwiej zarządza się serwisem, dla którego zdefiniowano mniej rang, ponieważ uprawnienia nadaje się każdej randze z osobna. Niestety, mniejsza liczba rang oznacza jednocześnie mniejszą elastyczność, zatem mogę z całą pewnością stwierdzić, że zachowanie odpowiednich proporcji ma tu kluczowe znaczenie. Pamiętaj też, że prawdopodobnie z czasem, gdy zorientujesz się, kto odwiedza Twój serwis, czeka Cię wprowadzanie modyfikacji w definicjach rang. Z przykrością stwierdzam, że nie istnieje sposób wyliczenia liczby potrzebnych w serwisie rang, ale pocieszające jest to, że w zasadzie każda liczba, która Ci odpowiada, jest dobra. W dalszych przykładach będę korzystać z dwóch ogólnych rang. Pierwszą z nich będzie ranga dla ludzi powiązanych z organizacją utrzymującą witrynę, do obowiązków których będzie należeć tworzenie treści, publikowanie jej i zarządzanie ogólnym charakterem strony (np. tworzenie menu i innych tego typu elementów). Druga ranga będzie przeznaczona dla gości, którym zapewni się dostęp do „prywatnej” części witryny, jeśli przejdą pomyślnie proces uwierzytelniania (czyli dla użytkowników posiadających konto i hasło w serwisie). Ci użytkownicy będą mieli prawo przeglądać całą zawartość witryny i komentować ją, ale nie będą mogli dodawać nowych artykułów, edytować już istniejących czy usuwać wybranych wpisów. Aby utworzyć nową rangę użytkowników, zaloguj się do konta administratora, a następnie kliknij odnośnik People (użytkownicy) znajdujący się na górze strony. Mając przed sobą formularz People (użytkownicy), kliknij zakładkę Permissions (uprawnienia). Na stronie Permissions (uprawnienia) znajduje

42

PRZYPISYWANIE UPRAWNIEŃ

się odnośnik Roles (rangi), który otwiera formularz przeglądania, tworzenia, edytowania i usuwania rang. Na samym dole, w kolumnie Name (nazwa) znajduje się puste pole tekstowe. Wpisz w nim nazwę nowej rangi użytkowników. W naszym przykładzie będzie to pracownik firmy (rysunek 3.2).

Rysunek 3.2. Określanie rang na stronie People (użytkownicy) Kliknij teraz przycisk Add role (dodaj rangę). W ten sposób utworzyłeś rangę pracownik firmy. Pod tabelą rang pojawi się natychmiast puste pole, w którym możesz wpisać nazwę kolejnej rangi. W naszym przypadku będzie to użytkownik uprawniony. Użytkownik uprawniony to każdy z odwiedzających stronę, kto posiada konto w serwisie i może przeglądać zawartość przeznaczoną dla ograniczonego grona użytkowników. Użytkownik taki może również komentować treść umieszczaną na stronie przez autorów, ale nie może samodzielnie tworzyć zawartości witryny, zmieniać jej ani usuwać. Nie posiada też żadnych uprawnień administracyjnych. Po wpisaniu w polu tekstowym nazwy użytkownik uprawniony kliknij przycisk Add role (dodaj rangę). Skoro utworzyłeś już nowe rangi, czas zająć się nadaniem im odpowiednich uprawnień.

Przypisywanie uprawnień Uprawnienia stanowią mechanizm kontroli poczynań użytkowników, którym przypisano w serwisie odpowiednie rangi. Rdzeń systemu Drupal oraz każdy z modułów dodatkowych zawiera zestaw zdefiniowanych zawczasu uprawnień, które aktywujesz lub dezaktywujesz dla każdej z rang. Aby przypisać konkretne uprawnienia wybranej randze, zaloguj się jako administrator i kliknij znajdujący się na górze strony odnośnik People (użytkownicy). Po otwarciu tej strony, kliknij zakładkę Permissions (uprawnienia) umieszczoną na górze strony. Wyświetlony formularz posłuży do określania usprawnień każdej ze zdefiniowanych rang (rysunek 3.3). Na tej stronie znajdziesz spis wszystkich dostępnych w serwisie uprawnień oraz wyszczególnienie zdefiniowanych rang użytkowników. Dla każdej z rang możesz zaznaczyć te uprawnienia, które będą jej przydatne (przewiń zawartość strony w dół, żeby zapoznać się z całą listą), oraz usunąć zaznaczenia tych, które nie będą potrzebne. Przewiń teraz zawartość strony do grupy Node (segment) i zaznacz w niej następujące pola dla rangi pracownik firmy: • Create new Article content (tworzenie nowych artykułów), • Create new Basic page content (tworzenie nowych stron), • Edit own Article content (edytowanie zawartości własnych artykułów),

43

ROZDZIAŁ 3. „ TWORZENIE KONT UŻYTKOWNIKÓW I ZARZĄDZANIE NIMI

Rysunek 3.3. Określanie uprawnień użytkowników poszczególnych rang • Edit own Basic page content (edytowanie zawartości własnych stron), • Delete own Article content (usuwanie własnych artykułów), • Delete own Basic page content (usuwanie własnych stron). Przewiń zawartość strony w górę do grupy Comments (odpowiedzi) i zaznacz w niej następujące pola dla rangi Użytkownik uprawniony: • View comments (dostęp do odpowiedzi), • Post comments without approval (dodawanie odpowiedzi bez zatwierdzania), • Edit own comments (edytowanie własnych odpowiedzi). Właśnie utworzyłeś pierwsze, przykładowe rangi użytkowników i nadałeś im odpowiednie uprawnienia. Możesz teraz zająć się tworzeniem kont użytkowników.

Tworzenie konta użytkownika Zdefiniowałeś właśnie rangi użytkowników, nadałeś im odpowiednie uprawnienia, zatem jesteś gotowy do rozpoczęcia prac nad zakładaniem kont użytkowników. Aby utworzyć konto nowego użytkownika, kliknij odnośnik People (użytkownicy) znajdujący się w menu na górze strony. Otworzysz w ten sposób stronę widoczną na rysunku 3.4. Widoczna na rysunku 3.4 lista zawiera spis kont wszystkich użytkowników serwisu. W tej chwili widnieje na niej jedynie konto administratora, utworzone w chwili wykonywania instalacji systemu Drupal. Aby dodać nowego użytkownika do systemu, kliknij odnośnik Add user (dodaj użytkownika) znajdujący się w lewym górnym rogu strony. Otworzysz w ten sposób formularz Add user (dodaj użytkownika) przedstawiony na rysunku 3.5. Za chwilę założymy przykładowe konto użytkownika. Wprowadź te dane w poszczególnych polach. • W polu Username (nazwa użytkownika) wpisz jankowalski. • W polu E-mail address (adres e-mail) wpisz [email protected]. • W polu Password (hasło) wpisz 12jankowalski34.

44

TWORZENIE KONTA UŻYTKOWNIKA

Rysunek 3.4. Tworzenie konta użytkownika

Rysunek 3.5. Formularz dodawania użytkownika 45

ROZDZIAŁ 3. „ TWORZENIE KONT UŻYTKOWNIKÓW I ZARZĄDZANIE NIMI

• W polu Confirm password (potwierdzenie hasła) wpisz 12jankowalski34. • Upewnij się, że w grupie Status (status) zaznaczyłeś opcję Active (aktywna). • W grupie Roles (ranga) zaznacz opcję pracownik firmy. • Zaznacz pole Notify user of new account (powiadomienie o utworzeniu konta). Wybór tej opcji sprawi, że system Drupal wyśle do użytkownika powiadomienie e-mail o pomyślnym założeniu konta. • Kliknij przycisk Create new account (utwórz nowe konto), żeby zapisać wprowadzone dane. • Otwórz kartę List (lista) znajdującą się na górze formularza, żeby wyświetlić aktualną listę kont w serwisie (rysunek 3.6). W tej chwili powinno znajdować się na niej również utworzone przed chwilą konto.

Rysunek 3.6. Wszystkie konta użytkowników w Twoim serwisie Od tej chwili Jan Kowalski może logować się do Twojego serwisu i podejmować w nim działania, na które zezwala ranga pracownik firmy. Zdarzają się przypadki, w których niezbędne jest przeprowadzenie aktualizacji danych użytkownika, na przykład kiedy osoba używająca go zechce zmienić hasło, adres e-mail lub gdy Ty chcesz zmienić uprawnienia rangi czy usunąć jego konto. Odpowiednie funkcje stają się dostępne po kliknięciu odnośnika Edit (edytuj) znajdującego się obok nazwy konta na stronie People (użytkownicy).

Konta zakładane przez użytkowników Jeżeli serwis został skonfigurowany tak, by użytkownik mógł sam założyć konto, a rola administratora ograniczała się wyłącznie do przeprowadzenia weryfikacji, proces zakładania konta będzie przebiegał nieco inaczej. Jeśli dopuściłeś zakładanie konta przez każdego, kto odwiedzi stronę (niezależnie od tego, czy w dalszych krokach będzie potrzebna akceptacja administratora, czy nie), na formularzu logowania, nad przyciskiem Log in (zaloguj), pojawi się odnośnik Create new account (utwórz nowe konto). Widok ekranu logowania znajduje się na rysunku 3.7.

46

KONTA ZAKŁADANE PRZEZ UŻYTKOWNIKÓW

Rysunek 3.7. Masz możliwość założenia nowego konta Po kliknięciu tego odnośnika (o ile nie jesteś zalogowany do serwisu) znajdziesz się na stronie, na której możesz podać propozycję nazwy użytkownika oraz wprowadzić swój adres e-mail (rysunek 3.8). Spróbuj teraz założyć kolejne przykładowe konto, tym razem korzystając z uprawnień osoby odwiedzającej stronę, a nie z uprawnień administratora — podaj nazwę użytkownika i wpisz adres e-mail. (Uwaga: Drupal dopuszcza jednokrotne użycie adresu e-mail w czasie procedury zakładania konta. Jeśli z danym adresem jest już powiązane jakieś konto, system zgłosi błąd podczas ponownej próby wykorzystania tego samego adresu).

Rysunek 3.8. Ekran wprowadzania danych konta Po zakończeniu procedury zakładania konta na Twój adres e-mail zostanie przysłana wiadomość z informacją o utworzeniu nowego wpisu w bazie, a na ekranie pojawi się komunikat: Thank you for applying for an account. Your account is currently pending approval by the site administrator. In the meantime, a welcome message with further instructions has been sent to your e-mail address. (Dziękujemy za zgłoszenie chęci założenia konta. Konto oczekuje w tej chwili na zatwierdzenie przez administratora witryny. Tymczasem hasło i dalsze instrukcje zostały przesłane na podany adres e-mail). Gdy odwiedzający założy nowe konto w systemie, a Ty będziesz musiał je zatwierdzić, udaj się do strony People (użytkownicy) i edytuj dane interesującego Cię konta. Zmień jego status z zablokowanego na aktywny. Dopóki nie przeprowadzisz tej operacji, użytkownik nie będzie mógł logować się do serwisu za pomocą swojego identyfikatora i hasła. Jeśli zezwoliłeś na tworzenie konta użytkownika bez potrzeby uzyskania akceptacji ze strony administratora, odwiedzający będzie mógł zalogować się do serwisu natychmiast po założeniu konta.

47

ROZDZIAŁ 3. „ TWORZENIE KONT UŻYTKOWNIKÓW I ZARZĄDZANIE NIMI

Zmiana hasła Jednym z bardzo wygodnych rozwiązań w systemie Drupal, które pozwalają znacznie oszczędzić czas administratora, jest możliwość samodzielnego zmieniania hasła przez użytkownika. Dzięki tej funkcji administrator nie musi odpowiadać na prośby o dokonanie zmiany hasła. Gdy wylogujesz się z serwisu (odpowiedni odnośnik znajdziesz w prawym górnych rogu okna przeglądarki), zostaniesz automatycznie skierowany do ekranu logowania (odsyłam do rysunku 3.7). Tam, nad przyciskiem logowania, znajdziesz odnośnik Request new password (prześlij nowe hasło). Po kliknięciu tego odnośnika otwiera się strona, na której użytkownik może podać albo swój identyfikator, albo adres e-mail. Wpisanie poprawnego identyfikatora lub adresu e-mail (poprawnego, czyli istniejącego w bazie danych) sprawi, że system Drupal wyśle na wskazany adres (lub na adres powiązany z podanym identyfikatorem) wiadomość zawierającą odnośnik, za pomocą którego można jednokrotnie zalogować się do swojego konta i dokonać tam zmiany hasła.

Podsumowanie W tym rozdziale opisałem proces konfigurowania ustawień kont użytkowników, tworzenia nowych rang tych kont oraz przypisywania rangom odpowiednich uprawnień. Wskazałem dylematy, z jakimi przyjdzie Ci się zmierzyć w czasie pierwszych dni pracy nad kształtem serwisu — wspomniałem między innymi kwestię ustalenia praw administrowania zasobami serwisu i możliwości dodawania treści, a także określenia, kto będzie miał prawo decydować o tych sprawach. Jeśli zdecydujesz się dopuścić innych ludzi do pracy nad zawartością serwisu, będziesz musiał określić podstawowe uprawnienia tych użytkowników, co realizuje się najlepiej, tworząc odpowiednie rangi kont użytkowników i definiując powiązane z nimi uprawnienia. Będziesz też musiał zdecydować, kto i w jaki sposób będzie miał prawo dodawać nowe konta w serwisie. System Drupal oferuje trzy sposoby tworzenia kont — bezpośrednio przez odwiedzającego stronę i bez potrzeby uzyskiwania akceptacji administratora, przez odwiedzającego, lecz dopiero po weryfikacji ze strony administratora oraz wyłącznie przez administratora. Po podjęciu decyzji we wspomnianych powyżej sprawach możesz przystąpić do zakładania kont użytkowników. Liczba kont jest nieograniczona, ale pamiętaj, jeśli użytkownicy nie będą w stanie odnaleźć interesujących ich informacji, szybko stracą zainteresowanie Twoim serwisem. Tu właśnie na scenę wkracza taksonomia, której poświęcę następny rozdział.

48

ROZDZIAŁ 4 „„„

Taksonomia

Taksonomia jest jedną z najbardziej niedocenianych i najmniej zrozumiałych dla ogółu funkcji systemu Drupal. Nowi użytkownicy są zazwyczaj tak przytłoczeni mnogością innych rozwiązań, że pomijają to, co jest być może najpotężniejszym narzędziem w systemie Drupal. W tym rozdziale pokażę Ci, jak tworzyć terminy taksonomii i jak za ich pomocą segregować zawartość serwisu w sposób, który pozwoli później łatwo odnajdywać informacje związane z konkretnym tematem.

Przegląd taksonomii Taksonomia to, mówiąc najprościej, mechanizm pozwalający przydzielać zawartość serwisu do różnych kategorii. Jedną z podstawowych korzyści płynących z istnienia bibliotek jest to, że bibliotekarze podjęli trud opisania każdej z książek, każdego z filmów, magazynów czy wydawnictw muzycznych znajdujących się na półkach ich przybytku i skrupulatnie przydzielili je do odpowiednich kategorii, by ludzie korzystający z biblioteki mogli bez większych problemów zlokalizować je na półkach. Dzięki temu rozwiązaniu, znajdując interesującą Cię pozycję, docierasz od razu do innych, powiązanych z nią tematycznie dzieł. Mógłbyś na przykład odwiedzić bibliotekę i odnaleźć w niej dział książek związanych z projektowaniem stron internetowych. Zastaniesz w nim książki poświęcone wielu, pozornie niepowiązanym ze sobą, zagadnieniom — od podręczników do programu Photoshop, w którym tworzy się grafikę, aż po podręczniki dla programistów PHP. Książki te będą stały na jednej półce dlatego, że bibliotekarz podjął trud usystematyzowania zbiorów biblioteki. Pomyśl sobie, jak musiałoby wyglądać przeszukiwanie zbiorów bibliotecznych, gdyby wszystkie zasoby były ustawione na półkach jakkolwiek, bez zważania na temat publikacji, jej tytuł, autora czy kategorię. Po kilku próbach odnalezienia interesującej Cię pozycji metodą „na chybił-trafił” poddałbyś się i albo sfrustrowany opuścił bibliotekę, albo poprosił o pomoc jej pracownika, w nadziei, że ma on choćby nikłe pojęcie na temat tego, gdzie co się w niej znajduje. Taksonomia przypomina pod wieloma względami system katalogowania zasobów bibliotecznych, choć oczywiście dotyczy zawartości Twojego serwisu. Jeśli podzielisz jego treść na odpowiednie kategorie, odwiedzający stronę będą mogli łatwiej zorientować się w jej zawartości, a odnajdowanie interesujących ich danych oraz powiązanych z nimi tematycznie informacji stanie się prostsze. Na narzędzie, jakim jest taksonomia systemu Drupal, składają się dwa elementy — słownik i terminy. Słownik to po prostu grupa powiązanych ze sobą terminów, terminem zaś określamy słowo lub wyrażenie, opisujące konkretny aspekt słownika. Analogicznymi dla słownika i terminów tworami są kategorie i znaczniki, znane większości użytkowników systemów blogowych. Przewagą taksonomii nad zwykłym

ROZDZIAŁ 4. „ TAKSONOMIA

systemem znakowania wpisów jest możliwość grupowania terminów (znaczników) w konkretny słownik, dzięki czemu użytkownik serwisu może jednym kliknięciem wyświetlić zawartość, odpowiadającą całemu słownikowi (wielu znacznikom), a nie tylko jednemu znacznikowi. Pora na przykład z życia. Załóżmy, że tworzymy serwis poświęcony nowinkom na rynku wydawniczym. Naszymi odbiorcami są ludzie zainteresowani najnowszymi publikacjami z ich ulubionych serii wydawniczych. Zastanówmy się, w jaki sposób taki człowiek mógłby prowadzić poszukiwania w serwisie. Jedną z możliwości jest szukanie zawartości według kategorii, do jakich należą: • fotografia cyfrowa, • programowanie, • grafika komputerowa, • bazy danych, • sieci komputerowe. Jednocześnie ludzie mogą szukać artykułów związanych z publikacjami swoich ulubionych wydawnictw: • Kreatywna fotografia, • Oracle, • Kanon informatyki, • Seria praktyk, • Szkoła programowania. Chcąc pozostać w realiach przykładu, moglibyśmy zdefiniować słownik tematyki publikacji, a następnie przypisać mu terminy związane z każdą z wymienionych kategorii. Moglibyśmy też utworzyć słownik serii wydawniczych i powiązać każdą z nich z konkretnym terminem z tego słownika. Następnie, wykorzystując taksonomię systemu Drupal, moglibyśmy powiązać każdą publikację w serwisie z konkretnym tematem (takim jak programowanie) oraz z konkretną serią wydawniczą (na przykład Szkoła programowania). Właściwości narzędzia taksonomia pozwoliłyby potem stworzyć listę wszystkich elementów powiązanych z konkretnym słownikiem.

Tworzenie słowników Pierwszymi krokami pozwalającymi stworzyć taksonomię jest określenie słowników, które pozwolą skatalogować zawartość serwisu, i oczywiście utworzenie ich. Liczba słowników będzie zależeć od tematyki strony i rozpiętości tematów jej publikacji. Nie możemy wykluczyć, że wystarczy Ci tylko jeden słownik, ale też nie można zakładać, że nie będziesz potrzebować kilku oddzielnych. Nie istnieje „właściwa” liczba słowników przypadających na jeden serwis ani nie ma żadnego wzoru, który pozwoliłby wyznaczyć optymalną wartość słowników witryny. Najlepiej zrobisz, zastanawiając się nad tym, jakie artykuły będą pojawiać się w serwisie i jakie tematy będziesz w nich poruszać. Jeśli tematy te są ze sobą powiązane (na przykład nowinki wydawnicze), jeden słownik zapewne wystarczy Ci w zupełności. Jeżeli natomiast prowadzisz serwis, w którym występują niepowiązane ze sobą artykuły (jak w przeciętnym serwisie informacyjnym, gdzie pojawiają się opisy nowych technologii, ale też informacje dotyczące zdrowia, pracy i rozrywki), będziesz musiał najprawdopodobniej utworzyć kilka słowników, po jednym dla każdego tematu. Gdy znajdziesz przynajmniej jeden temat, który potrzebuje ujęcia słownikowego, kliknij odnośnik Structure (budowa), znajdujący się w menu administratora. Na wyświetlonej liście znajdziesz, między innymi, odnośnik Taxonomy (taksonomia). Kliknij ten odnośnik, żeby zobaczyć listę wszystkich słowników zdefiniowanych w serwisie. System Drupal tworzy domyślnie słownik Tags (znaczniki). Jest to podstawowy zbiór wszystkich terminów (rysunek 4.1).

50

TWORZENIE SŁOWNIKÓW

Rysunek 4.1. Słownik Tags Aby dodać nowy słownik, kliknij odnośnik Add vocabulary (dodaj słownik). Otworzysz w ten sposób ekran przedstawiony na rysunku 4.2. W polu Name (nazwa) wpisz wyrażenie Kategoria książek, a w polu Description (opis) — krótki opis słownika.

Rysunek 4.2. Tworzenie nowego słownika Po wypełnieniu obydwu pól kliknij przycisk Save (zachowaj). W ten sposób dodasz nowy słownik do listy już istniejących (rysunek 4.3).

Rysunek 4.3. Lista wzbogacona o nowy słownik Następnym krokiem będzie utworzenie listy terminów związanych ze słownikiem Kategoria książek. Aby wprowadzić do systemu nowy termin, kliknij znajdujący się koło nazwy słownika odnośnik add terms (dodaj terminy). Otworzysz w ten sposób okno zaprezentowane na rysunku 4.4. Podaj pierwszy termin, Fotografia cyfrowa, i wpisz krótkie wyjaśnienie, jakie się za nim kryje. 51

ROZDZIAŁ 4. „ TAKSONOMIA

Rysunek 4.4. Dodawanie terminów Po dodaniu terminu kliknij przycisk Save (zachowaj). System Drupal wyczyści dane wprowadzone uprzednio do formularza, pozwalając Ci w ten sposób dodać kolejny termin do słownika. W ramach ćwiczenia dodaj teraz terminy określające pozostałe kategorie książek — programowanie, bazy danych, grafika komputerowa i sieci komputerowe. Gdy utworzysz już wszystkie terminy słownika, kliknij zakładkę List (lista), by wyświetlić pełną listę terminów słownika (rysunek 4.5).

Rysunek 4.5. Pełna lista terminów W tej chwili dysponujesz już słownikiem i dodanymi do niego terminami, które pomogą Ci skatalogować zawartość serwisu. Teraz musisz zastanowić się, które z typów wpisów będą korzystać z utworzonego słownika, i skonfigurować ten słownik w taki sposób, aby pojawiał się w formularzach tworzenia wpisów o wskazanych typach.

52

PRZYPISYWANIE SŁOWNIKA TAKSONOMII DO RODZAJU TREŚCI

Przypisywanie słownika taksonomii do rodzaju treści Aby autor wpisu mógł połączyć go z wybranymi terminami słownika taksonomii, administrator musi najpierw zaktualizować wszystkie typy wpisów tak, żeby zawierały odnośniki do słownika. Przede wszystkim musisz określić wszystkie rodzaje wpisów, które chciałbyś połączyć z nowym słownikiem. Możesz oczywiście dopuścić katalogowanie wszystkich rodzajów wpisów według terminów wybranego słownika, ale równie dobrze słownik może być przeznaczony wyłącznie do opisywania zawartości konkretnego typu. Przykładowo, jeśli słownik będzie zawierać terminy związane z miejscami, w których odbywają się różnego rodzaju imprezy (na przykład kawiarnia, sala gimnastyczna, dziedziniec, boisko itd.), rozsądnie będzie ograniczyć rodzaje wpisów, które będą mogły korzystać z tego słownika. Taki słownik nadaje się doskonale do klasyfikowania wpisów do dziennika, a nie do opisywania podstawowych treści. Pora zająć się konkretnym przykładem. Zaktualizujemy teraz informacje o podstawowych stronach serwisu Drupal, dodając do nich możliwość kojarzenia stron ze słownikiem kategorii książek. Kliknij znajdujący się w menu administracyjnym odnośnik Structure (budowa), a następnie otwórz stronę kryjącą się pod odnośnikiem Content types (rodzaje zawartości). Zobaczysz na niej listę wszystkich dostępnych rodzajów wpisów (rysunek 4.6).

Rysunek 4.6. Lista dostępnych typów zawartości Na liście dostępnych typów zawartości, tuż obok nazwy typu, znajduje się odnośnik manage fields (zarządzanie polami), dający możliwość ustawienia pól powiązanych ze wskazanym rodzajem zawartości. W rozdziale 10. poznasz metodę dodawania różnych rodzajów pól do wpisów określonego rodzaju (mogą to być pola służące do przesyłania plików, dodatkowe pole tekstowe, pola wyboru lub przyciski opcji, a nawet rozwijana lista, która pozwoli rozwinąć zawartość wpisu). Na razie skupię się na tworzeniu połączenia pomiędzy terminami taksonomii a typami zawartości, aby autorzy wpisów w serwisie mogli katalogować jego treść. Po kliknięciu odnośnika manage fields (zarządzanie polami) na ekranie pokazuje się formularz dodawania nowego słownika (rysunek 4.7). W tym formularzu znajdziesz grupę poleceń pozwalających dodać nowe pole do strony (Add new field). W polu Label (etykieta) wpisz wyrażenie Kategoria książek, podaj też wewnętrzną nazwę pola, którą będzie posługiwać się system Drupal — niech będzie to kategoria_ksiazek. Następnie wskaż rodzaj pola, w jakim terminy słownika będą pojawiać się w formularzu dodawania nowej treści. Jeśli lista terminów jest długa, wybierz opcję Select list (lista rozwijana), natomiast jeśli terminów jest niewiele, zalecam raczej opcję Check boxes/radio buttons. Wtedy wszystkie terminy pojawią się na jednej liście i użytkownik nie będzie musiał wykonywać dodatkowych działań, by poznać zawartość słownika. Ostatnią pozycją na liście jest pole tekstowe z opcją autouzupełniania (Autocomplete term widget (tagging)). Pole to pozwala autorowi wprowadzać nazwę interesującego go terminu ze słownika. W chwili, gdy autor zaczyna wpisywać nowy termin, pole sprawdza listę istniejących terminów. Jeśli żaden z nich nie odpowiada wyrażeniu podanemu przez autora, do taksonomii zostaje dodany nowy termin. Opcja ta pozwala na łatwą rozbudowę listy terminów, ponieważ nowe mogą pojawiać się w chwili dodawania kolejnych artykułów w serwisie. Jeśli jednak zdefiniowałeś ściśle określoną listę terminów słownika (na przykład listę nazw stanowisk opracowaną przez dział kadr) i nie chcesz, by autorzy wpisów rozszerzali ją o nowe pojęcia, nie korzystaj z tej opcji. W naszym przypadku najlepiej sprawdzi się opcja Select list (lista rozwijana), ponieważ nie chcemy, by autorzy artykułów rozbudowywali istniejący słownik. 53

ROZDZIAŁ 4. „ TAKSONOMIA

Rysunek 4.7. Zarządzanie polami Kliknij przycisk Save (zachowaj). Na ekranie pojawi się formularz, w którym będziesz mógł wybrać słownik, którego zawartość pojawi się na liście rozwijanej (rysunek 4.8). W tym przypadku będzie to słownik Kategoria książek. Teraz kliknij przycisk Save field settings (zachowaj ustawienia pola).

Rysunek 4.8. Określanie ustawień pola Następna strona formularza pozwoli Ci: • zmienić etykietę, jaka będzie wyświetlana obok pola; • określić, czy termin taksonomii jest polem wymaganym (czy autor musi wybrać jedno z dostępnych określeń, zanim opublikuje nową treść); • wprowadzić instrukcję pomocy; • określić, czy pole ma przyjąć wartość domyślną w razie, gdyby autor nie wskazał żadnej z dostępnych propozycji; • określić, ile wartości może wskazać autor. Jeśli zdecydujesz się na użycie przycisków opcji lub pól wyboru, podanie wartości 1 poskutkuje utworzeniem listy przycisków wyboru. W przeciwnym razie na liście pojawią się pola wyboru, pozwalające wybrać więcej terminów z listy; • zmienić słownik będący źródłem wartości umieszczanych na liście. Po ustaleniu tych parametrów naciśnij przycisk Save (zachowaj). 54

WYBÓR TERMINU TAKSONOMII PODCZAS TWORZENIA NOWEGO WPISU

Wybór terminu taksonomii podczas tworzenia nowego wpisu Po wykonaniu kroków opisanych w poprzednim podrozdziale na formularzu tworzenia nowej strony znajdzie się pole, w którym autor będzie mógł wskazać kategorię, do której zalicza się publikowany przez niego artykuł. Przetestujemy teraz tę funkcję. Kliknij dowolny z odnośników Create content (dodaj zawartość), o których wspominałem wcześniej (na przykład ten na szarym pasku, znajdującym się na górze strony). Z listy dostępnych typów wpisów wybierz opcję Basic page (strona). W formularzu tworzenia nowej strony pojawi się dodatkowe pole, z którego można wybrać kategorię wpisu (rysunek 4.9).

Rysunek 4.9. Tworzenie zwykłej strony Po kliknięciu przycisku Save (zachowaj) system Drupal wyświetli nową stronę z nowym polem Kategoria książek, w którym widnieje odnośnik Bazy danych. Aby zrozumieć potęgę taksonomii, utwórz dwie nowe strony, które będą opisane tym samym terminem słownika, co strona przykładowa. Po dodaniu zawartości ostatniej ze stron kliknij przypisany im termin taksonomii. W przykładzie widocznym na rysunku 4.10 jest to wyrażenie Bazy danych.

Rysunek 4.10. Nowy wpis, oznaczony terminem Bazy danych W efekcie kliknięcia odnośnika na stronie pojawia się spis wszystkich pozostałych stron, które zostały przypisane do tej kategorii (rysunek 4.11).

55

ROZDZIAŁ 4. „ TAKSONOMIA

Rysunek 4.11. Wszystkie strony dodane do kategorii Bazy danych Drupal automatycznie wypisuje wszystkie wpisy powiązane z wybranym terminem. Zawartość listy jest ułożona w porządku chronologicznym, począwszy od najnowszej wiadomości. Na dole strony znajduje się też ikona kanału RSS. Drupal tworzy kanały dla wszystkich stron serwisu powiązanych z wybranym terminem. Po kliknięciu wspomnianej ikony na ekranie pojawi się lista artykułów, sformatowana do postaci zwykłego wątku RSS.

Listy przyjazne wyszukiwarkom i użytkownikom Dla każdej listy terminów taksonomii Drupal tworzy domyślny adres URL. Przykład takiego adresu jest przedstawiony na rysunku 4.12.

Rysunek 4.12. Adres URL utworzony przez system Drupal Konstrukcja takiego adresu zawiera zawsze element taxonomy/term/X, gdzie X to identyfikator terminu, do którego prowadzi dany adres. Dla systemu Drupal taki zapis jest jasny i oczywisty, ale ani człowiek, ani tym bardziej wyszukiwarka internetowa nie zorientuje się, do jakiej strony prowadzi ten zbitek znaków, o ile nie otworzy jej i nie przeczyta jej adresu. Istnieje rozwiązanie tego problemu — wystarczy utworzyć alternatywny adres URL. Alternatywny adres URL definiuje się w formularzu edycji terminów taksonomii, w specjalnie przeznaczonym do tego polu (URL alias). Aby powrócić do listy terminów taksonomii, kliknij odnośnik Structure (budowa) umieszczony na górze strony. Na otwartej stronie odnajdź odnośnik Taxonomy (taksonomia) i kliknij go. Następnie, na stronie Taxonomy (taksonomia), kliknij odnośnik List terms (wypisz terminy) umieszczony obok nazwy słownika, w którym znajduje się interesujący Cię termin (ten, dla którego chcesz zdefiniować alternatywny adres URL). Znajdź teraz ten termin i kliknij zakładkę Edit (edytuj). W polu URL alias (alternatywny adres URL), widocznym

56

HIERARCHIA TERMINÓW TAKSONOMII

na rysunku 4.13, wpisz adres rozpoznawalny dla użytkowników i przeglądarek. Pamiętaj, żeby zastąpić odstępy między słowami znakami dywizu (-). W omawianym przykładzie rolę adresu pełni wyrażenie „bazy-danych”. Teraz kliknij przycisk Save (zachowaj) i wpisz w przeglądarce adres serwisu, dodając po nim alias terminu taksonomii. W tym przypadku będzie on miał kształt http://localhost/drupal-7.0/ bazy-danych.

Rysunek 4.13. Definiowanie alternatywnego adresu URL

Hierarchia terminów taksonomii Co jednak zrobić w sytuacji, gdy niezbędne stanie się użycie taksonomii o hierarchicznej strukturze terminów słownika? Przyjrzyj się poniższemu przykładowi usystematyzowania zawartości terminu „bazy danych”: • bazy danych • bazy proste • bazy hierarchiczne • bazy kartotekowe • bazy złożone • bazy obiektowe • bazy relacyjne • bazy relacyjno-obiektowe Na szczęście Drupal oferuje Ci prosty mechanizm tworzenia hierarchii struktury terminów taksonomii. Pora zaktualizować taksonomię związaną z bazami danych. W tym celu kliknij odnośnik add term (dodaj termin) umieszczony obok słownika Kategoria książek.

57

ROZDZIAŁ 4. „ TAKSONOMIA

Kliknij przycisk Structure (budowa), a następnie odnośnik Taxonomy (taksonomia). Odnajdź słownik, do którego chcesz dodać nowy termin, i kliknij umieszczony obok odnośnik add term (dodaj termin). W ten sposób otworzysz ekran tworzenia terminów. Jako pierwsze utwórz wyrażenie bazy proste. Wpisz to wyrażenie w polu Name (nazwa), a następnie kliknij odnośnik Relations (powiązania). Wskaż na liście terminów (Parent terms) wyrażenie bazy danych i kliknij przycisk Save (zachowaj). W ten sam sposób utwórz kolejną kategorię potomną terminu bazy danych, czyli wpis bazy złożone. Aby utworzyć trzeci poziom hierarchii słownika, wpisz w polu Name (nazwa) wyrażenie bazy hierarchiczne i ustaw kategorię nadrzędną bazy proste. Powtórz te czynności dla wszystkich elementów listy widocznej na rysunku 4.14.

Rysunek 4.14. Efekt budowania listy hierarchicznej Teraz możesz przypisywać terminy taksonomii do zawartości zarówno na poziomie dziecka, jak i na poziomie rodzica. Strona tworzona opisaną metodą pokazywałaby powiązanie z terminem bazy proste. Kliknięcie nazwy tego terminu spowodowałoby wypisanie wszystkich wpisów powiązanych z wyrażeniem bazy proste, należącym do kategorii bazy danych. Takie rozwiązanie pozwala na prowadzenie bardziej szczegółowych poszukiwań zawartości serwisu.

Przypisywanie zawartości strony do większej liczby słowników Nie można wykluczać, że w pewnym momencie katalogowanie zawartości wpisu za pomocą wyrażeń jednego słownika przestanie wystarczać. W przypadku bardziej skomplikowanych wpisów byłoby to zwyczajnym ograniczeniem. Na szczęście Drupal nie będzie zmuszać Cię do podejmowania dramatycznych wyborów, ponieważ każdą zawartość możesz powiązać z dowolną liczbą słowników. Aby to zrobić, musisz wykonać opisane tu kroki ponownie, wskazując tym razem inny słownik.

Podsumowanie Mam nadzieję, że udało mi się rozwiać przynajmniej część wątpliwości związanych z użyciem taksonomii i ukazać we właściwym świetle możliwości, jakie ona daje. Zalecam Ci rozpoczęcie pracy nad katalogiem już od pierwszych stworzonych stron, ponieważ im dłużej będziesz mieć do czynienia z tym narzędziem, tym lepiej opanujesz jego użycie. Dobrze zorganizowana taksonomia ułatwi odwiedzającym odnajdowanie treści w Twoim serwisie. W pozostałych rozdziałach postaram się pokazać wszystkie korzyści, jakie płyną z właściwego stosowania taksonomii.

58

ROZDZIAŁ 5 „„„

Tworzenie menu

O sukcesie serwisu internetowego decyduje łatwość, z jaką odwiedzający będą mogli odnajdywać w nim informacje, przede wszystkim te, które Ty uznasz za istotne. System Drupal oferuje trzy podstawowe rozwiązania, pozwalające poruszać się po utworzonym serwisie. • Odnośniki umieszczone w tekście, które skierują odwiedzającego na nową stronę. • Obrazy i przyciski, których kliknięcie przeniesie odwiedzającego na nową stronę. • Menu, czyli poziome i pionowe listy odnośników w postaci tekstu lub grafiki. W tym rozdziale przedstawię narzędzia odpowiedzialne za tworzenie menu i zarządzanie ich zawartością.

Wybieranie z menu Menu to, w swojej najprostszej postaci, pozioma lub pionowa lista odnośników, dzięki którym użytkownik może się dostać na nową stronę. Gdy zajrzysz na stronę główną swojej witryny, zobaczysz na niej przynajmniej sześć różnych menu. Spójrz na rysunek 5.1. Patrząc od góry do dołu, na stronie widać następujące listy odnośników: • czarny pasek u góry strony, którego pierwszą pozycją jest Content (zawartość); • szary pasek u góry strony, zaczynający się od odnośnika Add Content (dodaj zawartość); • górne menu serwisu (góra niebieskiego paska), z pozycjami Administrator i Log out (wyloguj); • menu podrzędne, umieszczone w prawej kolumnie szablonu, rozpoczynające się odnośnikiem Home (strona główna); • menu Management (zarządzanie) znajdujące się po lewej stronie. Menu pomaga użytkownikowi poznać strukturę strony (i jej zawartość), określić cechy serwisu i możliwości, jakie on oferuje. W naszym prostym przykładzie serwisu wszystkie menu widoczne na stronie są zbudowane z odnośników tekstowych, jednak Drupal umożliwia tworzenie menu zbudowanych z przycisków czy grafik. W swoim czasie stworzyłem dla biblioteki Bloomfield Township Public Library (http://btpl.org) dynamiczną witrynę o rozbudowanej warstwie graficznej. Pojawiały się na niej zarówno przyciski, jak i grafiki (grafiki są wyświetlane ponad tym elementem menu, który jest aktualnie wskazywany kursorem myszy — przykładem może być fotografia chłopca z pomalowanymi dłońmi, widoczna na rysunku 5.2.

ROZDZIAŁ 5. „ TWORZENIE MENU

Rysunek 5.1. Menu na stronie głównej

Rysunek 5.2. Przykład menu graficznego Proces tworzenia menu został podzielony na etapy, z których każdemu odpowiada osobny ekran jądra Drupal. Dodawanie elementów do menu odbywa się w jeden z podanych poniżej sposobów. • Dodawanie nowego elementu do istniejącego już menu. System Drupal 7 oferuje kilka gotowych do użycia list odnośników, do których wystarczy dodać swoje własne. • Tworzenie nowego menu. Jeżeli potrzebujesz większej liczby menu niż domyślne dwa oferowane przez system, musisz utworzyć nowe. • Przypisanie menu do określonego obszaru strony. Po utworzeniu nowego menu, trzeba wskazać jego położenie na stronie.

60

DODAWANIE ELEMENTU DO LISTY MENU

Dodawanie elementu do listy menu W menu może pojawić się jeden z dwóch zasadniczych elementów — odnośnik od istniejącego elementu serwisu (na przykład strony, spisu terminów taksonomii itd.) lub odnośnik do zewnętrznej strony, niebędącej częścią serwisu.

Dodawanie elementu do menu Istnieją dwie metody dodawania nowych pozycji menu — możesz zrobić to za pomocą menu administratora (rysunek 5.4) lub dodać odnośnik do wybranego wpisu z poziomu formularza edycji zawartości tego wpisu. Zalecam korzystanie z formularza tworzenia zawartości wpisu (rysunek 5.3) albo — tę metodę omówię w dalszych rozdziałach — z dowolnego innego formularza tworzenia nowej zawartości: strony panelu lub podglądu. Sugeruję takie rozwiązanie, ponieważ tylko wtedy po usunięciu wpisu umieszczonego w menu, Drupal automatycznie zlikwiduje powiązaną z nim pozycję menu. Jeżeli zdecydujesz się dodać menu ręcznie, za pomocą formularza panelu administracyjnego, będziesz musiał pamiętać potem, by osobiście usunąć pozycję menu po zlikwidowaniu treści wpisu.

Rysunek 5.3. Dodawanie wpisu do menu Aby umieścić w serwisie nowy wpis, kliknij dowolny z odnośników pozwalających dodawać nową treść (zakładam, że ciągle jesteś zalogowany z uprawnieniami administratora) i wybierz typ wpisu Basic page (strona). Wprowadź przykładowy tytuł strony i kilka słów zawartości, a następnie zaznacz pole wyboru Provide a menu link (wybierz odnośnik menu) w pierwszej zakładce ustawień umieszczonych na dole ekranu (rysunek 5.3). Po zaznaczeniu pola na ekranie pojawią się narzędzia pozwalające dodać nową pozycję do menu. Przede wszystkim podaj nazwę, pod jaką odnośnik będzie występować w menu. Zaznacz też opcję stwierdzającą, że ma być on fragmentem menu głównego (Main menu). Wreszcie wybierz pozycję odnośnika na liście (Weight). Gdy określisz już parametry menu, kliknij przycisk Save (zachowaj). Na ekranie pojawi się utworzona właśnie strona oraz powiązany z nią wpis w głównym menu (ciemnoniebieski obszar na górze strony). Po kliknięciu odnośnika menu zostaniesz natychmiast przeniesiony do strony, którą właśnie utworzyłeś. Menu działa zawsze, niezależnie od tego, w której części serwisu aktualnie się znajdujesz.

Dodawanie do menu zewnętrznej strony internetowej W menu mogą też znaleźć się odnośniki do zewnętrznych stron internetowych. W tym celu kliknij odnośnik menu administracyjnego Structure (budowa), umieszczony na górze strony, a następnie skorzystaj z odnośnika Menus (menu). Otworzysz w ten sposób stronę Menus (menu), na której znajdziesz

61

ROZDZIAŁ 5. „ TWORZENIE MENU

Rysunek 5.4. Umieszczanie w menu odnośnika do zewnętrznej strony WWW odsyłacz add item (dodaj pozycję) towarzyszący pierwszej pozycji listy, Main menu (menu główne). Kliknij go. W oknie przeglądarki powinna pojawić się widoczna na rysunku 5.4 strona Main menu (menu główne). Wpisz nazwę pozycji menu (w omawianym przykładzie tytułem tym jest po prostu nazwa Helion), a następnie podaj ścieżkę dostępu, czyli pełny adres URL strony, którą chcesz dodać do menu (w tym przykładzie jest to http://helion.pl). Upewnij się, że zaznaczyłeś pole wyboru Enabled (włączone) i umieść odnośnik w menu głównym (wybierz pozycję Main menu z listy Parent). Po ustawieniu wartości wszystkich parametrów kliknij przycisk Save (zachowaj) — niewykluczone, że będziesz musiał przewinąć zawartość strony, żeby się do niego dostać. Po chwili Drupal wyświetli pełną listę wszystkich elementów głównego menu, na której znajdziesz także dodaną przed chwilą pozycję. Na stronie powinna znajdować się teraz zaktualizowana wersja menu. Gdy klikniesz ten odnośnik, zostaniesz przeniesiony na zewnętrzną stronę WWW, do której on prowadzi.

Tworzenie nowego menu Prędzej czy później dojdziesz do wniosku, że domyślne menu systemu Drupal 7 nie wystarcza do Twoich potrzeb. Posłużę się przykładem z własnego doświadczenia. W czasie prac nad stronami bibliotek publicznych tworzonych w systemie Drupal często jestem zmuszony tworzyć specjalne menu dla każdego z działów bibliotecznych (na przykład dział dla czytelników dorosłych, dział dla dzieci, dział dla młodzieży, przepływ książek itd.). Podstawowe menu Drupala nie oferuje możliwości, które odpowiadałyby wymogom biblioteki. Aby utworzyć nowe menu, kliknij umieszczony na górze strony systemu odnośnik Structure (budowa), a następnie wybierz z wyświetlonej listy pozycję Menus (menu) i kliknij link add

62

TWORZENIE NOWEGO MENU

menu (dodaj menu). Na ekranie pojawi się formularz dodawania nowego menu (rysunek 5.5). Wpisz w nim nazwę menu (w polu Title) oraz podaj jego opis (pole Description, nieobowiązkowe). Kliknij przycisk Save (zachowaj). Od tej chwili w opisany wcześniej sposób będziesz mógł dodawać nowe elementy do zdefiniowanej właśnie listy odnośników.

Rysunek 5.5. Tworzenie nowego menu Po zapisaniu menu możesz przystąpić do dodawania jego elementów. Przećwicz tę operację, umieszczając w menu następujące odnośniki do zewnętrznych stron internetowych — helion.pl, yahoo.pl, google.pl i bing.pl — (proces ten został opisany w podrozdziale „Dodawanie do menu zewnętrznej strony internetowej”). Efekt ukończonej pracy powinien przypominać wyglądem przykład przedstawiony na rysunku 5.6.

Rysunek 5.6. Nowe menu i jego elementy Nowe menu istnieje już w systemie, ale jeszcze nie jest umieszczone w żadnym konkretnym miejscu strony, więc pozostaje niewidoczne dla odwiedzających. Aby zdefiniować jego położenie, kliknij odnośnik Structure (budowa) i z otwartej strony wybierz odnośnik Blocks (bloki). Przewijaj zawartość otwartego formularza, dopóki nie odnajdziesz na liście wpisu Menu specjalne (rysunek 5.7). Z rozwijanej listy umieszczonej obok tej nazwy wybierz opcję Left sidebar (lewy panel boczny), a następnie kliknij przycisk Save blocks (zachowaj bloki).

63

ROZDZIAŁ 5. „ TWORZENIE MENU

Rysunek 5.7. Definiowanie położenia menu Kliknij teraz ikonę strony głównej i gotowe! Nowe menu pojawiło się na stronie. Możesz składać zamówienie.

Podsumowanie W tym rozdziale przedstawiłem podstawowe zasady dodawania nowych odnośników do menu i tworzenia odnośników do zewnętrznych stron internetowych. Pokazałem też, w jaki sposób zdefiniować ustawienia nowego rodzaju menu tak, by pojawiło się ono na stronie serwisu. W następnym rozdziale opiszę, jak zmienić zupełnie wygląd strony, instalując nowy motyw graficzny. To właściwy moment, by wydać jęk zachwytu!

64

ROZDZIAŁ 6 „„„

Instalowanie motywów graficznych W tym rozdziale postaram się wyjaśnić, jak zmienić całkowicie wygląd i charakter serwisu za pomocą pobranej z sieci „skórki”, czyli odpowiednio dobranego motywu graficznego. Omówię, krok po kroku, proces wybierania motywu, pobierania go i konfigurowania na stronie. W przykładach opisanych w poprzednich rozdziałach dodawaliśmy wprawdzie nowe elementy do układu serwisu, zdołałem też przedstawić kilka interesujących możliwości systemu Drupal, ale właściwy moment na wpadanie w zachwyt nastał dopiero teraz. O wyglądzie serwisu budowanego na podstawie elementów systemu Drupal decyduje komponent zwany skórką, czyli motyw graficzny. Motyw ten decyduje o: • kolorach, jakie pojawią się na stronie; • czcionkach, którymi zapisana będzie zawartość strony i nagłówki poszczególnych wpisów; • rozmieszczeniu stałych elementów graficznych, czyli tych, które wiążą się z projektem strony, a nie są częścią publikowanych treści; • układzie zawartości serwisu (umiejscowieniu górnego menu, wymiarach banera, położeniu menu poniżej banera, ustawieniach kolumn tekstu, nagłówka i stopki). Motywy systemu Drupal wykorzystują kod HTML, arkusze stylów CSS oraz fragmenty skryptów PHP. Motyw może sprowadzać się do przedstawienia treści na białym tle, ale może też być barwny i złożony — ogranicza Cię wyłącznie Twoja wyobraźnia. Pracowałeś już zresztą z motywami graficznymi Drupala. Domyślnym motywem instalowanym razem z systemem jest motyw Garland. Zalicza się go do rodziny motywów niebieskich (spójrz na rysunek 6.1) o stosunkowo prostej strukturze. Znajdziesz w nim obszar nagłówka (tam możesz umieszczać menu, zawartość, widgety itp.), lewy panel boczny, prawy panel boczny, obszar główny oraz stopkę. Przeglądając zasoby motywów graficznych, zauważysz zapewne, że większość z nich powstała na bazie tego samego układu graficznego, co dla wielu osób jest wadą Drupala, ponieważ obawiają się, że tworzone w ten sposób strony muszą wyglądać niemal identycznie. To prawda — większość darmowych motywów graficznych powstaje na bazie tego samego schematu, ale przecież masz możliwość utworzenia schematu, który będzie różnić się znacznie od istniejących rozwiązań. Rysunek 6.2 przedstawia wynik moich prób wykorzystania generatora motywów systemu Drupal, aby przygotować stronę serwisu uniwersytetu stanu Oregon. Serwis ten został stworzony z myślą o uczniach szkół średnich. Miał on umożliwiać im gromadzenie dokumentów, które w przyszłości mogłyby pomóc im dostać się na studia. Nagłówek strony znajduje się na brązowym tle, zawartość strony umieściłem na zielonym tle, a stopka — tak jak nagłówek — wyróżnia się brązowym podkładem.

ROZDZIAŁ 6. „ INSTALOWANIE MOTYWÓW GRAFICZNYCH

Rysunek 6.1. Motyw Garland

Rysunek 6.2. Motyw graficzny zrywający ze schematami 66

JAK WYGLĄDA PRACA Z MOTYWAMI GRAFICZNYMI SYSTEMU DRUPAL?

Jak wygląda praca z motywami graficznymi systemu Drupal? Znajomość podstaw pracy z motywami graficznymi systemu Drupal przyda Ci się w przyszłości, gdy będę tłumaczyć bardziej zaawansowane zagadnienia. Zasada działania tak zwanej skórki daje się wyłożyć w kilku prostych tematach, które omówię w tym rozdziale. Funkcja administratora własnego serwisu pozwala Ci zdecydować, jakiego motywu graficznego będziesz chciał używać. Możesz pobrać jeden z typowych szablonów dostępnych na stronie http://drupal.org/projects/themes albo też zakupić projekt od jednej z wielu firm zajmujących się przygotowywaniem „skórek” serwisów tworzonych w systemie Drupal. Zakładam, że zdołasz znaleźć projekt, który będzie choć w przybliżeniu odpowiadać Twoim wyobrażeniom o wyglądzie budowanego serwisu. Jeśli jednak po sprawdzeniu setek kandydatów nadal nie znajdziesz takiego układu, który by Ci odpowiadał, zawsze możesz zaprojektować własny wygląd strony. W książce Pro Drupal Development, wydanej przez wydawnictwo Apress, znajdziesz wiele przydatnych rad dotyczących tworzenia własnych skórek. Jeżeli znajdziesz motyw graficzny, który Cię usatysfakcjonuje, pobierz go na dysk, rozpakuj pobrane pliki (tak samo jak przed instalacją systemu Drupal) i wyślij je na serwer. Po skopiowaniu plików aktywuj nowy motyw graficzny z poziomu panelu administracyjnego. To wszystko! Od tej chwili strona będzie wyświetlać się odwiedzającym w nowej szacie graficznej. Po aktywowaniu skórki Drupal samoczynnie uruchamia ją, stosuje się do zaleceń zawartych w powiązanym z nią arkuszach stylów i odpowiednio rozmieszcza zawartość. Następnie przebudowuje każdą ze stron serwisu, zmieniając dotychczasowy układ, style, kolory, czcionki i grafiki na te, które pojawiają się w nowym motywie.

Jak znaleźć nowy motyw? Początkowo masz do dyspozycji jedynie dwa motywy — Garland i Stark. Garland jest wprawdzie doskonałym motywem graficznym, zakładam jednak, że raczej nie będziesz chciał używać go do prezentacji zawartości strony firmowej (choć są w sieci strony firmowe, które z niego korzystają). Stark oferuje banalne rozwiązania graficzne. Jeśli szukasz skórki, która położy największy nacisk na prezentację tekstu, możesz rozważyć użycie układu Stark, ale przypuszczam, że bardziej zainteresują Cię setki dostępnych za darmo, bardziej rozwiniętych motywów. Zanim rozpoczniesz poszukiwania, usiądź na chwilę z kartką papieru i postaraj się naszkicować sobie ogólny wygląd serwisu, który chcesz osiągnąć. Skup się przede wszystkim na następujących zagadnieniach: Czy na stronie mają pojawiać się poziome menu? Jeśli tak, to zastanów się, w jakiej liczbie i jak chciałbyś je rozmieścić. Czy będziesz potrzebować nagłówka i banera na stronie? Jeśli tak, od razu określ wysokość nagłówka i zastanów się, czy ma on rozciągać się na całą szerokość strony. Czy projekt będzie potrzebować paneli bocznych? A może zdecydujesz się tylko na jeden z nich? Czy strona będzie potrzebowała nagłówka, a jeśli tak, to czy będzie on zajmować całą szerokość strony? Czy szerokość strony ma być stała (na przykład 960 pikseli), a może strona będzie zmieniać swoje wymiary w zależności od wymiarów okna przeglądarki? Gdy odpowiesz już sobie na te pytania, będziesz mógł zawęzić obszar poszukiwań wyłącznie do tych projektów, które odpowiadają pewnym określonym założeniom graficznym. Sposobów poszukiwania skórek jest tyle, ilu szukających. Najczęściej zaś stosuje się jedną z dwóch opisanych poniżej metod. • Odwiedź stronę www.drupal.org/project/themes i przejrzyj umieszczone tam opisy skórek (rysunek 6.3).

67

ROZDZIAŁ 6. „ INSTALOWANIE MOTYWÓW GRAFICZNYCH

Rysunek 6.3. Opcje filtrowania motywów graficznych • Odwiedź stronę http://themegarden.org i zobacz, jak każdy z motywów sprawdza się w działaniu. Serwis themegarden.org prezentuje zawartość strony w każdym z dostępnych na drupal.org motywów, więc możesz sprawdzić, jak sprawują się one w rzeczywistości. Obydwie metody sprawdzają się równie dobrze. Wiele osób decyduje się na ich połączenie — najpierw odwiedzają stronę drupal.org, a następnie, po wybraniu motywu, udają się do serwisu themegarden.org, by sprawdzić, jak wygląda korzystanie z niego. Zajmijmy się teraz przykładowo odnalezieniem w serwisie drupal.org motywu dla wersji siódmej systemu, który odpowiadałby założeniom dotyczącym budowy i kolorystyki witryny. Na stronie drupal.org/project/ themes znajdziesz kilka rozwijanych list, pozwalających filtrować wyniki wyszukiwania. Jeżeli chcesz obejrzeć propozycje motywów wyłącznie dla Drupal 7, z listy Filter by compability (filtruj zgodnie z wersją) wybierz pozycję 7.x (wersje przeznaczone dla starszych wypustów systemu nie będą działać). Na ekranie pojawią się projekty dla najnowszej wersji oraz aktualizacje starszych projektów. Możesz sortować je według nazw (Title), daty utworzenia (Creation date), daty ostatniej aktualizacji (Last release) oraz aktywności. Wybranie opcji Last release (ostatnia aktualizacja) sprawi, że na ekranie pojawi się spis skórek rozpoczynający się ostatnio dodaną (bądź aktualizowaną) pozycją, co jest bardzo wygodnym rozwiązaniem dla wszystkich osób odwiedzających witrynę drupal.org regularnie. W ten sposób można łatwo poznać nowinki związane z rozbudową strony tworzonej w Drupalu. Tym razem zdecydujemy się na posortowanie motywów alfabetycznie. Jak widzisz, serwis oferuje mnóstwo motywów graficznych. Większość twórców prezentuje też zrzut z ekranu, przedstawiający wygląd motywu, więc od razu możesz wyrobić sobie pierwsze zdanie na temat projektu. Przyjrzyjmy się przykładowo motywowi Aberdeen (http://drupal.org/project/aberdeen). Jego wygląd różni się nieco od standardowych motywów Drupala (na przykład od motywu Garland), a jednocześnie nie razi nieodpowiednim doborem kolorów (rysunek 6.4).

Instalacja skórki Musisz teraz pobrać motyw, który sobie wybrałeś. Drupal 7 oferuje narzędzie, dzięki któremu pobranie i zainstalowanie motywu sprowadza się do skopiowania adresu URL pliku do pobrania i wklejenia go w odpowiednim polu formularza. Aby otworzyć okno formularza, kliknij odnośnik Appearance (wygląd) górnego menu. Na otwartej w ten sposób stronie kliknij odnośnik Install new theme (zainstaluj nową skórkę). Kształt formularza przedstawia rysunek 6.5. 68

INSTALACJA SKÓRKI

Rysunek 6.4. Motyw Aberdeen

Rysunek 6.5. Narzędzie instalacji nowych skórek Kliknij odnośnik Install new theme (zainstaluj nową skórkę), aby otworzyć formularz, za pomocą którego zainstalujesz nowy motyw graficzny lub wyślesz swój projekt na serwer (rysunek 6.6). Formularz zawiera dwa pola. W pierwszym z nich możesz wpisać (lub wkleić) adres URL motywu, który chcesz zainstalować, co też zrobimy za chwilę dla przykładu. Otwórz okno przeglądarki (lub nową kartę) i otwórz stronę zawierającą skórki systemu Drupal (http://drupal.org/project/themes). W przykładzie wykorzystam motyw Aberdeen (http://drupal.org/project/aberdeen). Przesuń kursor myszy nad odnośnik Download (pobierz) i kliknij go prawym przyciskiem myszy. W oknie, które pojawi się na ekranie, wybierz opcje kopiowania adresu. Powróć do formularza instalacji, kliknij prawym przyciskiem myszy w polu adresu URL i wybierz opcję Wklej. Po wklejeniu adresu URL kliknij przycisk Install (instaluj). Drupal pobierze samodzielnie wskazany plik archiwum, rozpakuje go, skopiuje jego zawartość do odpowiednich katalogów i da Ci możliwość aktywowania go w przyszłości. Z chwilą zakończenia pobierania lista dostępnych skórek zostaje zaktualizowana, a motyw Aberdeen pojawia się w sekcji skórek wyłączonych (rysunek 6.7).

69

ROZDZIAŁ 6. „ INSTALOWANIE MOTYWÓW GRAFICZNYCH

Rysunek 6.6. Formularz instalacyjny

Rysunek 6.7. Motywy wyłączone Aby włączyć motyw i zastosować go na stronie, kliknij odnośnik Enable and set default (włącz i użyj) umieszczony obok jego nazwy (użyj zwykłego motywu Aberdeen, a nie jego wersji o zmiennych wymiarach). Teraz kliknij znajdujący się na dole strony przycisk Save (zachowaj), a następnie przycisk X, który znajdziesz w prawym górnym rogu okna skórek. Powróć na stronę główną i odśwież zawartość strony. Od tej chwili powinna ona prezentować się w nowej szacie graficznej. Spójrz na rysunek 6.8.

Motyw panelu administracyjnego Formularze administracyjne w systemie Drupal mają zazwyczaj spore rozmiary, przez co nie wpisują się zbyt dobrze w zdefiniowany przez użytkownika obszar głównej zawartości serwisu. Aby rozwiązać ten problem, Drupal 7 pozwala ustawić oddzielny szablon graficzny dla panelu administracyjnego. Sprawdź, czy nowo wybrany szablon sprawdza się również w obszarach zarządzania zawartością serwisu, a jeśli okaże się, że nie, możesz zawsze wybrać w tym celu inny szablon. Zazwyczaj najlepiej sprawdzają się szablony o szerokości przynajmniej 960 pikseli. Aby zmienić skórkę części administracyjnej serwisu, kliknij przycisk Appearance (wygląd) menu administracyjnego i przewiń zawartość okna w dół do sekcji Administration Theme (skórka panelu administracyjnego). Z listy dostępnych motywów wybierz ten,

70

OPCJE KONFIGURACYJNE

Rysunek 6.8. Nowy motyw graficzny który najbardziej Ci odpowiada. Domyślnym motywem panelu administracyjnego jest motyw Seven, który potrafi wyświetlać okna panelu administracyjnego w postaci nowej warstwy nakładanej na zawartość okna. Możesz oczywiście zmienić go na dowolny inny z widocznych na rozwijanej liście motywów. Nie zapomnij kliknąć przycisku Save configuration (zachowaj ustawienia) po wprowadzeniu wszystkich zmian.

Opcje konfiguracyjne System Drupal 7 udostępnia narzędzia konfiguracyjne, dzięki którym zdołasz dostosować nieco wybrany szablon do własnych potrzeb. Jeśli autor szablonu tworzył go zgodnie ze standardami systemu Drupal, okno ustawień wyglądu pozwoli Ci zadecydować o tym, które z elementów szablonu mają być widoczne dla użytkownika (logo, nazwa serwisu, slogan reklamujący serwis i tak dalej). Tam też będziesz mógł zadecydować, czy chcesz użyć domyślnego logo systemu, czy wolisz skorzystać z własnej ikony strony (tak zwanej ikony favicon, czyli niewielkiego obrazka, pojawiającego się w pasku adresowym przeglądarki obok adresu strony). Aby otworzyć okno opcji konfiguracyjnych, kliknij odnośnik Appearance (wygląd) i aktywuj jego zakładkę Settings (ustawienia). Kształt formularza przedstawiono na rysunku 6.9. „ Uwaga: Uważam, że warto też odwiedzić stronę prywatną Driesa Buytaerta. Znajdziesz tam listę najbardziej interesujących stron tworzonych w systemie Drupal. Lista dostępna jest pod adresem http://buytaert.net/tag/drupal-sites.

Podsumowanie Ten rozdział miał zrobić na Tobie wrażenie — zajęliśmy się wizualną stroną tworzonego serwisu, więc również motywami graficznymi systemu Drupal. Zmiana wyglądu strony zajęła zaledwie kilka minut i nie wymagała niczego więcej niż wykonania kilku prostych kroków. Poświęć teraz nieco czasu na zapoznanie się z motywami dostępnymi na stronie drupal.org. Zdziwisz się, widząc, jakie możliwości kryją się zaledwie kilka kliknięć od Ciebie. 71

ROZDZIAŁ 6. „ INSTALOWANIE MOTYWÓW GRAFICZNYCH

Rysunek 6.9. Opcje ustawień wyglądu

72

ROZDZIAŁ 7 „„„

Bloki

W tym rozdziale postaram się opisać metody rozmieszczania zawartości strony w blokach oraz tak zwanych widgetach (do tych kategorii zaliczają się pole logowania użytkownika, narzędzie informowania o najnowszych wpisach w serwisie, lista zalogowanych użytkowników, narzędzie informowania o pogodzie i tego typu aplikacje). Opiszę krótko podstawowy zestaw bloków wchodzący w skład systemu Drupal 7, przedstawię kilka z bloków dostarczanych z dodatkowymi modułami, ale też pokażę Ci, w jaki sposób wykonać od zera własny blok. Lekturę tego rozdziału zakończysz, dysponując umiejętnościami budowy strony o całkiem niezwykłych możliwościach.

Bloki, bloki, bloki… Pojęciem bloku określa się podstawową niezależną część serwisu, menu bądź kodu. System Drupal 7 udostępnia użytkownikom zestaw standardowych, dostępnych natychmiast po instalacji bloków — blok logowania, blok wyszukiwarki, blok wyświetlający zalogowanych użytkowników czy blok najnowszych wpisów. Poza blokami dostępnymi w samym rdzeniu są też bloki instalowane razem z modułami dodatkowymi, na przykład aplikacja wyświetlająca prognozę pogody, informująca o Twoich wpisach na Twitterze czy zmianach statusu w serwisie Facebook. Ponieważ jesteś administratorem strony, masz też możliwość tworzenia własnych bloków, na przykład listy nadchodzących wydarzeń.

Jak umieścić blok na stronie? W rozdziale 6. wspominałem o elementach budowy motywu graficznego oraz o podziale strony serwisu na poszczególne obszary. Rysunek 6.1 przedstawiał schemat podziału skórki Drupala na poszczególne części — lewy i prawy panel boczny, środek strony oraz stopkę. Tym razem opiszę sposoby umieszczania wybranych bloków w dowolnym miejscu strony i wyjaśnię, dlaczego właściwe ich wykorzystanie może przyciągnąć odwiedzających do częstszego odwiedzania Twojego serwisu. Rysunek 7.1 to przykład wykorzystania bloków, które zostały rozmieszczone w różnych fragmentach strony. Można na nim dostrzec sześć bloków. W omawianym przykładzie pojawiają się bloki menu — Management (zarządzaj) i Menu specjalne — blok interaktywny Search (szukaj) oraz bloki informacyjne Who’s New (nowi użytkownicy), Who’s online (kto przegląda) i Powered by Drupal (witrynę napędza Drupal). Przyjrzymy się teraz blokom, które są dostępne natychmiast po instalacji systemu Drupal 7, i spróbujemy przypisać część z nich odpowiednim obszarom witryny. Następnie zainstalujemy jeden czy dwa moduły dodatkowe, w których można znaleźć interesujące bloki o ciekawych właściwościach, i wreszcie spróbujemy utworzyć własny blok.

ROZDZIAŁ 7. „ BLOKI

Rysunek 7.1. Znajdź wszystkie bloki

Lista dostępnych bloków Aby dostać się do spisu dostępnych bloków, musisz kliknąć odnośnik Structure (budowa) umieszczony na szczycie strony, a następnie odnośnik Blocks (bloki), który znajdziesz na otwartej przed chwilą stronie. Teraz powinieneś mieć na ekranie listę wszystkich dostępnych bloków, włącznie z tymi, które zostały już rozmieszczone na stronie. Spójrz na rysunek 7.2.

Rysunek 7.2. Wygląd strony Blocks (bloki) 74

ZMIENIANIE KOLEJNOŚCI BLOKÓW

Jak widać na rysunku 7.2, lista wyłączonych bloków jest dość imponująca. Aby włączyć wybrany blok, wybierz z listy rozwijanej to położenie na stronie, w którym chcesz umieścić blok (kliknij strzałkę przy pozycji — brak). Następnie, po określeniu regionów położenia poszczególnych bloków, kliknij przycisk Save blocks (zachowaj konfigurację bloków). Gdy powrócisz na stronę główną swojego serwisu, zobaczysz, że bloki pojawiły się w miejscach, które im wyznaczyłeś.

Zmienianie kolejności bloków Należy zakładać, że w pewnym momencie zechcesz zmienić kolejność ułożenia bloków w poszczególnych obszarach strony. Moglibyśmy na przykład zamienić miejscami bloki Who’s new (nowi użytkownicy) i Who’s online (kto przegląda) znane z poprzedniego przykładu. Aby zmienić ułożenie bloków, otwórz stronę Blocks (bloki), klikając odnośnik Structure (budowa), a następnie korzystając z odsyłacza Blocks (bloki). Gdy dostaniesz się już na wspomnianą stronę, ustaw kursor nad znakiem (+) umieszczonym obok nazwy bloku, kliknij i przytrzymaj przycisk myszy, a następnie przesuń nazwę bloku w nowe położenie. W momencie zwolnienia przycisku myszy Drupal dokona (tymczasowego) przemieszczenia bloków. Na górze strony pojawi się komunikat informujący Cię, że wprowadzone zmiany nie zostały jeszcze zapisane (The changes to these blocks will not be saved until the Save blocks button is clicked). Aby je zapisać, przewiń zawartość strony na dół i kliknij przycisk Save blocks (zachowaj konfigurację bloków). Po zapisaniu nowego układu na ekranie pojawi się komunikat potwierdzający dokonanie zmian (The block settings have been updated). Zamknij teraz stronę Blocks (bloki), klikając umieszczony w prawym górnym rogu strony przycisk X. Odśwież zawartość okna przeglądarki. Bloki powinny pojawić się w nim w nowej konfiguracji.

Zmienianie położenia bloków i wyłączanie zbędnych elementów Drupal umożliwia też przenoszenie bloków w zupełnie nowy obszar strony oraz całkowite wyłączanie tych, które są widoczne na stronie. W ramach ćwiczenia wyłączymy teraz blok Who’s new (nowi użytkownicy) i przeniesiemy blok Who’s online (kto przegląda) do lewego panelu bocznego, poniżej wszystkich znajdujących się tam bloków. W tym celu musisz ponownie otworzyć stronę Blocks (bloki), klikając odnośnik Structure (budowa), a następnie odnośnik Blocks (bloki). Na stronie Blocks (bloki), w kolumnie Region (obszar) znajdziesz spis rozwijanych list odpowiadających każdemu z bloków. Odnajdź tę, która została opisana nazwą Who’s new (nowi użytkownicy) i ustaw na niej opcję (brak). Po wskazaniu tej opcji lista zniknie z grupy Right Sidebar (prawy panel boczny).Teraz rozwiń listę Who’s online (kto przegląda) i ustaw na niej pozycję Left Sidebar (lewy panel boczny). Gdy tylko wybierzesz tę opcję, lista rozwijana Who’s online (kto przegląda) przesunie się do grupy Left Sidebar (lewy panel boczny), ustawiając się na szczycie spisu wszystkich bloków w tej grupie. Na początku postanowiliśmy, że blok Who’s online (kto przegląda) znajdzie się na samym dole lewego panelu bocznego, musisz teraz zatem kliknąć znak (+) znajdujący się przy nazwie bloku i przeciągnąć tę pozycję listy na spód wszystkich wymienionych bloków w grupie. Po umieszczeniu bloku na dole listy przewiń stronę w dół i kliknij przycisk Save blocks (zachowaj konfigurację bloków), aby zapisać dokonane zmiany w bazie danych Drupal. Otwórz ponownie stronę główną serwisu i zobacz, jak wygląda po tych porządkach.

Konfigurowanie bloków Strona Block Administration (zarządzanie blokami) pozwala dokonywać różnego rodzaju zmian w ustawieniach działania bloków. Opcje ustawień pozwalają między innymi zmienić tytuł bloku i określić warunki wyświetlania bloku w zależności od sytuacji. W ramach prezentowania Ci możliwości 75

ROZDZIAŁ 7. „ BLOKI

konfigurowania bloków, przedstawię teraz kolejne kroki pozwalające zmienić ustawienia bloku Who’s online (kto przegląda) w taki sposób, by pojawiał się on wyłącznie na stronie głównej serwisu i tylko wtedy, gdy serwis przegląda użytkownik uwierzytelniony identyfikatorem i hasłem. W tym celu kliknij najpierw odnośnik Structure (budowa), a następnie odnośnik Blocks (bloki), aby otworzyć stronę Blocks (bloki). Będąc na niej, odszukaj nazwę bloku Who’s online (kto przegląda) i kliknij umieszczony obok jej nazwy odnośnik configure (konfiguruj). W ten sposób otworzysz stronę konfiguracji bloku (rysunek 7.3).

Rysunek 7.3. Strona ustawień bloku Who’s online (kto przegląda) Formularz ten pozwala zastąpić pierwotną nazwę bloku wybranym wyrażeniem, które należy w takim przypadku wpisać w polu Block title (tytuł bloku). Dzięki rozwijanej liście User activity (aktywność użytkownika) możesz określić, którzy z użytkowników będą pojawiać się w bloku. Definicja bazuje na czasie, jaki upłynął od chwili ostatniej aktywności użytkownika w serwisie, i tę wartość graniczną wybierasz z listy. Przy ustawieniach z omawianego przykładu z listy zostaną usunięci wszyscy użytkownicy, którzy nie podejmowali żadnych działań w serwisie od piętnastu minut. Następne pole, User list length (długość listy użytkowników), definiuje, ile pozycji pojawi się na liście. Jeśli tworzysz serwis, który w zamierzeniu będzie przeznaczony dla dużej liczby użytkowników, i wypisanie ich wszystkich będzie istotne, rozważ poważnie zwiększenie tego parametru. (Przykładem takiej witryny jest serwis społecznościowy. Aby zapewnić właściwe kontakty między użytkownikami, trzeba udostępniać im listę jak największej liczby zalogowanych osób). Na tej samej stronie możesz określić, w którym obszarze danego motywu pojawi się wybrany blok. To ważne w przypadku serwisów o zmiennych motywach — choćby wtedy, gdy inny motyw pojawia się podczas przeglądania serwisu na urządzeniach przenośnych. Wtedy dla każdego z motywów możesz określić inne położenie wybranych bloków. Jest bardziej niż prawdopodobne, że będziesz chciał określić strony, na których pojawi się wskazany blok. Możesz zażądać, żeby blok Who’s online (kto przegląda) był wyświetlany wyłącznie na stronie głównej serwisu. Na samym dole strony Block Configuration (ustawienia bloku) znajdziesz zakładkę Pages (strony) — spójrz na rysunek 7.4. Jeżeli blok ma pojawiać się wyłącznie na stronie głównej, zaznacz opcję wyboru Only the listed pages (pokazuj tylko na stronach z listy) i wpisz w znajdującym się pod nią polu wyrażenie (oznacza ono główną stronę serwisu). Możesz też określić inne strony, podając w polu tekstowym ich adresy URL (na przykład /content/). Ta sama opcja pozwala też określać strony, na których wybrany blok nie będzie się pojawiać, lub wprowadzać kod PHP, który zostanie uruchomiony w chwili wywołania bloku.

76

KONFIGUROWANIE BLOKÓW

Rysunek 7.4. Określanie ustawień wyświetlania Możesz też zażądać, aby wybrany blok pojawiał się na ekranie tylko wtedy, gdy z serwisu korzysta użytkownik o określonej randze. Kliknij zakładkę Roles (rangi) i zobacz, jak możesz zmieniać ustawienia bloku w tym zakresie. W naszym przykładzie wyświetlimy blok dostępnych użytkowników tylko dla tych osób, które są zalogowane w serwisie. Spójrz na rysunek 7.5.

Rysunek 7.5. Ustawienia w zależności od rangi użytkownika Jeżeli wybrałeś już użytkowników, którzy będą widzieć wybrany blok, możesz kliknąć teraz przycisk Save blocks (zachowaj) i powrócić na główną stronę serwisu. Sprawdź teraz działanie nowych ustawień. Przejdź na dowolną inną stronę. Jeśli używasz motywu Garland, po prawej stronie treści pojawi się menu złożone z nazwy użytkownika i odnośnika wylogowania. Kliknij nazwę użytkownika. Zostaniesz przeniesiony na stronę konta użytkownika. Jednocześnie, ponieważ opuścisz w ten sposób stronę główną, blok Who’s online (kto przegląda) zniknie z okna przeglądarki. Teraz masz już pewność, że wprowadzone zmiany zostały zapisane. 77

ROZDZIAŁ 7. „ BLOKI

Bloki z modułów dodatkowych Z systemem Drupal można połączyć tysiące modułów dodatkowych i nie jest to wcale przesada. Wiele ze wspomnianych tu modułów tworzy własne bloki, dzięki którym przekazują pewne informacje osobom odwiedzającym stronę. Jednym z takich modułów jest Weather, blok wyświetlający prognozę pogody dla dowolnego miejsca na świecie. Za chwilę dokonamy jego instalacji i w ten sposób dowiesz się, jak dodawać do systemu Drupal nowe moduły. Przede wszystkim musisz odnaleźć taki moduł. Wspomniany blok prognozy pogody jest dostępny pod adresem http://drupal.org/project/weather. Otwórz stronę tego projektu i kliknij prawym przyciskiem myszy odnośnik prowadzący do archiwum przeznaczonego dla systemu Drupal 7. Wybierz z menu kontekstowego polecenie kopiowania (rysunek 7.6).

Rysunek 7.6. Kopiowanie odnośnika do modułu dodatkowego Pora teraz zainstalować wspomniany moduł. Wybierz z menu administratora odnośnik Modules (moduły). Otworzysz w ten sposób odpowiednią stronę panelu administratora. Teraz kliknij umieszczony na niej odnośnik Install new module (instaluj nowy moduł). W oknie przeglądarki pojawi się nowa strona, na której znajdziesz pole Install from URL (instaluj z adresu URL). Wklej w nim skopiowany wcześniej adres do modułu (rysunek 7.7).

Rysunek 7.7. Wklejanie odnośnika pobierania Gdy wkleisz już adres w odpowiednim polu, naciśnij przycisk Install (instaluj). System pobierze plik modułu ze wskazanej lokalizacji w sieci i przygotuje go do użycia. 78

TWORZENIE WŁASNYCH BLOKÓW

Teraz musisz włączyć zainstalowany moduł (po pobraniu moduł staje się dostępny, ale nie pojawia się na stronie, dopóki sam tego nie zażądasz). Otwórz zakładkę List (lista) znajdującą się na górze panelu Modules (moduły) i przewiń jej zawartość w dół. Gdy dostrzeżesz moduł Weather (pogoda), zaznacz pole wyboru Enabled (włączony), a następnie przewiń na dół strony i kliknij przycisk Save configuration (zachowaj konfigurację). Drupal odświeży stronę modułów i wyświetli komunikat The configuration options have been saved (konfiguracja została zapisana). Teraz pozostaje tylko przypisać położenie na stronie blokom modułu Weather (na przykład blokowi Weather: custom user). W tym celu przypomnij sobie wskazówki zawarte w poprzednich podrozdziałach, by ostatecznie umiejscowić nowy blok na stronie. Nie zapomnij też zatwierdzić zmian, klikając przycisk Save blocks (zachowaj konfigurację bloków). Otwórz teraz ponownie stronę główną serwisu i zobacz, jak wyglądają wyniki Twojej pracy (rysunek 7.8) — na stronie pojawia się informacja o warunkach pogodowych panujących na lotnisku Lublinek (jeśli chcesz poznać pogodę w innym mieście, podaj jego nazwę w polu tekstowym bloku).

Rysunek 7.8. Informacje o pogodzie panującej w Łodzi (lub dowolnym innym mieście!) To tylko jeden z modułów potrafiących tworzyć nowe bloki. Odwiedź stronę www.drupal.org/project/ modules i zapoznaj się z ich listą.

Tworzenie własnych bloków Może się zdarzyć, że będziesz potrzebować jakiegoś bloku, ale nawet po dokładnym przeszukaniu zasobów sieci nie uda Ci się znaleźć projektu, który spełniałby Twoje oczekiwania. W takim przypadku będziesz miał okazję spróbować stworzyć odpowiednie narzędzie własnoręcznie. We własnym bloku możesz umieścić dowolne połączenie kodów HTML i PHP. Jeśli chcesz utworzyć blok, który będzie wymagał uruchomienia skryptu PHP, zajrzyj wcześniej do książki Pro Drupal Development wydanej przez wydawnictwo Apress. To doskonałe źródło wiedzy dla każdego, kto chce zająć się programowaniem w PHP z wykorzystaniem środowiska systemu Drupal. Aby zademonstrować przebieg procesu tworzenia własnego bloku, utworzymy teraz taki, którego zawartość będzie wykorzystywać jedynie statyczny kod HTML. Kod ten posłuży do wyświetlenia wiadomości „Witaj, świecie!”. Nie jest to może najbardziej porywający komunikat, ale dzięki temu przykładowi poznasz proces tworzenia własnego bloku. Pierwszym krokiem jest otwarcie formularza 79

ROZDZIAŁ 7. „ BLOKI

tworzenia bloku, dostępnego pod adresem http://localhost/admin/structure/block/add (wyrażenie localhost zastąp nazwą serwera, na którym zainstalowałeś Drupala, jeśli nie zrobiłeś tego bezpośrednio na swoim komputerze). W polu Block description (opis bloku) wpisz opis bloku, w polu Block title (tytuł bloku) podaj nagłówek, który będzie widniał na stronie, a w polu Block body (treść bloku) — komunikat, który ma się w nim pojawiać. Następnie zaznacz, w którym z obszarów każdego z włączonych motywów ma pojawiać się ten blok, i zaakceptuj ustawienia, klikając przycisk Save block (zachowaj). Rysunek 7.9 powinien ułatwić Ci wypełnienie formularza.

Rysunek 7.9. Definiowanie ustawień własnego bloku Po zapisaniu zmian wróć na stronę główną, żeby zobaczyć, czy utworzony blok pojawił się we właściwym obszarze (rysunek 7.10). Rozwińmy teraz możliwości bloku, wprowadzając do niego stosunkowo prosty kod PHP, którego zadaniem będzie wyświetlanie bieżącej daty. Dzięki temu zabiegowi blok zyska nieco dynamiki. Aby zmienić zawartość bloku, kliknij odnośnik Structure (budowa) w menu administracyjnym, następnie posłuż się odnośnikiem Block (blok), aby otworzyć stronę bloków. Przewijaj jej zawartość w dół tak długo, aż zobaczysz nazwę utworzonego właśnie bloku. Kliknij odnośnik configure (konfiguruj), aby otworzyć formularz edycji bloku. Dodaj kod PHP do treści bloku tuż pod słowami Witaj, świecie!.

80

PODSUMOWANIE

Rysunek 7.10. Twój pierwszy blok w Drupalu

Po wpisaniu kodu zmień formatowanie tekstu z Filtered HTML na PHP code, dzięki czemu Drupal będzie wiedział, w jaki sposób zinterpretować instrukcje języka PHP. Później kliknij przycisk Save block (zachowaj). Wróć na stronę główną i zobacz, jak wygląda po wprowadzeniu tych zmian.

Podsumowanie Bloki to potężne narzędzia, pozwalające tworzyć i dynamicznie wyświetlać treść na stronie serwisu. Dzięki nim możesz sprawić, że strona będzie bardziej interaktywna. W tym rozdziale poznałeś bloki dostarczane razem z rdzeniem systemu Drupal 7, dowiedziałeś się, jak zainstalować nowy moduł, który pozwoli Ci wyświetlać pogodę w okolicy, oraz nauczyłeś się tworzyć nowy, niebazujący na gotowych rozwiązaniach blok. Bloki powrócą w rozważaniach dotyczących widoków, paneli i instalacji dodatkowych modułów, o czym będę pisać w dalszych rozdziałach.

81

ROZDZIAŁ 7. „ BLOKI

82

ROZDZIAŁ 8 „„„

Moduły systemu Drupal

Drupal to niesamowicie rozbudowany produkt, nawet w swojej najprostszej postaci. Możliwości, jakie oferuje sam rdzeń systemu Drupal 7, są częstokroć więcej niż wystarczające dla twórców stron internetowych. Zdarza się jednak tak, że sam rdzeń to za mało. W takim przypadku wystarczy, że sprawdzisz zasoby tysięcy modułów napisanych z myślą o rozwiązywaniu wszelkich problemów twórców stron internetowych w tym systemie. W tym rozdziale zaprezentuję Ci wiedzę niezbędną do zainstalowania, włączenia i skonfigurowania modułów dodatkowych. Wspólnie pokonamy poszczególne etapy instalowania, włączania i konfigurowania jednego z najpopularniejszych i najbardziej wszechstronnych modułów — modułu Views.

Moduły dodatkowe Moduł dodatkowy to program lub zestaw programów, które rozszerzają możliwości podstawowej wersji Drupala. Moduły dodatkowe są projektowane, tworzone i dostarczane użytkownikom systemu przez programistów będących aktywnymi członkami społeczności miłośników systemu Drupal. Wszystkie moduły są darmowe. Pobiera się je ze strony drupal.org i instaluje za pośrednictwem strony modułów panelu administracyjnego. Już za chwilę przedstawię wszystkie kroki tego procesu. Moduł dodatkowy może wykonywać dowolne działania — może być prostym mechanizmem generującym automatycznie tytuły nowych wpisów, ale może też być rozbudowaną aplikacją eCommerce umożliwiającą dokonywanie zakupów, wykonywanie inwentaryzacji, zarządzanie zamówieniami i wysyłką, obsługę kart kredytowych, zarządzanie kontami użytkowników i obsługę zwrotów. W sieci znajdziesz tysiące modułów o dowolnie wybranych kształtach i rozmiarach, opracowanych z myślą o prawie każdym możliwym zagadnieniu. Aby przeszukać ich zasoby, odwiedź stronę www.drupal.org/project/modules i zapoznaj się z zawartością poszczególnych kategorii modułów. Poniżej znajdziesz listę przykładowych kategorii (wartość podana w nawiasie oznacza liczbę modułów w tej kategorii). • Utility (935) — narzędzia • Content (907) — zawartość • Third-party integration (819) — integracja z zewnętrznymi aplikacjami • Administration (561) — administrowanie witryną • Content Construction Kit (CCK) (422) — zestaw narzędzi do tworzenia zawartości • Community (360) — społeczność • e-Commerce (316) — handel w internecie

ROZDZIAŁ 8. „ MODUŁY SYSTEMU DRUPAL

• User management (281) — zarządzanie kontami użytkowników • Import/export (150) — importowanie i eksportowanie danych • Multilingual (83) — obsługa różnych języków • Performance and scalability (58) — działanie i skalowalność • Spam prevention (18) — zapobieganie otrzymywaniu niechcianych wiadomości • Mobile (15) — przenośność Jak widzisz, w sieci można znaleźć tysiące modułów należących do przeróżnych kategorii. Zastosowany tu ogólny podział nie zawsze oddaje bogactwo funkcji i możliwości, jakie stają przed Tobą otworem po zainstalowaniu wybranego modułu. Niejednokrotnie trzeba poświęcić naprawdę wiele czasu i wykazać się daleko idącą cierpliwością, żeby odnaleźć moduł oferujący potrzebne Ci rozwiązania. Im większe wymagania postawisz swojej stronie, tym bardziej prawdopodobne, że będziesz musiał zainstalować większą liczbę modułów. Zazwyczaj najtrudniejszym zadaniem, przed którym staje administrator witryny tworzonej w systemie Drupal, jest właśnie podjęcie decyzji o tym, które moduły wybrać — musi przecież poznać ich możliwości i zorientować się, które będą ze sobą współgrać, a które nie. Zalecam Ci teraz małe ćwiczenie. Udaj się na stronę www.drupal.org/project/modules i z listy rozwijanej Sort by (sortuj po) wybierz pozycję Date (data), a następnie kliknij przycisk Search (szukaj). W ten sposób wyświetlisz na ekranie wszystkie dostępne moduły posortowane w kolejności od ostatnio zmienianego. Odwiedzaj tę stronę przez kilka dni pod rząd i sprawdzaj opisy ostatnio dodanych i zmienianych modułów. Zajmie Ci to tylko kilka minut dziennie, ale dzięki temu prostemu ćwiczeniu szybko pojmiesz naturę modułów i zorientujesz się, do jakich zadań można je wykorzystać. Istnieje też doskonała zewnętrzna strona ułatwiająca poznanie zasad działania każdego z modułów — www.drupalmodules.com. Dostępna na niej wyszukiwarka pozwala łatwiej i szybciej odnaleźć moduł odpowiedni do wykonania określonego zadania.

Jak pobierać, instalować i konfigurować moduły? Pierwszym krokiem procesu instalacji jest odnalezienie właściwego modułu. Jak już pisałem, liczba opcji sięga kilku tysięcy, zatem wybranie tego właściwego jest często największym wyzwaniem, przed jakim staniesz. Cały proces opiszę na przykładzie jednego z najbardziej popularnych i wszechstronnych modułów — Views. Strona instalatora w panelu sterowania, która pozwala pobierać i instalować moduły poprzez podanie ich adresu URL, jest nowością wprowadzoną w siódmej wersji systemu Drupal. Teraz to Drupal zajmuje się pobraniem pliku instalacyjnego modułu, rozpakowaniem go, skopiowaniem plików do odpowiednich katalogów i zainstalowaniem modułu. Aby dostać się do strony modułów, gdzie znajduje się mechanizm pobierania i instalowania zawartości, kliknij odnośnik Modules (moduły) umieszczony w górnym menu. Drupal wyświetli stronę konfiguracji modułów, na której znajdziesz wszystkie moduły dostarczane z rdzeniem systemu (rysunek 8.1). Aby rozpocząć proces instalacji, kliknij odnośnik Install new module (instaluj nowy moduł) znajdujący się na górze strony. W ten sposób otworzysz stronę widoczną na rysunku 8.2. Na tej stronie musisz podać albo adres URL pliku instalacyjnego modułu (ze strony drupal.org), albo, jeśli wcześniej sam pobrałeś ten plik na dysk, ścieżkę dostępu do katalogu, w którym jest on zapisany. W przypadku pierwszego rozwiązania adres podajesz w polu Install from a URL (zainstaluj z lokalizacji w sieci), w przypadku drugiego — ścieżkę podajesz w polu Upload a module ot theme archive to install (wyślij na serwer archiwum modułu lub skórki). Wybierzemy prostsze rozwiązanie i podamy adres internetowy pliku instalacyjnego. W celu pobrania adresu URL udaj się na stronę www.drupal.org/project i znajdź tam moduł, który chcesz zainstalować. W naszym przypadku jest to moduł Views, którego strona znajduje się pod adresem www.drupal.org/projects/views (każdy moduł posiada własną stronę w serwisie drupal.org, a adres prowadzący do pliku instalacyjnego zawsze rozpoczyna się od www.drupal.org/projects/, po którym to wyrażeniu pojawia się nazwa modułu). Otwórz nową kartę w przeglądarce lub nowe okno przeglądarki i wpisz w pasku adresowym adres strony modułu Views 84

JAK POBIERAĆ, INSTALOWAĆ I KONFIGUROWAĆ MODUŁY?

Rysunek 8.1. Moduły systemu Drupal

Rysunek 8.2. Strona instalatora modułów (www.drupal.org/project/views). Na dole strony znajdziesz listę bieżących wersji modułu. Jej wygląd przedstawia rysunek 8.3. W miarę możliwości powinieneś wybierać najnowszą wersję modułu. Zwróć uwagę na to, czy znajduje się ona na zielonym tle. Czasami jednak będziesz zmuszony skorzystać z wersji będącej ciągle w fazie produkcji, jeśli wersja stabilna nie została jeszcze przygotowana. Wersje deweloperskie (oznaczone developement, alpha i beta) są zazwyczaj umieszczane na kolorowym tle, a ich numer kończy się dodatkiem -dev, -alpha lub -beta. Używaj ich z największą ostrożnością, ponieważ prace nad nimi ciągle trwają i nie do końca wiadomo, jak taki moduł będzie sprawować się w różnych okolicznościach. W tym przypadku potrzebujemy wersji modułu przeznaczonej dla systemu Drupal 7, więc musimy odnaleźć plik opisany symbolem 7.x. Aby poznać adres URL pliku instalacyjnego, kliknij prawym przyciskiem myszy odnośnik Download (pobieranie) umieszczony przy interesującej Cię wersji pliku. Następnie wybierz z menu kontekstowego polecenie Kopiuj. Wróć na stronę zarządzania blokami i wklej adres URL w pierwszym polu tekstowym formularza.

85

ROZDZIAŁ 8. „ MODUŁY SYSTEMU DRUPAL

Rysunek 8.3. Moduł Views Teraz jesteś gotów do przeprowadzenia operacji zainstalowania nowego modułu. Kliknij przycisk Install (instaluj). Drupal pobierze plik instalacyjny ze wskazanej lokalizacji, rozpakuje jego zawartość, przeniesie pliki i katalogi modułu do odpowiednich katalogów na serwerze, po czym uruchomi skrypt instalacyjny modułu. Moduł został już zainstalowany, ale jeszcze nie jest włączony. Aby móc z niego korzystać, musisz go włączyć, zaznaczając w tym celu pole wyboru w kolumnie Enabled (włączone) na stronie konfiguracji modułu. Operację zatwierdź kliknięciem przycisku Save configuration (zachowaj konfigurację). Widok odpowiedniego fragmentu strony przedstawia rysunek 8.4. W przypadku modułu Views włącz tylko bloki Views i Views UI.

Rysunek 8.4. Strona konfigurowania modułu Teraz moduł jest już zainstalowany, włączony i gotów do użycia. W ten sam sposób przeprowadzisz instalację dowolnego z modułów dodatkowych, który chcesz umieścić na stronie.

Konfigurowanie modułu i określanie uprawnień Niektóre z modułów (lecz nie wszystkie) dają pewne możliwości dostosowywania ich działania i określania uprawnień użytkowników. Zainstalowany właśnie moduł Views pozwala tylko na określenie, którzy użytkownicy będą mogli z niego korzystać. Aby określić uprawnienia użytkowników do obsługi modułu, kliknij odnośnik Permissions (uprawnienia) umieszczony w kolumnie Operations (działania). Rysunek 8.5 przedstawia odpowiedni fragment okna konfiguracji.

86

KONFIGUROWANIE MODUŁU I OKREŚLANIE UPRAWNIEŃ

Rysunek 8.5. Wygląd panelu konfiguracji modułów po włączeniu modułu Views Domyślne ustawienia uprawnień modułu Views zakładają, że administrator witryny ma pełny dostęp do wszystkich jej funkcji związanych z modułem. Lista przedstawiona na rysunku 8.6 pokazuje, że moduł Views wprowadza dwa rodzaje uprawnień — istnieją w nim rangi użytkowników, którzy mogą zarządzać modułem, oraz rangi użytkowników, którzy mogą uniknąć kontroli podczas uzyskiwania dostępu do modułu. Domyślne ustawienia sprawdzają się w przypadku większości serwisów, więc pozostawimy je bez zmian.

Rysunek 8.6. Ustawienia uprawnień do korzystania z modułu Views Gdy będziesz instalować i konfigurować inne moduły, nie zapomnij zajrzeć też do definicji uprawnień każdego z modułów. Niektóre z modułów pozwalają definiować parametry konfiguracyjne. Przykładem może służyć tu moduł Search (przeszukaj), będący częścią rdzenia systemu Drupal. Zajrzyj na stronę konfiguracji modułów, a zobaczysz odnośnik configure (konfiguruj) znajdujący się w kolumnie Operations (działanie) modułu Search (przeszukaj). Oznacza to, że twórca modułu zezwolił na modyfikowanie pewnych jego parametrów. Rysunek 8.7 przedstawia niektóre z opcji konfiguracyjnych modułu Search (przeszukaj).

Rysunek 8.7. Opcje konfiguracyjne modułu Search (przeszukaj) 87

ROZDZIAŁ 8. „ MODUŁY SYSTEMU DRUPAL

Warto zawsze zajrzeć do opcji konfiguracyjnych zainstalowanych i włączonych modułów, aby upewnić się, że zostały one ustawione właściwie.

Włączanie innych modułów Jeżeli „odziedziczysz” gotową stronę w systemie Drupal albo będziesz chciał włączyć moduły zainstalowane już na stronie (na przykład te, które stanowią część rdzenia systemu Drupal, ale nie są włączane automatycznie w czasie instalacji). Aby zapoznać się z listą dostępnych modułów, kliknij znajdujący się na górze strony odnośnik Modules (moduły). W ten sposób otworzysz stronę zarządzania modułami, którą przedstawia rysunek 8.8.

Rysunek 8.8. Strona zarządzania modułami Strona zarządzania modułami jest podzielona na kilka sekcji, z których każda zawiera opcje ustawień konkretnego modułu albo grupy modułów. Moduły rdzenia znajdują się w grupie zatytułowanej Core (rdzeń). Proces włączania modułu przeprowadzę przykładowo na jednym z modułów rdzenia, który nie jest włączany domyślnie podczas procesu instalacji — module Blog. Na rysunku 8.8 widać, że pole Enabled (włączony) modułu Blog nie jest zaznaczone. Aby włączyć ten moduł, zaznacz znajdujące się przy nim pole wyboru, przewiń na dół strony i kliknij przycisk Save configuration (zachowaj konfigurację). Od tej chwili moduł Blog może być wykorzystywany na stronie. Po kliknięciu przycisku zachowywania konfiguracji na stronie panelu zarządzania modułami pojawi się komunikat o zapisaniu wprowadzonych zmian. Moduł Blog jest gotów do użycia.

Wyłączanie modułu Bywa też tak, że zainstalowany kiedyś moduł przestaje być w pewnym momencie potrzebny. Aby wyłączyć nieużywany moduł, wystarczy usunąć zaznaczenie z pola wyboru umieszczonego przy nazwie modułu. Sprawdź działanie tej funkcji, wyłączając moduł Blog, który uruchomiłeś w poprzednim kroku tego ćwiczenia. W tym celu otwórz stronę zarządzania modułami — kliknij odnośnik Modules (moduły) menu administracyjnego — i przewiń zawartość strony, by odnaleźć żądany wpis. Usuń zaznaczenie z pola Enable (włączony), przewiń zawartość strony w dół i kliknij przycisk Save configuration

88

WŁĄCZANIE INNYCH MODUŁÓW

(zachowaj konfigurację). System sam odświeży zawartość listy, a wtedy przekonasz się, że wskazany moduł został wyłączony.

Aktualizowanie wersji modułu Moduły budujące stronę w systemie Drupal są aktualizowane bardzo często. Ich twórcy starają się w ten sposób usuwać błędy działania modułu i dodawać do niego nowe funkcje. Na szczęście system Drupal 7 sam informuje Cię o pojawieniu się nowej wersji modułu i automatycznie przeprowadza proces aktualizacji. Aby zorientować się, czy nie pojawiły się jakieś aktualizacje, kliknij zakładkę Update (aktualizacja) w oknie konfiguratora modułów (rysunek 8.9).

Rysunek 8.9. Lista modułów do zaktualizowania Aby przeprowadzić aktualizację, zaznacz pole umieszczone obok nazwy modułu, a następnie kliknij przycisk Download these updates (pobierz te aktualizacje). „ Uwaga: Może zdarzyć się, że nie będziesz chciał przeprowadzać aktualizacji modułu, na przykład w sytuacji, gdy ta operacja uniemożliwi uruchomienie innego, powiązanego z aktualizowanym, modułu. Dlatego też sugeruję, byś przed dokonaniem aktualizacji zapoznał się z opiniami na forum systemu Drupal i dowiedział się, czy ta operacja nie wywoła jakichś konfliktów.

Po pobraniu aktualizacji system Drupal przystąpi do uruchomienia skryptu aktualizacji. Postępuj zgodnie ze wszystkimi wskazówkami, a przede wszystkim nie zapomnij wykonać kopii zapasowej (rysunek 8.10), zanim zezwolisz na wykonanie skryptu. Choć aktualizacja modułu nie powoduje zazwyczaj występowania problemów, może się zdarzyć, że pojawią się nieprzewidziane skutki, szczególnie w związku z pracą innych modułów lub zmianami własnymi, jakie wprowadziłeś na stronie. Po zakończeniu aktualizacji zamknij okno skryptu i powróć na stronę serwisu.

Rysunek 8.10. Uruchamianie skryptu aktualizacji

89

ROZDZIAŁ 8. „ MODUŁY SYSTEMU DRUPAL

Odinstalowanie modułu Czasami po zainstalowaniu modułu okazuje się, że jego możliwości nie spełniają Twoich oczekiwań albo że wywołuje on konflikty z innymi częściami serwisu. Wtedy możesz skorzystać z zakładki Uninstall (odinstaluj) dostępnej na górze strony zarządzania modułami. Po kliknięciu karty na ekranie pojawi się lista modułów, które potrafią samoczynnie przeprowadzić proces deinstalacji. „ Uwaga: Nie wszystkie moduły potrafią się same odinstalować. Nie każdy twórca modułów wyposaża je w tę funkcję.

Jeśli automatyczne odinstalowanie modułu nie jest możliwe, musisz przeprowadzić je ręcznie. W tym celu wykonaj następujące kroki. 1. Na stronie zarządzania modułami wyłącz wybrany moduł. 2. Otwórz na serwerze katalog Sites/Default/Modules. 3. Zaznacz folder, w którym znajdują się pliki modułu, i usuń go. Odinstalowując którykolwiek z modułów, powinieneś zachować daleko idącą ostrożność, ponieważ niejednokrotnie z usuwanym modułem są powiązane inne, z których będziesz chciał nadal korzystać. Jeśli nie jesteś pewien, czy takie zależności nie istnieją, odwiedź stronę modułu w serwisie drupal.org i przeczytaj jego opis. Znajdziesz tam wypisane wszystkie powiązania danego modułu z innymi.

Pierwsza jedenastka modułów Istnieje kilka modułów, które zdają się przypadać do gustu każdemu, kto ma z nimi styczność. Dla nas, którzy żyjemy i oddychamy Drupalem, moduły te tworzą podstawowy zestaw narzędzi pracy, przez co pojawiają się w niemal każdym projekcie.

Moduł Content Construction Kit (CCK) Przed nastaniem ery systemu Drupal 7 moduł CCK był dodatkiem, który pojawiał się w niemal każdym poważnym projekcie, a każdy szanujący się programista zaliczał go do nieodłącznych części systemu Drupal. Moduł CCK pozwala tworzyć własne typy wpisów. Przypomnij sobie, jak w poprzednich rozdziałach dodawaliśmy treść do naszego przykładowego serwisu. Mieliśmy do wyboru dwa rodzaje wpisów zdefiniowanych domyślnie w Drupal 7 — stronę i artykuł. Różnią się one między sobą przede wszystkim tym, że w szablonie artykułu pojawia się dodatkowe pole, które pozwala załączać grafikę do umieszczanych w serwisie treści. Moduł CCK pozwala definiować nowe typy wpisów, w których mogą pojawiać się takie pola, jakie tylko sobie wymyślisz. Gdybyś doszedł do wniosku, że potrzebujesz wpisu typu „wydarzenie”, który charakteryzowałby się posiadaniem pól daty i czasu rozpoczęcia, daty i czasu zakończenia, miejsca, grafiki, grafiku miejsc siedzących i opisu, mógłbyś oczywiście skorzystać z szablonu strony. Problem polega na tym, że osoba tworząca taki wpis musiałaby pamiętać o podaniu tych wszystkich informacji w polu treści strony. Łatwiej jest zatem skorzystać z modułu CCK i utworzyć w nim nowy rodzaj wpisu, który będzie posiadać wszystkie wymienione przeze mnie pola tekstowe (przyciski wyboru, pola wyboru, kalendarze, listy wyboru i obszary tekstowe). W siódmej wersji systemu Drupal część modułu CCK znalazła się w rdzeniu, ale niektóre z jego fragmentów trzeba nadal pobierać osobno. Warto sprawdzić ich możliwości. O tym, jak korzystać z modułu CCK, napiszę w rozdziale 10.

90

PIERWSZA JEDENASTKA MODUŁÓW

Moduł Views Gdyby spytać doświadczonego twórcę stron bazujących na systemie Drupal o jego ulubione moduły, można z powodzeniem założyć, że moduł Views pojawi się na pierwszym bądź drugim miejscu listy. Moduł Views jest uniwersalnym (niemal jak szwajcarski scyzoryk) narzędziem, dzięki któremu będziesz mógł wybierać fragmenty treści serwisu i tworzyć z nich nowe wpisy. Załóżmy, że wprowadziłeś do serwisu pięćdziesiąt wpisów, z których każdy opisuje jakieś mające miejsce w przeszłości wydarzenie. Załóżmy też, że chciałbyś umieścić je na liście, posortowane według daty publikacji. Moduł Views może sporządzić taką listę za Ciebie. Załóżmy, że chciałbyś wypisać listę artykułów serwisu w postaci tabeli przypominającej arkusz Excela. Moduł Views potrafi uporządkować je w taki sposób. Przyjmijmy dodatkowo, że pragniesz, aby odwiedzający tę stronę mogli sortować tytuły artykułów poprzez kliknięcie tytułu wybranej kolumny. Moduł Views znów przyjdzie Ci z pomocą. A gdybyś zechciał dodać do strony filtr, za pomocą którego odwiedzający mógłby wybrać temat, osobę lub miejsce i wyświetlić tylko te wpisy, które wiązałyby się ze wskazanym parametrem, musiałbyś odwołać się jedynie do możliwości modułu Views. Tak samo wygląda kwestia powiązania kanału RSS z publikowaną zawartością strony — moduł Views pozwala stworzyć takie narzędzie. Dodatkowo obsługa tego modułu nie jest wcale skomplikowana, a przez zakres swoich możliwości Views staje się niezbędny niemalże każdemu projektantowi stron Drupal. Modułowi temu poświęcę rozdział 11.

Moduł Panels Moduł Panels trzyma się w ścisłej czołówce najbardziej przydatnych modułów systemu Drupal, goniąc w klasyfikacji moduły CCK i Views. W czasie prac nad przykładowym serwisem musiałeś zauważyć, że byłeś ograniczany do umieszczania treści w dwóch panelach bocznych lub w głównym obszarze wprowadzania treści (mieszczącym się pomiędzy nagłówkiem a stopką). Co zatem zrobić, gdyby chciało się podzielić stronę na kilka wierszy i kolumn, i dodatkowo mieć łatwy dostęp do każdej z nich? Wystarczy skorzystać z modułu Panels. Nie ma chyba narzędzia, które pozwalałoby tworzyć skomplikowane układy zawartości strony szybciej i łatwiej. O pracy z modułem Panels napiszę w rozdziale 12.

Moduł Imagecache Oto kolejna obowiązkowa pozycja na naszej liście. Moduł ten znacznie upraszcza proces dodawania fotografii na stronę internetową. Największym problemem związanym z umieszczaniem zdjęć w internecie jest to, że ludzie fotografują świat aparatami o matrycach mających dwanaście megapikseli. W efekcie zdjęcia są ogromne — mam tu na myśli zarówno ich wymiary, jak i ciężar pliku. Gdyby pozwolić im umieszczać zdjęcia na stronach bez uprzedniego zmniejszenia wymiarów i rozmiaru pliku, pobieranie grafiki z serwera trwałoby całe minuty. To oczywiście skutecznie odstraszyłoby odwiedzających od wracania do Twojego serwisu. Na szczęście moduł Imagecache rozwiązuje wszystkie problemy związane z umieszczaniem zdjęć w internecie. Potrafi automatycznie zmienić wymiary zdjęcia do określonych wcześniej granic oraz zredukować jego ciężar do wielkości akceptowanej przez większość łączy. Moduł ten pozwala też przycinać automatycznie obszar zdjęcia i dokonywać bardziej zaawansowanych obróbek obrazu. Imagecache jest niezbędny na każdej stronie, na której pojawiają się zdjęcia.

Moduł Nicemenus Drupal w swojej podstawowej postaci pozwala tworzyć pionowe i poziome listy menu, pod warunkiem, że będą one jednopoziomowe. Bardzo często jednak zdarza się, że potrzebujesz menu, którego zawartość rozwijałaby się w dół (menu poziome) lub wysuwała w bok (menu pionowe). Drupal pozwala wprawdzie układać elementy listy menu w odpowiednim porządku, ale zadbanie o ruch poszczególnych poziomów tych list, gdy użytkownik najedzie na nie kursorem myszy, należy już do obowiązków twórcy strony. Na szczęście moduł Nicemenus zdejmuje nam ten ciężar z barków. 91

ROZDZIAŁ 8. „ MODUŁY SYSTEMU DRUPAL

Moduł Nodequeues Jednym z wyzwań, przed jakimi staje twórca interaktywnej strony internetowej, jest uproszczenie procedury dodawania treści do niezbędnego minimum przy jednoczesnym zapewnieniu, by treść ta znalazła się we właściwym obszarze strony. Możesz oczywiście udostępnić autorom wpisów stronę modułu Panels, gdzie mogliby ręcznie powiązać każdy z segmentów (nodes) z obszarem strony, ale możesz też zainstalować moduł Nodequeues, który pozwoli autorowi w prosty sposób wybrać kolejkę wpisów. Ty — administrator serwisu — musisz zadbać o stworzenie kolejek segmentów i przypisać je poszczególnym obszarom strony. Autor wpisu wybierze po prostu kolejkę, według której jego segmenty będą wypełniać obszar strony. Całą procedurę opiszę dokładniej w rozdziale poświęconym modułowi Panels.

Moduł WYSIWYG Podstawowa wersja systemu Drupal zmusza nas do wprowadzania tekstu w zwykłym polu tekstowym, a przecież większość z nas przyzwyczaiła się już do pracy z tak zwanymi edytorami WYSIWYG (z ang. what-you-see-is-what-you-get, czyli „wygląda tak, jak widzisz”). Takim edytorem jest popularny Microsoft Word, w którym wygląd tekstu na ekranie odpowiada wyglądowi późniejszego wydruku. Moduł WYSIWYG pozwala w prosty sposób zintegrować z systemem Drupal jeden (albo kilka) z bardziej rozwiniętych edytorów tekstowych (jak choćby TinyMCE czy CKEditor).

Moduł Pathauto Jednym z podstawowych elementów skutecznego wyszukiwania materiałów w internecie jest tworzenie przejrzystych adresów URL. Podstawowa wersja systemu Drupal umieszcza wpisy pod adresami postaci http://localhost/node/1. Wyszukiwarka internetowa nie wie, czym jest „node/1”, ani nie potrafi połączyć tego adresu z zawartością umieszczonej pod nim strony. Również ludzie odwiedzający serwis będą mieli problemy z poruszaniem się po nim, jeśli strony nieumieszczone w menu będą znajdować się pod adresem typu http://localhost/node/2487. Na szczęście istnieje moduł Pathauto, którego zadaniem jest nadawanie alternatywnego adresu URL tworzonemu właśnie wpisowi. Adres ten powstaje na bazie tytułu wpisu, w którym wszystkie wielkie litery zostają zastąpione małymi, a spacje zostają zamienione na znak dywizu (-). Powróćmy do przykładowego wpisu spod adresu http://localhost/node/2487. Załóżmy, że kryje się pod nim artykuł o tytule „Najlepsze umowy miesiąca”. Moduł Pathauto przekształci adres wpisu na http://localhost/node/najlepsze-umowy-miesiąca. Adres alternatywny staje się podstawową ścieżką dostępu do treści artykułu, ale przede wszystkim ułatwia pracę wyszukiwarek i umożliwia ludziom sprawne poruszanie się po stronach serwisu — znacznie łatwiejsze niż w przypadku pracy z adresami postaci http://localhost/node/2487.

Moduł Webform Moduł Webform to łatwy w obsłudze interfejs, pozwalający tworzyć formularze internetowe. Formularze internetowe pozwalają gromadzić dowolne zestawy danych — w tym temacie ogranicza Cię wyłącznie Twoja wyobraźnia. Przykładem może być formularz wypełniany przez kandydata na stanowisko pracy, formularz zamówienia czy formularz rejestracyjny. Nie przychodzą mi do głowy żadne ograniczenia, jakie mógłbyś napotkać, tworząc formularz w module Webform. Co więcej, moduł ten nie ogranicza się do samego stworzenia formularza, ale oferuje też narzędzie, które wyśle wyniki ankiety do określonego wcześniej odbiorcy, a także mechanizm eksportowania zebranych danych do arkusza Excela.

92

PODSUMOWANIE

Moduł Backup and Migrate Moduł ten pozwala przeprowadzić automatyczne wykonywanie kopii zapasowej danych zebranych w bazie systemu Drupal z określoną przez Ciebie częstotliwością (co dwanaście godzin, co dwadzieścia cztery godziny i tak dalej). Poza tym umożliwi Ci ręczne wykonanie kopii w dowolnym momencie, sprowadzając procedurę wykonania tego procesu do kliknięcia jednego przycisku. Ten sam moduł pozwoli odzyskać zawartości bazy poprzez kliknięcie przycisku przywracania danych. Administratorzy stron bazujących na systemie Drupal sypiają lepiej, wiedząc, że kopie ich baz są wykonywane automatycznie.

Moduł Ubercart To lista najlepszych jedenastu modułów, a nie, jak to jest w zwyczaju, dziesięciu takich pozycji, ponieważ musiał znaleźć się na niej także moduł Ubercart. To narzędzie nieco bardziej wyspecjalizowane niż jakiekolwiek z wymienionych przeze mnie do tej pory. Dzięki temu modułowi będziesz mógł bez żadnych kłopotów założyć i poprowadzić sklep internetowy — niezależnie od tego, czy chcesz sprzedawać towar fizyczny, czy dostarczać go w postaci elektronicznej. Ubercart pozwoli Ci nawet pobierać opłaty z karty kredytowej. Wspominałem już o tym, ale powtórzę raz jeszcze — poświęć kilka minut dziennie na przejrzenie zawartości strony www.drupal.org/project/modules, a przekonasz się, ile jeszcze narzędzi możesz mieć całkowicie za darmo!

Podsumowanie W tym rozdziale starałem się pokazać, jak zwiększyć znacząco możliwości witryny budowanej w systemie Drupal poprzez zainstalowanie odpowiednio dobranych modułów dodatkowych. Masz do wyboru tysiące darmowych produktów, a to oznacza, że najprawdopodobniej ktoś napisał już moduł, który będzie w stanie zrealizować to, co sobie wymyśliłeś. W dalszej części książki spróbujemy zwiększyć nieco interaktywność budowanego serwisu! Następny rozdział zawiera informacje o tym, jak dodać w serwisie funkcje blogowania, wypowiadania się na forum i przeprowadzania ankiet.

93

ROZDZIAŁ 8. „ MODUŁY SYSTEMU DRUPAL

94

ROZDZIAŁ 9 „„„

Funkcje interaktywne

Każdy właściciel serwisu internetowego — nie tylko tworzonego w Drupalu — powinien zadać sobie pytanie, w jaki sposób mógłby nakłonić odwiedzających jego witrynę internautów do regularnych powrotów. Jedną z najskuteczniejszych metod zapewnienia sobie lojalności użytkowników jest związanie ich z serwisem za pomocą jego interaktywnych funkcji — bloga, forum dyskusyjnego, częstych ankiet czy zbierania danych poprzez odpowiednio opracowane formularze. Jeżeli odwiedzający zadał pytanie na forum lub skomentował Twoją stronę, masz znacznie większe szanse, że zechce powrócić chociażby po to, by przekonać się, jak inni ludzie zareagowali na jego opinię. W tym rozdziale pokażę Ci, jak włączyć i skonfigurować trzy najpopularniejsze moduły interaktywnych funkcji udostępnianych w rdzeniu systemu Drupal, dzięki którym zyskasz szansę przywiązania odwiedzających do swojej witryny i zachęcenia ich do powrotu.

Blogowanie Blogowanie to w dzisiejszych czasach dominujący przejaw aktywności w internecie. Polega ono na zapisywaniu swoich przemyśleń na dany temat lub tematy i udostępnianie ich szerszej rzeszy czytelników. Wiele osób traktuje blogi jako formę prowadzenia dziennika czy pamiętnika z własnymi zapiskami, przy czym owa „własność” tyczy się prezentowanego, subiektywnego punktu widzenia, a nie dostępności bloga. Blogi są zazwyczaj dostępne wszystkim użytkownikom internetu. Istnieją strony, na których autor prowadzi wyłącznie bloga albo poświęca się jednemu tematowi (przykładem może być strona http://buytaert.net prowadzona przez twórcę Drupala). Są też strony, na których blog stanowi jedynie niewielki fragment zawartości (na przykład whitehouse.gov). Drupal pozwala prowadzić i takie, i takie.

Włączanie funkcji blogowania System Drupal 7 oferuje specjalny moduł blogowy, który umożliwi użytkownikom o odpowiednich uprawnieniach pisanie notek blogowych i publikowanie ich w Twoim serwisie. Aby przekonać Cię, jak proste jest dodanie tego elementu interaktywnego do strony, pokażę zaraz, w jaki sposób włączyć moduł blogowania i skonfigurować go tak, by użytkownik o randze „bloger” mógł dodawać notki do tej części serwisu. Zaczniemy od włączenia modułu Blog. Kliknij umieszczony w górnym menu odnośnik Modules, aby wyświetlić listę dostępnych i włączonych modułów na stronie. Jedną z pierwszych pozycji działu Core (rdzeń) jest moduł Blog. Jeśli dotąd go nie włączyłeś, zrób to teraz. W tym celu zaznacz znajdujące się obok jego nazwy pole wyboru, po czym przewiń zawartość strony na dół i zaakceptuj zmiany, klikając przycisk Save configuration (zachowaj konfigurację).

ROZDZIAŁ 9. „ FUNKCJE INTERAKTYWNE

Od tej chwili moduł Blog jest już zainstalowany, a wszyscy użytkownicy strony legitymujący się odpowiednią rangą będą mogli korzystać z usługi blogowania. Teraz pora zająć się tworzeniem rangi użytkownika „bloger”. W tym celu kliknij umieszczony na górze strony odnośnik People (użytkownicy). Na otwartej właśnie stronie zarządzania użytkownikami otwórz zakładkę Permissions (uprawnienia), a następnie odnajdź umieszczony w prawym górnym rogu odnośnik Roles (rangi) i kliknij go. W polu tekstowym znajdującym się w kolumnie Name (nazwa) wpisz nazwę nowej rangi, bloger, a następnie kliknij przycisk Add role (dodaj rangę). Po utworzeniu rangi musisz określić uprawnienia należących do niej użytkowników, aby mogli dodawać nowe wpisy na blogu i edytować już istniejące. Pozostając ciągle na stronie Roles (rangi), kliknij odnośnik edit permissions (edytuj uprawnienia) znajdujący się przy nazwie nowoutworzonej rangi. Na stronie uprawnień odnajdź i zaznacz następujące pola wyboru: • Create new Blog entry content (tworzenie wpisów w blogu), • Edit own Blog entry content (edycja własnych wpisów w blogu), • Delete own Blog entry content (usuwanie wpisów z własnego blogu). Po zaznaczeniu tych opcji kliknij przycisk Save permissions (zachowaj ustawienia uprawnień). Teraz utwórz nowe konto użytkownika i nadaj mu rangę bloger. Aby utworzyć konto, kliknij widoczny na górze strony odnośnik People (użytkownicy), a następnie skorzystaj z odsyłacza Add user (dodaj użytkownika). W polu Name (nazwa użytkownika) formularza rejestracji wpisz tester, natomiast w polu E-mail address (adres e-mail) podaj fikcyjny adres [email protected]. W polu Password (hasło) wpisz tester123. Gdy już to zrobisz, kliknij umieszczony na dole strony przycisk Create new account (utwórz nowe konto).

Tworzenie wpisów w blogu Teraz musisz wylogować się ze swojego serwisu (przypominam, że w tej chwili jesteś zalogowany jako administrator) i zalogować do nowoutworzonego konta tester. Po zalogowaniu kliknij odnośnik Add new content (dodaj zawartość). „ Uwaga: Ponieważ konto tester zostało skonfigurowane tak, by korzystająca z niego osoba mogła dodawać jedynie wpisy w blogu, po kliknięciu wspomnianego odnośnika na ekranie pojawi się natychmiast formularz Create Blog entry (wpis w blogu). Gdyby ranga użytkownika tester zezwalała na tworzenie wpisów innego rodzaju, po kliknięciu odnośnika Add new content (dodaj zawartość) na ekranie pojawiłaby się lista wyboru rodzaju wpisu.

Po kliknięciu odnośnika Add new content (dodaj zawartość) na ekranie pojawi się strona Create Blog entry (wpis w blogu). Znajdziesz na niej pole tekstowe Title (tytuł) pozwalające wpisać tytuł notatki. Utwórz wpis, w którym podzielisz się z odwiedzającymi radością z pracy w systemie Drupal. Gdy skończysz wprowadzać tekst, kliknij przycisk Save (zachowaj). Gratuluję! Właśnie opublikowałeś pierwszą notkę w blogu prowadzonym w systemie Drupal. Na rysunku 9.1 znajdziesz przykładowy wpis, który stworzyłem przy tej okazji.

Rysunek 9.1. Przykładowa notatka w blogu 96

BLOGOWANIE

Przyjrzyj się budowie tego tekstu. Drupal automatycznie dodaje datę i czas publikacji oraz nazwę autora. Wpis jest wyświetlany domyślnie w wersji skróconej, co można rozpoznać pod umieszczonym pod nim odnośnikiem Read more (czytaj dalej). Aby poznać zasady związane z określaniem długości skróconej wersji wpisu, zapoznaj się z treścią rozdziału 10. Obok znajduje się odnośnik dodawania komentarzy, który pozwala innym wyrazić swoją opinię o zamieszczonym wpisie — taka forma interaktywnych działań sprawia, że odwiedzający chętniej wracają na stronę.

Wyświetlanie wpisów w blogu System Drupal buduje właściwą sobie strukturę adresów URL, prowadzących do poszczególnych wpisów w blogu. Adres URL może przyjmować na przykład postać http://localhost/blog/1. Kluczowym słowem tego adresu jest blog, które informuje system, że użytkownik zażądał wyświetlenia wpisu z kategorii notatek blogowych, natomiast liczba 1 określa identyfikator użytkownika (UID) będącego autorem wybranego wpisu. W omawianym przykładzie użytkownikiem o UID 1 jest administrator serwisu. Aby poznać wartości UID poszczególnych użytkowników, otwórz stronę kryjącą się pod odnośnikiem People (użytkownicy) widocznym na górze ekranu, a następnie najedź kursorem myszy na odnośnik edit (edytuj) widoczny obok nazwy użytkownika. W tym momencie w pasku stanu przeglądarki pojawi się adres URL, na przykład http://localhost/user/2/edit. Liczba pojawiająca się po wyrażeniu /user/ jest właśnie identyfikatorem UID danego użytkownika. Ją właśnie należy wstawić do wspomnianego na początku adresu URL, by wyświetlić wszystkie publikacje danego autora (na przykład http://localhost/blog/2). Gdy określisz już UID użytkownika tester, będziesz mógł przejrzeć listę jego wpisów. Drupal automatycznie sortuje wpisy w blogu według daty ich opublikowania. Na szczycie listy znajduje się najnowsza notatka, a najstarsza umieszczana jest na końcu. Aby zrozumieć działanie tej funkcji, utwórz jeszcze dwie wiadomości, postępując zgodnie z podanymi wcześniej wytycznymi. Po zakończeniu wyświetl stronę wpisów użytkownika tester. Rysunek 9.2 przedstawia przykładową listę wpisów blogowych.

Rysunek 9.2. Przykładowe wpisy w blogu, wykonane z konta użytkownika tester 97

ROZDZIAŁ 9. „ FUNKCJE INTERAKTYWNE

Dodawanie listy najświeższych wpisów O ile Twój serwis nie jest wyłącznie blogiem, zapewne zainteresuje Cię możliwość dodania informacji o najnowszych wpisach, jakie pojawiły się w jego blogowej części. Moduł Blog zawiera w sobie blok, który generuje listę dodanych ostatnio wpisów. Aby umieścić ten blok na stronie, kliknij odnośnik Structure (budowa), a następnie na właśnie otwartej stronie kliknij odsyłacz Blocks (bloki). Na stronie administracji blokami odnajdź pozycję Recent blog posts (ostatnio w blogach). Zmień definicję położenia tego bloku z (brak) na Right sidebar (prawy panel boczny) — to oczywiście tylko przykładowe położenie. Później kliknij przycisk Save blocks (zachowaj konfigurację bloków) i wróć na stronę główną (zamknij stronę bloków, klikając przycisk X). Po odświeżeniu zawartości strony głównej w prawej kolumnie powinien pojawić się blok informujący o najświeższych wpisach w blogu (rysunek 9.3).

Rysunek 9.3. Blok wyświetlający informację o najnowszych wpisach w blogu Odwiedzający stronę ma teraz wybór — może zapoznać się z treścią pojedynczego wpisu bloga, a może też kliknąć odnośnik More (więcej), by wyświetlić listę wszystkich wpisów blogowych w serwisie.

Fora Fora czy tak zwane grupy dyskusyjne cieszą się w powszechnej świadomości opinią najstarszego przejawu interaktywnego aspektu internetu. Moduł Forums, część rdzenia systemu Drupal 7, udostępnia narzędzia niezbędne do poprowadzenia forum w obrębie tworzonego serwisu. Ten właśnie moduł został zastosowany do stworzenia forum serwisu drupal.org. Kształt forum przedstawia rysunek 9.4. Jak widać na rysunku 9.4, forum składa się z jednego lub kilku tematów (na przykład Support — wsparcie techniczne — widoczny na powyższym przykładzie), w których użytkownicy dzielą się swoimi opiniami lub zakładają bardziej szczegółowe tematy (na przykład Post Installation — sprawy poinstalacyjne — w którym znajduje się przeszło dziesięć tysięcy tematów i pojedynczych wypowiedzi).

Przygotowywanie pierwszego forum Aby włączyć moduł Forum, kliknij znajdujący się w górnym menu odnośnik Modules i odnajdź na wyświetlonej stronie moduł Forum. Zaznacz umieszczone obok pole wyboru, po czym kliknij przycisk Save configuration (zachowaj konfigurację). Drupal samoczynnie zainstaluje wskazany moduł. Teraz musisz zdefiniować uprawnienia związane z działaniami na forum. Są to następujące opcje: • Administer forums (zarządzanie forami), • Create new Forum topic content (rozpoczynanie tematów na forum), • Edit own Forum topic content (edycja własnych tematów), • Edit any Forum topic content (edycja wszystkich tematów), • Delete own Forum topic content (usuwanie własnych tematów), • Delete any Forum topic content (usuwanie wszystkich tematów).

98

FORA

Rysunek 9.4. Strona forum serwisu drupal.org Tylko administratorzy powinni otrzymać prawo zarządzania forami, edycji wszystkich tematów i usuwania wszystkich tematów. Jeśli chcesz, aby użytkownicy, również ci niezalogowani, mieli prawo pisać wiadomości na forum, musisz włączyć opcje rozpoczynania tematów na forum, edycji własnych tematów oraz usuwania własnych tematów użytkownikom zarejestrowanym, użytkownikom anonimowym oraz użytkownikom wszystkich utworzonych przez siebie rang. W przypadku naszej przykładowej strony zaznacz pola tworzenia własnych tematów, ich edycji i usuwania dla użytkowników uwierzytelnionych. Tworzenie forum polega na wykonaniu dwóch prostych kroków — utworzeniu miejsca, w którym będą przechowywane tematy forum, a następnie założeniu kilku tematów, w których osoby odwiedzające witrynę mogłyby się wypowiadać. W celu utworzenia kontenera otwórz stronę Structure (budowa), odnajdź na niej odnośnik Forum (forum) i otwórz stronę Forum (forum). Na tej stronie znajdziesz narzędzia pozwalające zdefiniować miejsce przechowywania tematów (dział) i tworzyć nowe tematy. Jeśli uznasz, że istnieje taka potrzeba, możesz utworzyć kilka działów. W ramach prowadzonego przykładu założymy teraz dział o nazwie Doświadczenia z systemem Drupal 7 — kliknij przycisk Add container (dodaj dział). Jak widać na rysunku 9.5, aby utworzyć dział, wystarczy podać jego tytuł i krótki opis, który określi, jakie fora będą należeć do tego działu. Po nadaniu tytułu działu i wpisaniu jego opisu kliknij przycisk Save (zachowaj). Gdy dział zostanie utworzony, Drupal odświeży zawartość strony głównej panelu Forum (forum), wyświetlając na niej nazwę działu (rysunek 9.6). Mając utworzony dział, pora zająć się dodawaniem do niego forów. To na nich odwiedzający stronę będą mogli zadawać pytania i odpowiadać na nie. Kliknij odnośnik Add forum (dodaj forum), aby otworzyć stronę forów, na której podasz nazwę forum, jego krótki opis — zazwyczaj cel istnienia forum — oraz przypiszesz je do wybranego działu. Wygląd wspomnianej strony przedstawia rysunek 9.7. Po podaniu nazwy forum i jego opisu wybierz z listy rozwijanej Parent (nadrzędny) dział, który utworzyłeś w poprzednim kroku, a następnie kliknij przycisk Save (zachowaj).

99

ROZDZIAŁ 9. „ FUNKCJE INTERAKTYWNE

Rysunek 9.5. Tworzenie nowego działu

Rysunek 9.6. Spis działów Aby ułatwić prowadzenie sieciowych dyskusji, w założonym właśnie dziale możemy umieścić kilka forów, które mimo wszystko będą mieścić się w zakresie tematów obejmowanych przez ten dział. Dodawaj kolejne fora, dopóki nie uznasz, że wyczerpują one temat określony w opisie działu. Rysunek 9.8 przedstawia listę kilku forów dodanych do utworzonego wcześniej działu. Ich tematy nie wykraczają poza ogólny temat przewidziany w opisie działu.

100

FORA

Rysunek 9.7. Zakładanie forum

Rysunek 9.8. Lista forów w dziale Po zdefiniowaniu wszystkich potrzebnych Ci forów możesz zobaczyć, jak prezentują się one na stronie. Wpisz w przeglądarce adres http://localhost/forum. Widok powinien przypominać ten, który przedstawiłem na rysunku 9.9.

101

ROZDZIAŁ 9. „ FUNKCJE INTERAKTYWNE

Rysunek 9.9. Strona z listą forów Użytkownik odwiedzający stronę, zainteresowany konkretnym forum, na przykład takim, które poświęcono tematom związanym z instalacją systemu Drupal, mógłby teraz wybrać tytuł odpowiedniego forum, ujawniając tym samym spis tematów dyskusji. Rysunek 9.10 przedstawia wygląd przykładowego forum, poświęconego kwestiom instalacyjnym, wraz ze spisem tematów.

Rysunek 9.10. Forum Instalacja systemu Drupal Użytkownik z odpowiednimi prawami, chcący wziąć udział w dyskusji (na przykład zadać pytanie w kwestii instalacji Drupala pod systemem Ubuntu), mógłby wypowiedzieć się w istniejącym temacie. W tym celu musiałby kliknąć wybrany temat (Instalacja systemu Drupal pod Linuxem). W efekcie zostałby przeniesiony na stronę formularza wprowadzania treści, gdzie musiałby podać temat wypowiedzi (Subject) i wysłać jej zawartość (Comment). Wygląd formularza przedstawiłem na rysunku 9.11. Po wprowadzeniu odpowiedniej treści i zapisaniu jej, użytkownik zostałby przeniesiony z powrotem na forum poświęcone instalacji Drupala. Spójrz na rysunek 9.12, by przekonać się, że we wspomnianym temacie forum pojawił się jeden komentarz, który jest widoczny dla każdego odwiedzającego stronę; każdy też może go skomentować.

102

ANKIETY

Rysunek 9.11. Wypowiadanie się w wybranym temacie na forum

Rysunek 9.12. Skomentowany temat na forum Forum dostarczane w rdzeniu systemu Drupal ma dość ograniczony zasób funkcji. Moduł dodatkowy o nazwie Advanced forum (zaawansowane forum), dostępny pod adresem http://drupal.org/project/ advanced_forum, oferuje większe możliwości, na przykład oznaczanie wszystkich tematów forum jako przeczytanych, udostępnia statystyki korzystania z forum — liczbę tematów, postów, użytkowników, najnowszych użytkowników, zalogowanych użytkowników oraz liczbę nowych postów w temacie (forum rdzenia potrafi podać jedynie liczbę nowych tematów). Ta wyliczanka nie wyczerpuje jeszcze możliwości zaawansowanego forum Drupala.

Ankiety Inną często wykorzystywaną funkcją interaktywnych stron internetowych są wszelkiego rodzaju ankiety. Wykorzystuje się je przede wszystkim w celu zapoznania się z opiniami odwiedzających na zadany temat, na przykład „Czy wydawanie książek poświęconych grafice komputerowej w kolorze podniosłoby zainteresowanie tymi publikacjami?”.

103

ROZDZIAŁ 9. „ FUNKCJE INTERAKTYWNE

Aby zainstalować moduł Poll, wybierz z menu administracyjnego pozycję Modules (moduły) i otwórz listę dostępnych modułów. Odnajdź na niej pozycję Poll, a następnie zaznacz pole wyboru umieszczone obok nazwy. Potem kliknij przycisk Save configuration (zachowaj konfigurację) — Drupal zainstaluje moduł ankiet, udostępniając go natychmiast do użycia. Teraz musisz zdefiniować takie uprawnienia użytkowników, aby odwiedzający stronę mogli oddawać głosy w Twoich ankietach. Moduł dopuszcza dwa rodzaje uprawnień — uprawnienia pozwalające użytkownikom tworzyć pytania ankiet i publikować je oraz uprawnienia pozwalające oddawać głos w ankiecie. W naszym przykładzie pozostawimy tę pierwszą grupę bez zmian, co oznacza, że ankiety będzie mógł tworzyć wyłącznie administrator. Oto parametry definiowania uprawnień powiązanych z modułem Poll. • Create new Poll content (tworzenie ankiet), • Edit own Poll content (edycja własnej ankiety), • Edit any Poll content (edycja wszystkich ankiet), • Delete own Poll content (usunięcie własnej ankiety), • Delete any Poll content (usuwanie wszystkich ankiet). Druga grupa opcji powinna charakteryzować konta tych użytkowników, którzy mieliby oddać swój głos w ankiecie. W przykładowym serwisie, który budujemy, nadamy takie prawa zarówno użytkownikom anonimowym, jak i uwierzytelnionym. Będą oni mogli podejmować trzy rodzaje działań. • Vote on polls (branie udziału w ankietach), • Cancel and change own votes (anulowanie i zmienianie własnego głosu), • View voting results (sprawdzanie głosów). Teraz musisz już tylko kliknąć przycisk Save permissions (zachowaj uprawnienia), by zapisać zmiany.

Tworzenie pierwszej ankiety Aby utworzyć ankietę, kliknij odnośnik Add content (dodaj zawartość). Na ekranie pojawi się lista rodzajów wpisów dostępnych w Twojej instalacji systemu Drupal (rysunek 9.13). Teraz znajdziesz na niej także pozycję Poll (ankieta).

Rysunek 9.13. Tworzenie nowej ankiety

104

ANKIETY

Kliknij odnośnik Poll (ankieta), aby wyświetlić formularz, który pozwoli Ci skomponować nową ankietę. Przykładowo niech będzie to ankieta badająca opinie odwiedzających stronę w sprawie wydawania książek związanych z grafiką w wersji kolorowej. Spójrz na przykład zamieszczony na rysunku 9.14. Proces budowania ankiety sprowadza się do podawania pytań i możliwych odpowiedzi, które zostaną później zaprezentowane odwiedzającym. Przy odrobinie szczęścia ostatnia odpowiedź otrzyma najwięcej głosów!

Rysunek 9.14. Szczegóły nowej ankiety Rysunek 9.14 przedstawia też ustawienia dwóch ważnych opcji. • Poll status (status ankiety) — określa, czy ankieta ma być aktywna, czy zamknięta. W otwartych ankietach można ciągle oddawać głosy, natomiast ankiety zamknięte wyświetlają już tylko wyniki. • Poll duration (czas trwania ankiety) — jeśli zdecydujesz się wybrać wartość inną niż Unlimited (bez ograniczeń), system Drupal automatycznie zamknie ankietę po określonym uprzednio czasie. W naszym przykładzie możesz stworzyć ankietę otwartą, której czas trwania nie będzie ograniczony. Kliknij przycisk Save (zachowaj) i to wszystko — ankieta gotowa! Od tej chwili ankieta jest dostępna na stronie serwisu, a każdy odwiedzający go internauta może oddać w niej głos (rysunek 9.15). Pod pytaniem ankiety pojawia się kilka odnośników, dzięki którym administrator serwisu może zarządzać zawartością ankiety i sprawdzać na bieżąco jej wyniki. Odnośniki te pozwalają: • View (pokaż) — pozwala sprawdzać całkowitą liczbę oddanych głosów, • Edit (edytuj) — pozwala zmieniać pytanie ankiety i możliwe odpowiedzi, • Track (szpieguj) — pozwala śledzić stan ankiety, • Votes (głosy) — pozwala stwierdzić, w jaki sposób głosowali poszczególni odwiedzający.

105

ROZDZIAŁ 9. „ FUNKCJE INTERAKTYWNE

Rysunek 9.15. Twoja pierwsza ankieta internetowa Moduł Tracker jest jednym z elementów rdzenia systemu Drupal 7. Jego zadaniem jest dostarczanie informacji na temat stron, które skierowały poszczególnych odwiedzających na stronę ankiety, podawanie identyfikatora użytkownika, jeśli jest on zalogowany na stronie, oraz informowanie o dniu i godzinie oddania głosu. Moduł Tracker jest bardzo przydatnym narzędziem, szczególnie jeśli interesuje Cię, kto odwiedza Twoją stronę, skąd się o niej dowiedział i co na niej robił. Moduł włącza się tak samo, jak wszystkie inne dodatkowe elementy systemu Drupal 7 — odsyłam Cię do instrukcji zawartych w rozdziale 8. Wybierz teraz jedną z odpowiedzi ankiety, a następnie kliknij przycisk Vote (głosuj). System Drupal wyświetli od razu informacje o łącznej liczbie głosów oddanych na każdą z opcji, dając Ci jednocześnie możliwość zmienienia swojego głosu. Sprawdź teraz, jakie statystyki pojawią się po kliknięciu każdego z odnośników umieszczonych na górze strony z ankietą. Aby osoby odwiedzające Twój serwis miały dostęp do ankiety, powinieneś umieścić odnośnik do niej w widocznym miejscu strony. O metodach dodawania odnośników pisałem już wcześniej (możesz na przykład umieścić go w menu). Możesz też skorzystać z pewnej cechy modułu ankiet, mianowicie dodać specjalny blok, który będzie zawierać informacje o dodanych ostatnio ankietach. Aby włączyć tę funkcję, kliknij odnośnik Structure (budowa) menu administracyjnego, a następnie wybierz z listy pozycję Blocks (bloki). Na stronie konfiguracji bloków odnajdź element Most recent poll (najświeższa ankieta) i określ jego nowe położenie. Potem kliknij przycisk Save blocks (zachowaj konfigurację bloków) i powróć na stronę główną serwisu. Ankieta pojawi się teraz w prawym (bądź lewym) panelu bocznym, gdzie będzie dostępna dla każdego, kto zechce odwiedzić Twoją witrynę.

Formularze internetowe Zbieranie danych za pomocą formularzy internetowych to kolejna interaktywna funkcja, o którą możesz rozbudować swój serwis bez większego wysiłku. Moduł dodatkowy Webform pozwoli Ci równie łatwo zbudować prosty formularz (na przykład taki, jaki wykorzystuje się do zadawania pytań administratorowi strony), co bardziej złożony kwestionariusz. Aby zademonstrować Ci zasady pracy z tym modułem, opiszę teraz wszystkie kroki niezbędne do tego, by utworzyć interaktywne narzędzie, pozwalające odwiedzającym stronę dzielić się z Tobą opiniami i uwagami na temat wyglądu witryny i zasad jej działania. Po pierwsze, musisz zainstalować moduł dodatkowy Webform. Postępując zgodnie ze wskazówkami zawartymi w rozdziale 8., pobierz i zainstaluj moduł Webform (http://drupal.org/project/webform). Po włączeniu modułu określ uprawnienia użytkowników tak, by administrator serwisu miał dostęp do wszystkich funkcji tego modułu, by mógł dowolnie je edytować i usuwać. Jeśli chcesz, możesz też zaznaczyć opcję Edit own Webform submissions (edycja własnych odpowiedzi) dla użytkowników uwierzytelnionych i anonimowych, zezwalając im tym samym na aktualizowanie lub poprawienie informacji przesyłanych za pomocą formularza.

106

FORMULARZE INTERNETOWE

Tworzenie formularza Przykład, który zaraz opiszę, polega na zbudowaniu narzędzia, za pomocą którego odwiedzający stronę będzie mógł podzielić się swoimi propozycjami z jej twórcami. Formularz zezwoli na wprowadzenie tekstu zawierającego propozycję zmian, nakaże określić temat propozycji, zdecydować, czy twórcy strony mają poinformować odwiedzającego o swojej opinii na temat sugestii, i zażąda od odwiedzającego podania adresu e-mail, aby można było się z nim skontaktować. Zacznij od kliknięcia odnośnika Content (zawartość), znajdującego się na górze strony serwisu. Użyj teraz odnośnika Add new content (dodaj zawartość), po czym wybierz z listy dostępnych rodzajów treści opcję Webform (formularz). W oknie przeglądarki pojawi się strona tworzenia formularza (rysunek 9.16). Podaj tytuł formularza i wpisz instrukcje dla osoby, która będzie go wypełniać. W naszym przypadku tytułem będzie wyrażenie Propozycje. W polu tekstowym Body (treść) umieść kilka dowolnych słów — wskazówek dla odwiedzających. Kliknij przycisk Save (zachowaj).

Rysunek 9.16. Strona tworzenia formularza Na następnej stronie pojawią się narzędzia, za pomocą których stworzysz pola formularza (rysunek 9.17). Dla każdego z pól musisz określić trzy parametry — etykietę, która pojawi się przy polu, rodzaj pola oraz to, czy wypełnienie pola ma być obowiązkowe. Pierwsze pole będzie polem tekstowym, w którym odwiedzający zapiszą swoje uwagi. Opisz pole etykietą Proponuję, z listy rozwijanej Type (rodzaj) wybierz opcję Textarea (obszar tekstowy) i zaznacz pole wyboru Mandatory (wymagane). Kliknij przycisk Add (dodaj). Następnie w oknie przeglądarki pojawi się strona, na której znajdziesz opcje definiowania nowego pola. Możesz ustalić następujące parametry: Label (etykieta) — w polu tekstowym pojawia się tekst, który wprowadziłeś na poprzedniej stronie. Jeśli zachodzi taka potrzeba, możesz go tutaj zmienić. Field key (pole kluczowe) — to wewnętrzna nazwa pola, używana do jego identyfikacji wewnątrz bazy danych. Moduł Webform nadaje ją automatycznie, ale możesz zastąpić ją innym wyrażeniem. Default value (domyślna wartość) — jeżeli zawartość pola ma przyjmować jakąś wartość domyślną, podaj ją w tym miejscu.

107

ROZDZIAŁ 9. „ FUNKCJE INTERAKTYWNE

Rysunek 9.17. Dodawanie pola formularza Description (opis) — tekst, który wpiszesz w tym polu, będzie wyświetlany dokładnie pod danym elementem formularza. W tym miejscu należy wprowadzić dodatkowe instrukcje dotyczące wypełniania formularza, jeśli są one potrzebne. Validation (weryfikacja) — zaznaczając to pole, stwierdzasz, że wypełnienie danego elementu formularza jest obowiązkowe. Display width and height (podgląd — szerokość i wysokość) — to, czy będziesz mógł określić wymiary danego elementu formularza, zależy od jego typu (opcja jest dostępna dla obszaru tekstowego i pola tekstowego). Obydwie wartości definiują obszar ekranu zajmowany przez dany element. Resizable (rozszerzalne) — zaznaczenie tego pola sprawi, że odwiedzający stronę będą mogli regulować wymiary komponentu formularza (opcja dostępna wyłącznie dla pola tekstowego i obszaru tekstowego). Disabled (wyłączony) — pole oznaczone w ten sposób będzie miało zawsze stałą wartość, a osoba wypełniająca ankietę nie będzie mogła zmienić zawartości pola. Powróćmy do omawianego przykładu. W polu Description (opis) wpisz tekst Proszę podać swoje propozycje w powyższym polu. Im dokładniejszy będzie ich opis, tym łatwiej będzie nam się do nich ustosunkować. Później kliknij przycisk Submit (wyślij). Na ekranie ponownie pojawi się strona zawartości formularza. Powtórz opisane wcześniej kroki, żeby utworzyć pole rodzaju Select options (wybierz opcje). To pole pozwoli osobie wypełniającej formularz określić, czego dotyczy jej propozycja. W polu Label (etykieta) wpisz tekst Mam propozycję dla działu, a następnie wybierz opcję Select options (wybierz opcje) z listy Type (typ). Zaznacz pole Mandatory (wymagane) i kliknij przycisk Add (dodaj). Na ekranie pojawi się znowu znajoma strona, ale tym razem znajdziesz na niej dodatkowe pole, w którym możesz wpisać opcje, spośród których będą wybierać wypełniający formularz (rysunek 9.18). Znajdziesz tam też trzy parametry ustawień, dzięki którym określisz, czy dopuszczasz stosowanie wyboru wielokrotnego, czy element formularza ma mieć charakter listy rozwijanej oraz czy opcje wyboru mają być uporządkowane. W omawianym przykładzie pole Multiple (wiele) pozostanie niezaznaczone. W polu Options (opcje) wpisz wyrażenia widoczne na rysunku 9.18 i zaznacz pole Listbox (lista). Kliknij przycisk Submit (wyślij). Utwórz teraz pole, w którym osoba wypełniająca formularz będzie mogła podać swój adres e-mail. Postępuj zgodnie ze znanymi Ci już wskazówkami. W polu etykiety wpisz wyrażenie Mój adres e-mail i określ typ komponentu Textfield (pole tekstowe). Zaznacz pole Mandatory (wymagane) i kliknij przycisk Add (dodaj). Wypełnianie drugiej części strony tworzenia formularza przebiega tak samo, jak miało to miejsce do tej pory. W ten sposób utworzyłeś wszystkie pola nowego formularza. Musisz teraz określić, dokąd będą trafiać wiadomości wysyłane przez ten formularz. Kliknij odnośnik E-mails (wiadomości e-mail) znajdujący się niemalże na samej górze strony konfiguracyjnej modułu Webform. Otworzysz w ten sposób stronę, na której można podać dane odbiorcy zawartości formularza. Wpisz w polu Address (adres e-mail)

108

FORMULARZE INTERNETOWE

Rysunek 9.18. Opcje rozwijanej listy wyboru swój adres e-mail, nadając sobie tym samym status domyślnego odbiorcy danych. Jeśli chcesz, by poza Tobą jeszcze ktoś otrzymywał informacje przekazywane za pomocą formularza, kliknij przycisk Add (dodaj) i wprowadź dane tej osoby. Zbliżamy się powoli do końca pracy nad formularzem. Kliknij odnośnik Form settings (ustawienia formularza), znajdujący się na górze ekranu. Na otwartej właśnie stronie możesz podać tekst, który zostanie wyświetlony użytkownikowi po wysłaniu zawartości formularza. Wpisz tam na przykład Dziękujemy za podzielenie się swoją opinią. Tu też możesz podać adres URL strony, która pojawi się w przeglądarce po wypełnieniu formularza (Redirect URL). W ustawieniach formularza znajduje się też parametr pozwalający określić, ile formularzy może wysłać jeden użytkownik. To bardzo przydatna funkcja, ponieważ dzięki niej zmniejsza się prawdopodobieństwo, że ktoś złośliwie będzie wysyłać setki propozycji dotyczących Twojej strony. Po zakończeniu pracy kliknij przycisk Save configuration (zachowaj konfigurację). Formularz jest już gotowy. Możesz sprawdzić, jak się prezentuje, klikając odnośnik View (pokaż), znajdujący się na górze strony konfiguracyjnej formularza. Jeśli trzymałeś się moich wskazówek, Twój formularz powinien przypominać to, co przedstawia rysunek 9.19. Przetestuj formularz. Wyślij za jego pomocą przynajmniej dwie propozycje zmian na stronie, a następnie kliknij odnośnik Results (wyniki), znajdujący się na szczycie strony. „ Uwaga: Odnośnik Results (wyniki) będzie widoczny tylko dla użytkowników, którzy mają odpowiednie uprawnienia, by przeglądać dane o wysyłanych informacjach.

109

ROZDZIAŁ 9. „ FUNKCJE INTERAKTYWNE

Rysunek 9.19. Formularz Propozycje Na ekranie pojawi się strona przedstawiona na rysunku 9.20. Znajdziesz na niej odsyłacze do różnego rodzaju narzędzi służących do zarządzania danymi przesłanymi przez formularz. Kliknij po kolei każdy z nich — Submissions (wpisy), Analysis (analizy), Table (tabela), Download (pobierz) i Clear (wyczyść) — żeby poznać dokładniej możliwości modułu Webform.

Rysunek 9.20. Przeglądanie odebranych wyników

Podsumowanie Wszelkie funkcje wymuszające na użytkowniku interakcje ze stroną sprawiają, że odwiedzający ją ludzie chętniej wracają potem do danego serwisu. Jeśli postanowisz zastosować się do rad zawartych w tym rozdziale, przeniesiesz swoją witrynę z królestwa „broszurek” do świata prawdziwie interaktywnych serwisów społecznościowych. Strony-broszury sprawdzają się doskonale, jeśli chcesz ograniczyć się do przekazania informacji o swojej firmie lub oferowanych towarach, ale przyciągnięcie uwagi internautów i zatrzymanie jej na dłużej wymaga czegoś więcej niż tylko wyświetlenia tekstu. Rozdział, z którym właśnie się zapoznałeś, wprowadził Cię w świat interaktywnych stron WWW — dowiedziałeś się, jak dodać do swojej witryny narzędzia do prowadzenia bloga, jak stworzyć na niej forum, jak przeprowadzić ankietę czy dodać formularz. To najbardziej oczywiste z interaktywnych rozwiązań, jakie spotyka się na stronach WWW, ale przecież istnieją setki innych. Oto dwa przykłady funkcji, jakie mogą Cię zainteresować.

110

PODSUMOWANIE

Five Star — moduł, który umożliwia ocenianie treści wpisu poprzez przyznanie mu oceny z zakresu od jednej do pięciu gwiazdek. Add to Any — moduł, który pozwala odwiedzającym umieszczać odnośnik do Twojego wpisu w serwisach społecznościowych takich jak Facebook. Skoro mamy już do dyspozycji narzędzia interaktywne, pora zająć się tworzeniem własnych rodzajów zawartości. Do tej pory dodawaliśmy do serwisu tylko strony i artykuły. Teraz spróbujemy stworzyć własny rodzaj zawartości, za pomocą którego będziemy mogli umieszczać na stronie na przykład szczegóły dotyczące różnego rodzaju wydarzeń.

111

ROZDZIAŁ 9. „ FUNKCJE INTERAKTYWNE

112

ROZDZIAŁ 10 „„„

Rodzaje zawartości

Gdybyś zapytał programistów systemu Drupal, którą z cech tego systemu cenią sobie najbardziej, wielu z nich odpowiedziałoby zapewne, że możliwość tworzenia własnych rodzajów zawartości. Czym jest rodzaj zawartości? To rodzaj szablonu, z którego korzystają użytkownicy zajmujący się wprowadzaniem treści na strony serwisu. Nie wykluczam, że podstawowe rodzaje zawartości systemu Drupal, tj. strona i artykuł, wystarczą Ci w zupełności, ale jest bardzo prawdopodobne, że prędzej czy później natkniesz się na sytuację, w której większa kontrola nad rodzajem wprowadzanej treści i sposobem jej wyświetlania stanie Ci się niezbędna. W tym rozdziale postaram się pokazać Ci, jak proste jest tworzenie nowych rodzajów zawartości zupełnie od zera. Proszę zapiąć pasy, startujemy!

Podstawowe rodzaje zawartości — strona i artykuł Po zainstalowaniu systemu Drupal dostajesz do dyspozycji dwa szablony zawartości, utworzone przez zespół zajmujący się rozwijaniem rdzenia systemu. Są to strona i artykuł. Jeśli zdecydujesz się opublikować treść, bazując na szablonie Basic page (strona), będziesz musiał wypełnić dwa podstawowe pola — pole tytułu i pole treści. Tworząc stronę systemu Drupal, musisz podać jej tytuł (pole Title jest oznaczone czerwoną gwiazdką, co oznacza, że jego wypełnienie jest obowiązkowe) oraz wpisać treść w polu Body (treść). Jedną z cech pola treści jest dostosowywanie wymiarów do długości wprowadzonej zawartości. Zawartość ta może mieć dowolny charakter. Możesz zatem umieszczać na stronie: • zwykły tekst, w którym będą pojawiać się znaczniki HTML (nagłówki, tabele, style CSS i tak dalej); • obrazy; • fragmenty kodu PHP, który będzie pobierał z bazy danych odpowiednie informacje, pozwalające wyświetlić na stronie wybraną przez Ciebie zawartość; • pojedyncze zdania. Szablon Article (artykuł) nie różni się wiele od stron systemu Drupal. Daje Ci dodatkowo możliwość wysłania na serwer pliku graficznego oraz opisania treści artykułu serią znaczników (o oznaczaniu treści pisałem w rozdziale 4.). Artykuł, tak samo jak strona, może zawierać wszelkie rodzaje treści i poruszać dowolny temat. Pole treści artykułu pozwala wprowadzać tekst w dowolnej postaci.

ROZDZIAŁ 10. „ RODZAJE ZAWARTOŚCI

Opisane tu krótko rodzaje szablonów sprawdzają się doskonale w przypadku umieszczania w serwisie treści o ogólnym charakterze, lecz niewątpliwie natkniesz się w końcu na przypadek, kiedy zechcesz nadać umieszczanym na stronie informacjom konkretny wygląd. Przychodzi mi do głowy kilka problemów, które mogą wymagać zastosowania specjalnych środków. • Możesz pragnąć, by publikowana treść zawierała konkretne informacje, na przykład datę i godzinę rozpoczęcia imprezy, adres miejsca, w którym ma się ona odbyć, oraz odnośnik do znacznika imprezy na mapie Google. • Możesz chcieć dokonać obliczeń na podstawie danych pobranych przez szablon wpisu. • Możesz pragnąć, by wprowadzona zawartość dawała się sortować względem określonych kluczy. • Możesz zechcieć wprowadzić do serwisu funkcje filtrowania czy ograniczania wyświetlanej zawartości w zależności od wybranej opcji. • Możesz życzyć sobie, by informacje na stronie pojawiały się w określonej kolejności. Przykładowo, jeśli wyświetlałbyś informacje o książce, mógłbyś chcieć, by najpierw pojawił się jej tytuł, następnie nazwisko autora, numer ISBN, cena i opis treści. • Wszystkie te zadania daje się realizować, używając szablonów strony i artykułu, ale dodawanie do nich elementów odpowiedzialnych za sortowanie, filtrowanie, sprawdzanie, czy wprowadzono odpowiednią zawartość, obliczanie i określanie położenia poszczególnych fragmentów tekstu byłoby niezwykle trudne. Na szczęście Drupal pozwala definiować własne rodzaje wpisów, dzięki czemu wszystkie powyższe zadania dają się zrealizować w przystępny sposób. Własne rodzaje wpisów oferują także wiele innych przydatnych funkcji, które z pewnością docenisz z czasem.

Definiowanie własnego rodzaju wpisu Własne rodzaje wpisów są definiowane przez administratora systemu Drupal, stanowiąc dodatek do już istniejących szablonów strony i artykułu. Możliwość tworzenia własnych rodzajów wpisów stała się częścią rdzenia systemu Drupal 7. Aby zademonstrować Ci możliwości, jakie daje zdefiniowanie własnego rodzaju wpisów, przedstawię teraz przykład, w którym utworzysz szablon służący do opisywania różnego rodzaju wydarzeń. Wydarzeniem może być zaplanowany koncert, wystawiana sztuka, wykład, mecz czy jakakolwiek inna, zaplanowana z góry forma aktywności. Publikacja wpisu dotyczącego wydarzenia powinna zawierać: • nazwę tego wydarzenia, • termin (datę i godzinę) rozpoczęcia wydarzenia, • termin (datę i godzinę) końca wydarzenia, • nazwę miejsca bądź adres, pod którym wydarzenie będzie miało miejsce, • opis wydarzenia, • cenę biletów lub wejściówek. Jak się wkrótce przekonasz, system Drupal oferuje łatwy w obsłudze interfejs, pozwalający tworzyć szablony własnych rodzajów wpisów i szybko je modyfikować. Szablon rodzaju wpisu staje się dostępny natychmiast po zdefiniowaniu. Oczywiście możliwość korzystania z niego mają wyłącznie uprawnieni użytkownicy. Uprawnienia obejmują możliwość tworzenia wpisu, edytowania go, publikowania i usuwania (ograniczenie dostępu do własnych rodzajów wpisów odbywa się poprzez nadanie użytkownikom rang o odpowiednio dobranych uprawnieniach).

114

TWORZENIE WŁASNEGO RODZAJU WPISU

Tworzenie własnego rodzaju wpisu Utworzenie własnego rodzaju wpisu odbywa się w dwóch krokach — najpierw następuje spisanie sobie na kartce wszystkich informacji, jakie będą potrzebne podczas tworzenia wpisu, a następnie przeniesienie ich do systemu Drupal za pomocą formularza panelu administracyjnego. W tym przykładzie utworzymy szablon wpisu wydarzenia, w którym będą występować pola wymienione w poprzednim podrozdziale. Zacznij od otworzenia strony Structure (budowa) poprzez kliknięcie odpowiedniego odnośnika menu administracyjnego. Po otworzeniu strony (rysunek 10.1) znajdź na niej odnośnik Content types (rodzaje zawartości).

Rysunek 10.1. Strona Structure (budowa) z odnośnikiem Content types (rodzaje zawartości) Na stronie Content types (rodzaje zawartości), pokazanej na rysunku 10.2, znajdziesz spis wszystkich dostępnych w systemie rodzajów zawartości — w naszym przypadku są to Article (artykuł) i Basic page (strona), czyli podstawowe rodzaje wpisów dostępne od chwili zainstalowania systemu Drupal, oraz Blog entry (wpis w blogu), Forum topic (temat na forum) i Poll (ankieta), które dodaliśmy w trakcie instalowania modułów opisanych w rozdziale 9. Na tej samej stronie znajduje się odnośnik Add content type (nowy rodzaj zawartości), pozwalający dodawać nowe rodzaje zawartości. Kliknij go, by rozpocząć tworzenie szablonu wpisu dla różnych wydarzeń. Pierwszy ekran, jaki pojawia się po kliknięciu odnośnika Add content type (nowy rodzaj zawartości), zawiera formularz, za pomocą którego można określić ogólne cechy nowego rodzaju wpisu (rysunek 10.3). Znajdziesz tam pole Name (nazwa), w którym podasz nazwę rodzaju wpisu (będzie się ona pojawiać w spisie możliwych rodzajów zawartości na początku procesu dodawania nowego wpisu), pole Description (opis), w którym możesz podać opis zastosowania nowego szablonu (będzie pojawiać się na ekranie tworzenia nowego wpisu), pole Title field label (etykieta pola tytułu) oraz kilka narzędzi konfigurujących, które omówię już w trakcie procesu tworzenia szablonu. Na początku podaj w odpowiednich polach niezbędne informacje. • W polu Name (nazwa) wpisz nazwę rodzaju zawartości. W naszym przypadku będzie to Wydarzenie. Tekst poniżej pola zawiera kilka istotnych wskazówek. Nazwa jest przeznaczona dla użytkowników i będzie pojawiać się na stronie dodawania nowego wpisu. Powinna zaczynać się wielką literą, zawierać wyłącznie znaki alfabetu, cyfry i spacje, a także w pełni identyfikować szablon.

115

ROZDZIAŁ 10. „ RODZAJE ZAWARTOŚCI

Rysunek 10.2. Spis wszystkich rodzajów zawartości

Rysunek 10.3. Formularz tworzenia nowego rodzaju zawartości 116

TWORZENIE WŁASNEGO RODZAJU WPISU

• W polu Description (opis) umieść krótki komentarz, wyjaśniający, do czego należy wykorzystywać ten szablon, na przykład Szablon zawartości służącej do wprowadzania informacji o różnego rodzaju wydarzeniach. • Zmień zawartość pola Title label field (etykieta pola tytułu) z wyrażenia Title na Nazwa wydarzenia, co sprawi, że formularz szablonu będzie bardziej czytelny dla użytkownika. • Pozostaw ustawienie Optional (opcjonalnie) w polu wyboru Preview before submitting (podejrzyj przed wysłaniem). • W polu Explanation or submission guidelines (wskazówki lub instrukcje dotyczące dodawania zawartości) wprowadź krótkie wyjaśnienie dotyczące pracy z tym formularzem. Wypełnienie tego pola nie jest wymagane do utworzenia nowego rodzaju wpisu i niewykluczone, że w przyszłości nie będziesz go używać. W naszym przykładzie wprowadź w nim następujący komunikat Proszę wypełnić wszystkie wymagane pola przed opublikowaniem informacji o nowym wydarzeniu. Podczas tworzenia szablonu nowego rodzaju zawartości powinieneś też zwrócić uwagę na pozostałe opcje ustawień. Otwórz drugą z zakładek dolnego pionowego menu, Publishing options (opcje publikacji). Zapisane w niej opcje przedstawiono na rysunku 10.4.

Rysunek 10.4. Opcje publikacji W zależności od tego, czy chcesz, aby Twoje wpisy były publikowane automatycznie (żeby stawały się widoczne natychmiast po zapisaniu) i pojawiały się od razu na pierwszej stronie witryny, możesz zaznaczyć opcje Published (do publikacji) i Promoted to front page (na stronie głównej). Chcielibyśmy, żeby wpisy typu Wydarzenie pojawiały się w serwisie automatycznie w chwili zapisania, ale nie chcemy, by wyświetlały się na stronie głównej, dlatego też usuniemy zaznaczenie z pola Promoted to front page (na stronie głównej). Możemy też zadecydować, czy informacja o wydarzeniu ma być zawsze widoczna na górze listy wpisów (opcja Sticky at top of list — przyklejony) oraz czy system Drupal ma automatycznie tworzyć nową wersję wpisu, gdy autor wprowadzi do niego jakieś poprawki (opcja Create new version — stwórz nową wersję). Zazwyczaj jest to dobry pomysł, ale to, czy zdecydujesz się na tę opcję, powinno zależeć od tego, czy chcesz mieć dostęp do informacji o zmianach wprowadzanych w treści poszczególnych wpisów i czy chcesz zachować możliwość przywracania poprzedniej wersji w razie, gdyby nowa okazała się być błędna. W przypadku wpisów typu Wydarzenie chcemy mieć takie możliwości, więc zaznaczymy pole Create new version (stwórz nową wersję). Następna zakładka, Display settings (ustawienia wyświetlania), zawiera parametry decydujące o sposobie wyświetlania zawartości witryny (rysunek 10.5). Tam znajdziesz narzędzia, dzięki którym określisz, czy wpis typu Wydarzenie ma zawierać nazwę autora i datę dodania. Przyjmijmy, że dla nas nie są to ważne informacje, więc usuniemy zaznaczenie z pola Display author and date information

117

ROZDZIAŁ 10. „ RODZAJE ZAWARTOŚCI

Rysunek 10.5. Ustawienia wyświetlania (kto, kiedy). Oczywiście w przypadku tworzenia innych rodzajów wpisów ta informacja może być cenna — w takim przypadku pozostaw to pole zaznaczone. Druga widoczna w tej zakładce opcja, Length of trimmed content (długość wersji skróconej), pozwala określać liczbę znaków wyświetlanych w krótkiej formie wpisu. Zawartość umieszczana na stronach serwisów w systemie Drupal może pojawiać się w postaci pełnej lub skróconej. Wersja skrócona często pełni rolę wstępu do artykułu. Po kliknięciu tekstu, który jest jednocześnie odnośnikiem, pojawia się pełna wersja wpisu. Wersja skrócona to doskonały sposób kontrolowania długości strony, na której znajduje się wiele wpisów. Opisywana tu funkcja pozwala określić, ile znaków zostanie wyświetlonych w skróconej wersji wpisu, po której pojawi się odnośnik Read more (czytaj dalej). W omawianym przykładzie pozostawimy domyślną wartość sześciuset znaków. Kolejny zestaw parametrów, umieszczony w zakładce Comment settings (ustawienia odpowiedzi), odpowiada za określenie sposobu dodawania komentarzy do określonego rodzaju wpisów (rysunek 10.6).

Rysunek 10.6. Ustawienia odpowiedzi Lista rozwijana Default comment setting for new content (domyślne ustawienia odpowiedzi) pozwala określić ogólne zasady postępowania z komentarzami. Opcja ustawiona domyślnie, Open (otwarty), zezwala na dodawanie komentarzy do wpisów danego typu. Poza nią dostępne są jeszcze dwie opcje — Closed (zamknięty) i Hidden (ukryty). Opcja Closed (zamknięty) nie dopuści dodawania nowych komentarzy, opcja Hidden (ukryty) dodatkowo ukryje wszystkie dodane do tej pory komentarze. Różnica między nimi polega oczywiście na tym, że wybranie opcji zamykania nie spowoduje ukrycia komentarzy umieszczonych pod wpisem, natomiast opcja ukrywania sprawi, że spod wpisu zniknie wszystko, co ma jakikolwiek związek z komentowaniem. W omawianym przykładzie zdecydujemy się na wybór opcji Hidden (ukryty), ponieważ nie chcemy, by odwiedzający stronę komentowali wpisy dotyczące wydarzeń.

118

TWORZENIE WŁASNEGO RODZAJU WPISU

Opcja Threading (widok wątków) określa, w jaki sposób komentarze będą pojawiać się na stronie. Włączenie widoku wątków pozwala umieszczać odpowiedzi bezpośrednio pod wypowiedzią innego komentującego wpis, co oznacza, że i jego ewentualna odpowiedź pojawi się bezpośrednio pod Twoim komentarzem. Jeśli nie zaznaczysz tej opcji, komentarze będą pojawiać się po prostu w kolejności dodawania. Widok wątków ułatwia orientację w rozmowie odbywającej się za pośrednictwem witryny — wiadomo, kto i komu odpowiada (nie ma wątpliwości, czy autor wypowiedzi komentuje treść wpisu, czy też komentarz innego odwiedzającego). Opcja Comments per page (domyślna liczba odpowiedzi na stronie) określa liczbę komentarzy, które mogą pojawić się na jednej stronie. Po przekroczeniu liczby zadanej tym parametrem komentarze zostaną podzielone na kilka stron. W przykładzie pozostawimy domyślną wartość pięćdziesięciu komentarzy, ale oczywiście możesz ją zmienić, jeśli zechcesz. Pole wyboru Allow comment title (pole tytułu odpowiedzi) pozwala określić, czy użytkownik strony będzie mógł nadać swojej wypowiedzi tytuł, czy nie. Opcja ta bywa przydatna, ponieważ tytuł odpowiedzi pozwala zorientować się wstępnie, czego ona dotyczy. Przykładowo, wypowiedź zatytułowana Świetne! sugeruje od razu, że jej autorowi podobała się zamieszczona w serwisie treść. Zaznaczenie pola Show reply form on the same page as comments (wyświetlaj formularz odpowiedzi na tej samej stronie co komentarze) oznacza, że formularz odpowiedzi będzie cały czas widoczny na stronie. Jeśli usuniesz to zaznaczenie, formularz odpowiedzi będzie dostępny dopiero po kliknięciu odpowiedniego odnośnika. Przyjęło się ukrywać formularz odpowiedzi, ponieważ zazwyczaj zaśmieca on wygląd strony. Opcja Preview comment (podgląd odpowiedzi) określa, czy autor komentarza będzie musiał sprawdzić jego tekst przed opublikowaniem. Wartość Disabled (wyłączony) oznacza, że podgląd nie jest niezbędny, przez co w ogóle nie jest on wyświetlany. Wartość Optional (opcjonalnie) oznacza, że autor komentarza może sprawdzić jego treść przed publikacją, ale nie musi tego robić, natomiast wartość Required (wymagany) zmusza użytkownika do podejrzenia komentarza przed opublikowaniem. Ostatni zestaw parametrów określa, do jakich rodzajów menu będzie miał dostęp autor wpisu. Otwórz zakładkę Menu settings (ustawienia menu), w której znajdziesz listę dostępnych menu (rysunek 10.7). Lista ta określa, do których spośród dostępnych menu autor będzie mógł dodać nową zawartość, jeśli planuje umieszczanie odnośnika do niej w menu. W przykładzie widocznym na rysunku 10.7 jedyną zaznaczoną pozycją jest Main menu (menu podstawowe). Możesz usunąć zaznaczenie z tego pola, aby ukryć wszystkie menu, spośród których mógłby wybierać autor, a możesz też zaznaczyć jakieś dodatkowe, jeśli chcesz dać mu wybór. Opcja Default parent item (domyślny element nadrzędny) definiuje, które menu zostanie wybrane automatycznie w chwili wyświetlania strony ustawień menu w szablonie nowego rodzaju zawartości.

Rysunek 10.7. Ustawienia menu

119

ROZDZIAŁ 10. „ RODZAJE ZAWARTOŚCI

My pozostawimy ustawienia domyślne. Kliknij przycisk Save content type (zachowaj rodzaj zawartości). System Drupal wyświetli ponownie stronę Content type (rodzaje zawartości), tym razem z umieszczonym na liście nowym elementem — założonym przez Ciebie rodzajem wpisu (rysunek 10.8).

Rysunek 10.8. Spis rodzajów zawartości wzbogacony o nową pozycję

Personalizowanie szablonu rodzaju zawartości Od tej chwili szablon wpisu Wydarzenie jest dostępny dla autorów treści, lecz na razie zawiera wyłącznie pole tytułu wydarzenia i pole jego opisu o domyślnej nazwie Body (treść). Zakładaliśmy, że szablon wpisu Wydarzenie będzie zawierać pola, w których autor poda czas i datę rozpoczęcia wydarzenia, czas i datę jego zakończenia, określi adres miejsca, w którym będzie się ono odbywać, doda odpowiednie zdjęcie, cenę biletów oraz odnośnik do formularza rezerwacji miejsc. Aby dodać te pola i zmienić domyślną nazwę pola Body (treść) na więcej mówiącą użytkownikowi Opis wydarzenia, kliknij odnośnik manage fields (zarządzanie polami). Na rysunku 10.9 widać formularz zarządzania polami nowego szablonu. Jest na nim nazwa szablonu Nazwa wydarzenia oraz domyślna nazwa pola opisu, Body (treść). Kliknij umieszczony w tym samym wierszu odnośnik edit (edytuj) i wpisz w polu Label (etykieta) wyrażenie Opis wydarzenia. Zaakceptuj zmiany, klikając przycisk Save settings (zachowaj ustawienia). Poniżej dwóch tworzonych automatycznie pozycji szablonu znajdziesz wiersz Add new field (dodaj nowe pole), który pozwoli Ci dodać nowe pole do listy. Pod nim znajduje się wiersz Add existing field (dodaj istniejące pole), dzięki któremu będziesz mógł umieścić w szablonie pole już zdefiniowane (gdyby zdarzyło się tak, że w przeszłości utworzyłeś już pole Data rozpoczęcia, mógłbyś teraz wykorzystać je do budowy nowego formularza). Zaczniemy od dodania pola Data rozpoczęcia. Wpisz w polu Label (etykieta) wyrażenie Data rozpoczęcia, zaś w polu oznaczonym jako Field name (nazwa pola) wprowadź wyrażenie data_rozpoczecia (będzie to wewnętrzna nazwa pola w systemie). Z listy rozwijanej Type of data to store (rodzaj przechowywanych danych) wybierz pozycję Text (tekst), natomiast na liście Form element to edit the data (element edycji danych w formularzu) wskaż pozycję Text field (pole tekstowe), określając tym samym sposób zbierania danych od autora tekstu (rysunek 10.10).

120

TWORZENIE WŁASNEGO RODZAJU WPISU

Rysunek 10.9. Formularz zarządzania polami

Rysunek 10.10. Tworzenie pola Data rozpoczęcia Kliknij przycisk Save (zachowaj), a na ekranie pojawi się okno przedstawione na rysunku 10.11. Pole Maximum length (maksymalna długość) określa liczbę znaków, jakie można wprowadzić w danym polu szablonu. Ponieważ w omawianym przykładzie tworzymy pole daty, będziemy chcieli, aby użytkownik szablonu podał ją w konkretnym formacie — dd–mm–rrrr. Dzięki temu możemy dokładnie określić liczbę znaków potrzebnych do wprowadzenia daty — 2 (dzień) + 1 (myślnik) + 2 (miesiąc) + 1 (myślnik) + 4 (rok) = 10. Dlatego zmienimy domyślną wartość 255 znaków na wartość 10. Kliknij teraz przycisk Save field settings (zachowaj ustawienia pola). Następnie Drupal wyświetli formularz przestawiony na rysunku 10.12, w którym będziesz mógł wprowadzić dodatkowe, bardziej szczegółowe parametry pola Data rozpoczęcia. Oto możliwości, jakie daje ten formularz: • Możesz zmienić w nim etykietę pola (komórka Name), jaką nadałeś poprzednio temu polu. Oczywiście, o ile nie popełniłeś błędu lub nie zmieniłeś zdania, nie ma sensu tego robić. • Możesz określić, czy wypełnienie pola jest obowiązkowe. Pole wymagane jest oznaczane w szablonie czerwoną gwiazdką, a system wymusza na użytkowniku wprowadzenie w nim wartości, nie pozwalając bez tego zapisać formularza. Ponieważ nasz szablon ma służyć publikowaniu informacji

121

ROZDZIAŁ 10. „ RODZAJE ZAWARTOŚCI

Rysunek 10.11. Określanie maksymalnej liczby znaków w polu o wydarzeniach, daty są w tym przypadku istotne, więc zaznaczymy opcję Required field (pole wymagane). Rozmiar pola tekstowego (komórka Size of textfield) określa szerokość tego elementu formularza na ekranie i nie ma wpływu na liczbę znaków, jaką można w nim wprowadzić (przypominam, że ostatni wspomniany parametr definiowaliśmy w poprzednim kroku). W przypadku daty rozpoczęcia wydarzenia nie potrzebujemy długiego pola tekstowego, ponieważ i tak użytkownik będzie mógł wprowadzić w nim jedynie dziesięć znaków. Ustawienie rozmiaru pola na piętnaście znaków pozwoli wprowadzić całą datę i zostawi jeszcze trochę miejsca. • W grupie Text processing (format danych) znajdują się dwie opcje — Plain text (zwykły tekst) i Filtered text (tekst filtrowany). Określają one, w jaki sposób system ma traktować dane wprowadzane przez użytkownika. Jeśli w treści formatowanej jako zwykły tekst pojawią się jakieś znaczniki HTML, zostaną one zignorowane podczas przygotowania tekstu do wyświetlenia na ekranie. W przypadku zaznaczenia opcji Filtered text (tekst filtrowany), znaczniki HTML zostaną wyłowione z treści wpisu i odpowiednio przetworzone. Ponieważ w omawianym przykładzie pole daty ma ściśle określone formatowanie, użytkownik nie powinien mieć możliwości korzystania ze znaczników HTML, dlatego też zdecydujemy się na zaznaczenie opcji Plain text (zwykły tekst). • Tekst wprowadzony w polu Help text (tekst pomocy) będzie pojawiać się w formularzu pod polem tekstowym. To doskonałe miejsce, by przedstawić użytkownikowi wymagania, jakie musi spełnić, wypełniając formularz. Tu właśnie wprowadzimy informację o tym, że data ma być podana w formacie dd-mm-rrrr. Wypełnianie tego pola nie jest obowiązkowe. • W polu Default value (wartość domyślna) można zasugerować wartość, jaką może przyjmować definiowany parametr. Wartość ta zostanie zaprezentowana autorowi wpisu razem z szablonem formularza. Ponieważ w naszym przypadku w polu będą wprowadzane daty przyszłych wydarzeń, definiowanie wartości domyślnej nie ma sensu. Oczywiście w innych sytuacjach, kiedy będziesz tworzyć na przykład pole rezerwacji miejsc, wartość domyślna może być wskazana. W takim przypadku mogłaby ona mieć charakter wpisu najlepsze możliwe. Gdy będziesz kiedyś potrzebować opcji wprowadzenia wartości domyślnej pola, pamiętaj, że należy ją wpisać właśnie w tym miejscu. • Pole Number of values (liczba wartości) daje autorowi wpisu możliwość dynamicznego generowania dodatkowych wartości pola, poza tą, która jest już widoczna na ekranie. To funkcja bardzo przydatna w procesie definiowania pola, które posłuży na przykład do dodawania zdjęć. Sprawdza się doskonale wtedy, gdy chcesz dać użytkownikowi możliwość dodania większej ilości zdjęć, lecz nie wiesz dokładnie, ile ma ich być. Gdy ustawisz w polu Number of values (liczba wartości) wartość większą od 1, pod opisywanym właśnie polem formularza pojawi się odnośnik Add another (dodaj następne), który pozwoli użytkownikowi dodawać następne obiekty danego typu. Odnośnik będzie pojawiać się, dopóki nie zostanie osiągnięta zdefiniowana przez Ciebie wartość graniczna. Jeżeli wybierzesz wartość 1, użytkownik będzie mógł dodać tylko jedno zdjęcie. Ponieważ każde wydarzenie może mieć tylko jedną datę rozpoczęcia, pozostawimy zawartość tego pola bez zmian. 122

TWORZENIE WŁASNEGO RODZAJU WPISU

Rysunek 10.12. Szczegółowe parametry pola daty rozpoczęcia wydarzenia • Na tej stronie znajdziesz też znane Ci już pole Maximum length (maksymalna długość), w którym określa się maksymalną liczbę wprowadzonych w szablonie znaków. W poprzednim kroku wprowadziłeś już w nim wartość 10, ale gdyby okazało się, że popełniłeś błąd lub zmieniłeś zdanie, mógłbyś dokonać teraz niezbędnej korekty. Ponieważ długość daty nie zmieniła się od czasu, gdy ją ustalaliśmy, pozostawimy tu wpisaną wartość 10. Jesteśmy już gotowi, by dodać pole do szablonu rodzaju zawartości. Kliknij przycisk Save settings (zachowaj ustawienia). System Drupal wyświetli ponownie ogólną stronę parametrów tworzonego rodzaju zawartości. 123

ROZDZIAŁ 10. „ RODZAJE ZAWARTOŚCI

Kliknij zakładkę Manage fields (zarządzanie polami), aby wyświetlić zaktualizowaną listę pól. Nowo dodane pole pojawiło się pod polem Opis wydarzenia (rysunek 10.13).

Rysunek 10.13. Lista pól rodzaju zawartości Wydarzenie zawiera teraz pole Data rozpoczęcia Jesteś już gotowy, by dodać do formularza pola, które wymieniliśmy na początku tego rozdziału: godzinę rozpoczęcia wydarzenia, datę zakończenia, godzinę zakończenia oraz miejsce lub adres, pod jakim ma odbyć się opisywane wydarzenie. Powiel kroki, które wykonałeś poprzednio, zmieniając odpowiednio etykiety pól, treść w polu tekstu z pomocą, maksymalną liczbę wprowadzanych znaków i rozmiar pola. Po zakończeniu pracy powinieneś zobaczyć listę podobną do tej, którą przedstawia rysunek 10.14.

Rysunek 10.14. Szablon rodzaju wpisu Wydarzenie zawiera już wszystkie niezbędne pola

124

INNE RODZAJE PÓL

Szablon rodzaju zawartości Wydarzenie jest już gotowy. Aby sprawdzić, czy działa, kliknij odnośnik Add content (dodaj zawartość), znajdujący się na szarym pasku menu, aby wyświetlić listę dostępnych rodzajów zawartości. Utworzona właśnie pozycja Wydarzenie znajduje się wśród dostępnych opcji. Kliknij jej nazwę, by wyświetlić szablon tworzenia wpisu tego rodzaju (rysunek 10.15). Na stronie znajdziesz pola Nazwa wydarzenia, Opis wydarzenia, Data rozpoczęcia, Godzina rozpoczęcia, Data zakończenia, Godzina zakończenia oraz Miejsce lub adres.

Rysunek 10.15. Tworzenie wpisu o nowym wydarzeniu Spróbuj teraz utworzyć prostą informację o wydarzeniu, używając do tego zbudowanego przed chwilą formularza. Gdy wprowadzisz już wszystkie dane, kliknij przycisk Save (zachowaj). Na rysunku 10.16 znajduje się przykładowa informacja utworzona za pomocą formularza widniejącego na rysunku 10.15.

Inne rodzaje pól W omawianym przykładzie utworzyliśmy formularz zawierający kilka pól tekstowych, w których autor wpisu może podawać daty, godziny i adres. Zdarzają się jednak sytuacje, w których zamiast pola tekstowego warto wykorzystać inny obiekt. Oto pozostałe rodzaje pól, jakimi możesz się posługiwać.

125

ROZDZIAŁ 10. „ RODZAJE ZAWARTOŚCI

Rysunek 10.16. Przykładowa informacja o wydarzeniu • Radio button (przycisk opcji) — doskonale sprawdzają się, gdy chcesz zaprezentować autorowi zestaw opcji, z których będzie mógł wybrać tylko jedną. • Check box (pole wyboru) — są idealne do tworzenia listy, na której można zaznaczyć jedną bądź kilka opcji. • Select list (lista rozwijana) — doskonała do umieszczania spisów wielu elementów do wyboru. Bardzo często wykorzystuje się ją do wybierania nazwy kraju. • File upload (pole wysyłania plików) — to właściwy wybór, jeśli chcesz umożliwić autorowi dodanie pliku do publikowanej treści. • Text area (obszar tekstowy) — to pole o wysokości kilku linii tekstu. Należy stosować je, jeżeli spodziewasz się, że autor będzie wprowadzać dłuższe partie tekstu. • Numeric field (pole liczbowe) — sprawdza się doskonale, gdy chcesz ograniczyć możliwość wprowadzania tekstu do samych cyfr. Wymienione tu pola wchodzą w skład rdzenia systemu Drupal 7. Istnieją też inne rodzaje pól, które stają się dostępne po zainstalowaniu odpowiednich modułów dodatkowych (na przykład pole daty, które pozwala wybierać ją z rozwijanego kalendarza). Aby poznać listę oferowanych modułów tego typu, odwiedź stronę www.drupal.org/project/modules i z listy Modules category (kategoria modułów) wybierz pozycję Content Creation Kit (CCK). Po kliknięciu przycisku Search (szukaj) na ekranie pojawi się długa lista modułów rozbudowujących możliwości rdzenia systemu w zakresie dostępnych pól. Moduły te instaluje się zgodnie z zasadami, które opisałem w rozdziale 8. Jest bardziej niż prawdopodobne, że przyjdzie Ci korzystać z wymienionych przeze mnie pól innego rodzaju niż tekstowe, dlatego też rozbudujemy teraz nasz przykład o kilka dodatkowych pozycji, by zademonstrować sposób działania tych elementów.

Przyciski opcji Przyciski opcji sprawdzają się doskonale, gdy chcesz, by autor wpisu wybrał tylko jedną z zaprezentowanych mu możliwości wyboru (jeżeli chcesz, by autor mógł wybrać jedną bądź więcej opcji, posłuż się polami wyboru). Za chwilę rozbudujemy rodzaj zawartości Wydarzenie o możliwość wskazania miejsc dostępnych w czasie wydarzenia — autor będzie mógł poinformować czytelników o konieczności przeprowadzenia rezerwacji miejsc lub o otwartym wstępie na imprezę. Aby dodać nowe pole do szablonu, kliknij odnośnik Structure (budowa), który przeniesie Cię na stronę o takiej samej nazwie, po czym znajdź na niej odnośnik

126

INNE RODZAJE PÓL

Content type (rodzaj zawartości). Następnie znajdź odnośnik manage fields (zarządzanie polami), towarzyszący nazwie rodzaju zawartości Wydarzenie. Rysunek 10.17 pokazuje ustawienia poszczególnych parametrów nowego pola Miejsca siedzące.

Rysunek 10.17. Dodawanie przycisku opcji Wraz z kliknięciem przycisku Save (zachowaj) otworzy się kolejny ekran konfiguracyjny, na którym definiuje się listy pól wyboru i przycisków opcji. Pozycje wpisane w polu tekstowym zostaną zaprezentowane autorowi wpisu w trakcie pracy z formularzem. System Drupal wymaga, by pola list wyboru były definiowane w postaci klucz|etykieta, gdzie klucz jest liczbą opisującą wybraną opcję (będzie ona zapisana w bazie danych). Po wartości klucza pojawia się pionowa linia (Shift+\) i etykieta, czyli tekst, który zostanie wyświetlony na ekranie. W przykładzie ilustrowanym rysunkiem 10.18 wprowadziłem wartości 1|Miejsca objęte rezerwacją oraz 2|Miejsca ogólnodostępne. W bazie danych zostają dodane wartości 1 i 2.

Rysunek 10.18. Tworzenie przycisków opcji Po wpisaniu wszystkich pozycji listy kliknij przycisk Save field settings (zachowaj ustawienia pola). Na ekranie pojawi się ostatnia strona konfiguratora (rysunek 10.19). Daje ona następujące możliwości: • Zmiana etykiety grupy pól wyboru bądź przycisków opcji. • Nadanie polu statusu wymaganego. • Wprowadzenie tekstu pomocy. • Ustawienie opcji domyślnej, pojawiającej się w chwili wyświetlania szablonu rodzaju zdarzenia. • Określenie liczby opcji, które można wybrać z listy. Jeśli podasz wartość 1, lista zostanie wyświetlona w postaci spisu z przyciskami opcji. Jeśli podasz wartość większą od 1, będzie to spis pól wyboru. • Zmienianie zawartości listy podanej na poprzednim ekranie.

127

ROZDZIAŁ 10. „ RODZAJE ZAWARTOŚCI

Rysunek 10.19. Konfigurowanie przycisku opcji Wpisz tekst pomocy, w którym wyjaśnisz sposób korzystania z grupy przycisków, i wskaż opcję domyślną — Miejsca ogólnodostępne. Opcja ta zostanie zaznaczona automatycznie w chwili wyświetlania szablonu rodzaju wpisu. Gdy zakończysz wprowadzanie danych, kliknij przycisk Save settings (zachowaj ustawienia). Od tej chwili grupa pól wyboru lub przycisków opcji jest gotowa do użycia. Efekt naszych starań przedstawiłem na rysunku 10.20.

Rysunek 10.20. Przyciski opcji grupy Miejsca siedzące

Pole wyboru Pola wyboru pełnią rolę podobną do przycisków opcji. Różni je tylko jeden szczegół — mając do dyspozycji pola wyboru, autor może wskazać więcej niż jedną pozycję na liście. Za chwilę dodamy do szablonu wpisu Wydarzenie następne narzędzie — listę pól wyboru, za pomocą których autor wpisu będzie mógł określić, czy sala, w której ma odbywać się impreza, została przystosowana do potrzeb osób niepełnosprawnych. Lista pozwoli zaznaczyć, czy organizator zapewnia usprawnienia dla osób niedosłyszących, niedowidzących oraz poruszających się na wózku inwalidzkim. Aby dodać do szablonu grupę pól wyboru, musisz wrócić na stronę zarządzania polami rodzaju zawartości Wydarzenie. W polu Label (etykieta) wpisz Usprawnienia, w polu Name (nazwa) wprowadź wyrażenie usprawnienia, z listy Type of data to store

128

INNE RODZAJE PÓL

(rodzaj przechowywanych danych) wybierz pozycję List (lista), a na liście Form element to edit the data (element edycji danych w formularzu) wskaż opcję Check boxes/radio buttons (pola wyboru lub przyciski opcji). Ustawienia te przedstawiłem na rysunku 10.21.

Rysunek 10.21. Dodawanie pól wyboru Po naciśnięciu przycisku Save (zachowaj) pojawi się ekran, na którym będziesz mógł wprowadzić pozycje listy (rysunek 10.22).

Rysunek 10.22. Tworzenia pól wyboru 129

ROZDZIAŁ 10. „ RODZAJE ZAWARTOŚCI

Ostatnim krokiem dzielącym Cię od utworzenia grupy pól wyboru jest zmiana wartości na liście Number of values (liczba wartości). Zmieniając ją na wartość inną niż 1, sprawisz, że zamiast przycisków opcji w szablonie pojawią się pola wyboru. Ponieważ chcemy dać autorowi możliwość zaznaczenia wszystkich opcji na liście, zmienimy to ustawienie na opcję Unlimited (nieograniczone). Ustawienia te zostały zaprezentowane na rysunku 10.23.

Rysunek 10.23. Określanie liczby wartości, które będzie można wybrać z listy, by pojawiła się ona w postaci grupy pól wyboru Po zmianie ustawienia parametru Number of values (liczba wartości) kliknij przycisk Save settings (zachowaj ustawienia). W szablonie rodzaju wpisu pojawi się nowa grupa opcji wyświetlanych w postaci pól wyboru (rysunek 10.24).

Rysunek 10.24. Lista pól wyboru grupy Usprawnienia w szablonie wpisu Wydarzenie

Lista rozwijana Listy rozwijane nazywa się też czasami listami wyboru. Zademonstruję ich działanie, dodając pole tego typu do szablonu wpisu Wydarzenie. Lista pozwoli autorowi wpisu określić, czy opisywanym wydarzeniem będzie koncert, sztuka, czy wykład. Tworzenie listy rozwijanej nie różni się specjalnie od tworzenia pól wyboru czy przycisków opcji. Zacznij od uzupełnienia mini-formularza dodawania nowego pola, 130

INNE RODZAJE PÓL

wpisując kolejno etykietę Rodzaj wydarzenia i nazwę pola rodzaj_wydarzenia, a następnie wybierz opcję List (lista) rodzaju przechowywanych danych i opcję Select list (lista rozwijana) jako metodę wyświetlania danych. Po wprowadzeniu tych danych kliknij przycisk Save (zachowaj), aby przejść do ekranu, na którym podasz zawartość listy. Następny ekran, tak jak w poprzednich przypadkach, zawiera pole, w którym należy wpisać kolejne pozycje listy rozwijanej. Dane należy podawać w postaci klucz|etykieta, gdzie klucz przyjmuje kolejne wartości liczbowe, a etykieta jest nazwą wyświetlaną na liście. W naszym przypadku w polu tekstowym pojawią się następujące wpisy: 1|Koncert, 2|Przedstawienie i 3|Wykład. Po wpisaniu tych wartości, każdej w osobnym wierszu, kliknij przycisk Save settings (zachowaj ustawienia). Na ostatnim ekranie formularza konfiguracji ustaw wartość 1 w polu Number of values (liczba wartości). Jest to wybór o tyle oczywisty, że każde wydarzenie może zaliczać się wyłącznie do jednej z podanych kategorii. Później, o ile wprowadziłeś już wszystkie potrzebne Ci zmiany, kliknij przycisk Save settings (zachowaj ustawienia). Pole jest gotowe do użytku. Rysunek 10.25 przedstawia wygląd listy utworzonej zgodnie z podanymi powyżej wskazówkami.

Rysunek 10.25. Lista rozwijana

Pole wysyłania plików Pole wysyłania plików tworzy na stronie WWW przycisk, który umożliwi autorowi wpisu wysłanie wybranego pliku z dysku własnego komputera na serwer, na którym działa serwis tworzony w systemie Drupal. Tak wysłany plik zostanie dołączony do treści budowanego właśnie wpisu. Sposób tworzenia pola File upload (wysyłanie plików) nie różni się zasadniczo od metod tworzenia pozostałych pól. Jak zwykle rozbudujemy o tę możliwość przykładowy szablon wpisu Wydarzenie, umożliwiając autorowi wpisu załączanie plików z programem imprezy. W tym celu, jak poprzednio, udaj się na stronę zarządzania polami szablonu rodzaju zawartości Wydarzenie i dodaj nowe pole o etykiecie Program i nazwie program. Dane będą przechowywane w postaci pliku, dlatego wskaż na obydwu rozwijanych listach pozycję File (plik). Po wprowadzeniu danych pola kliknij przycisk Save (zachowaj). Na ekranie pojawi się formularz przedstawiony na rysunku 10.26. Za jego pomocą możesz określić, czy autor wpisu będzie mógł zażądać wyświetlania zawartości pliku razem z wpisem, oraz wskazać katalog, do którego trafią wysyłane na serwer pliki. Zaznacz opcje Enable display (wyświetlanie włączone) oraz File displayed by default (domyślne wyświetlanie zawartości pliku). W większości przypadków wystarczy, by pliki trafiały do katalogu publicznego (opcja Public files). Oczywiście, jeśli zakładasz wysyłanie na serwer plików zawierających materiały poufne, powinieneś wybrać opcję Private files (pliki prywatne). (Przykładem sytuacji, w której pliki powinny trafiać do katalogu prywatnego, jest wysyłanie danych osobowych do kadr przez pracowników placówek lokalnych, na przykład w postaci arkuszy kalkulacyjnych dostarczanych za pomocą odpowiedniego formularza internetowego). Po określeniu wszystkich parametrów kliknij przycisk Save settings (zachowaj ustawienia). Po zatwierdzeniu wstępnych ustawień na ekranie pojawi się formularz konfiguracji szczegółów pola (rysunek 10.27). Trzy pola są wyjątkowo ważne i na nich powinieneś skupić swoją uwagę. Wprowadź tekst pomocy w polu Help text (tekst pomocy), aby wyjaśnić autorowi wpisu, do czego służy to pole (Prosimy o wysłanie na serwer programu wydarzenia.). Uzupełnij zawartość pola Allowed files extentions (dopuszczalne rozszerzenia plików) — w naszym przypadku będą to pliki txt, doc lub pdf — i podaj graniczny rozmiar wysyłanego pliku, wpisując tę wartość w polu Maximum upload size (maksymalny rozmiar pliku) — w naszym przykładzie ograniczymy go do 1 MB. Po wprowadzeniu danych kliknij przycisk Save settings (zachowaj ustawienia).

131

ROZDZIAŁ 10. „ RODZAJE ZAWARTOŚCI

Rysunek 10.26. Ustawienia parametrów pola wysyłania pliku

Rysunek 10.27. Parametry konfiguracyjne pola wysyłania plików Rysunek 10.28 pokazuje, jak pole wysyłania plików wygląda w szablonie zawartości Wydarzenie.

Rysunek 10.28. Pole wysyłania plików

132

INNE RODZAJE PÓL

Obszar tekstowy Nie da się uniknąć sytuacji, w których będziesz musiał umożliwić autorowi wpisu wprowadzenie do szablonu wpisu większej porcji tekstu. Oczywiście mógłbyś zażądać od autora, by wpisywał tekst w polu tekstowym (w jednym wierszu), ale przyjęło się stosować w takich przypadkach obszary tekstowe. Znów rozbudujemy nasz przykład — dodamy do szablonu obszar tekstowy, w którym autor będzie mógł wprowadzić wskazówki dojazdu na miejsce wydarzenia. Kroki niezbędne do dodania obszaru tekstowego są analogiczne jak w poprzednich przypadkach. Nadaj polu etykietę Dojazd, przypisz mu nazwę dojazd, a z list rozwijanych wybierz opcje Long text (długi tekst) i Text area (multiple rows) (obszar tekstowy — wiele wierszy). Po ustawieniu tych parametrów kliknij przycisk Save (zachowaj), co przeprowadzi Cię do następnego ekranu formularza. Tu pojawiłyby się dodatkowe opcje konfiguracyjne, gdyby obszar tekstu dysponował takimi parametrami. Ponieważ jednak obszar tekstowy nie oferuje dodatkowych ustawień, kliknij przycisk Save field settings (zachowaj ustawienia pola). Wyświetlisz w ten sposób ostatni ekran konfiguracji obszaru tekstowego (rysunek 10 29). Znajdziesz tu najważniejsze parametry definiujące obszar tekstowy — Rows (wiersze) i Help text (tekst pomocy). Liczba wierszy określa wysokość obszaru tekstowego na ekranie i domyślnie przyjmuje wartość 5, czyli dokładnie taką, jaką ma okno tekstu pomocy widoczne na rysunku 10.29. Zostawimy wartość domyślną bez zmian, a w polu pomocy wpiszemy tekst Prosimy wprowadzić wskazówki dojazdu na miejsce.

Rysunek 10.29. Konfiguracja obszaru tekstowego Po wpisaniu wszystkich danych kliknij przycisk Save settings (zachowaj ustawienia). Od tej chwili pole tekstowe jest gotowe do użycia. Gdy spróbujesz utworzyć nowy wpis typu Wydarzenie, znajdziesz w jego szablonie pole wyglądające tak jak to, które przedstawiłem na rysunku 10.30.

133

ROZDZIAŁ 10. „ RODZAJE ZAWARTOŚCI

Rysunek 10.30. Nowy obszar tekstowy, w którym możesz wprowadzić wskazówki dojazdu

Pola liczbowe i inne elementy szablonu Budując szablon rodzaju wpisu w poszczególnych krokach, nie mogłeś nie zauważyć, że istnieje pewien wzór definiowania parametrów pola, a większość pól ma pewne elementy wspólne. Pole liczbowe jest odmianą pola tekstowego, narzucającego jednak na użytkownika obowiązek wprowadzania w nim wyłącznie znaków numerycznych (0 – 9). Jeżeli zdecydujesz się rozbudować zestaw dostępnych elementów szablonu, pobierając z serwera moduł Content Construction Kit (CCK), i będziesz z nich korzystać, odkryjesz pewne różnice w sposobie konfiguracji poszczególnych pól, ponieważ zaczną się one różnić nieco od siebie. Tym niemniej ogólny schemat definiowania parametrów pola pozostanie ten sam. Jeśli dotąd nie zdecydowałeś się sprawdzić listy modułów CCK, to myślę, że teraz nadeszła odpowiednia pora. Sprawdź, w jaki sposób możesz rozbudować możliwości rdzenia systemu Drupal 7. Odwiedź w tym celu stronę http://drupal.org/project/modules i wybierz z listy Modules categories (rodzaje modułów) pozycję Content Construction Kit (CCK). Przeglądając spis modułów tej kategorii, uważaj, by skupiać się tylko na tych, które zostały zbudowane z myślą o systemie Drupal 7. Wiele z modułów CCK weszło w skład rdzenia najnowszej wersji systemu Drupal. Wcześniejsze wersje systemu wymagały instalacji modułów CCK. Dopiero po instalacji można było wykonywać działania, które teraz są dostępne natychmiast po zainstalowaniu Drupal 7. Aby zawęzić wyniki wyszukiwania do modułów przeznaczonych dla Drupal 7, skorzystaj z opcji Filter by compatibility (filtruj według wersji).

Formatowanie układu własnego rodzaju zawartości Zazwyczaj domyślny układ elementów rodzaju wpisu jest wystarczający, ale nie mogę wykluczyć, że w pewnym momencie przestanie Ci on wystarczać. W takiej sytuacji będziesz potrzebować narzędzi, które pozwolą Ci określić położenie poszczególnych elementów na stronie. O położeniu poszczególnych elementów rodzaju zawartości na końcowej stronie decydują ustawienia dostępne na stronie Manage display (zarządzanie wyświetlaniem). Stronę tę otworzysz, korzystając z odnośnika manage display (zarządzanie wyświetlaniem), umieszczonego na stronie rodzajów zawartości (rysunek 10.31).

134

FORMATOWANIE UKŁADU WŁASNEGO RODZAJU ZAWARTOŚCI

Rysunek 10.31. Odnośnik zarządzania wyglądem na stronie rodzajów zawartości Znów posłużę się przykładem szablonu wpisu Wydarzenie, aby zademonstrować Ci zasady pracy z tą grupą narzędzi. Kliknij odnośnik manage display (zarządzanie wyświetlaniem) umieszczony obok pozycji Wydarzenie, by wyświetlić stronę przedstawioną na rysunku 10.32.

Rysunek 10.32. Strona zarządzania wyświetlaniem

135

ROZDZIAŁ 10. „ RODZAJE ZAWARTOŚCI

Poniższa lista zawiera spis wszystkich możliwych ustawień pól szablonu i ich etykiet. Masz do dyspozycji dwa rodzaje ustawień — dla pełnej treści wpisu (Default) oraz dla wersji skróconej (Teaser). Gdy rozwiniesz listę ustawień Labels (etykiety), znajdziesz na niej trzy możliwe opcje. • Above (ponad) — oznacza, że etykieta będzie pojawiać się jeden wiersz ponad polem, dla którego definiujesz to ustawienie. • Inline (obok) — etykieta zostanie wyświetlona po lewej stronie pola, na tej samej co ono wysokości. • Hidden (ukryta) — etykieta w ogóle nie pojawi się na ekranie. Po rozwinięciu listy Format (format), jaka znajduje się przy każdym z pól, odkryjesz następujące opcje: • Default (domyślny) — treść wprowadzona w polu będzie wyświetlana na ekranie w dokładnie taki sposób, jaki zdefiniowałeś w czasie pracy nad szablonem. • Plain text (zwykły tekst) — treść będzie wyświetlana w postaci zwykłego tekstu, z pominięciem poleceń wydawanych za pomocą znaczników HTML wpisanych w polach szablonu. • Trimmed (przycięty) — treść zostanie „przycięta” do określonej liczby znaków. Jeśli tekst wprowadzony przez autora jest dłuższy, pod treścią pojawi się odnośnik read more (czytaj dalej). • Hidden (ukryty) — treść nie pojawi się na ekranie. Gdyby zaszła potrzeba zmiany kolejności pól na ekranie lub gdybyś uznał, że musisz zmienić sposób ich wyświetlania, możesz dokonać odpowiednich zmian, przeciągając cały wiersz listy strony manage fields (zarządzanie polami) w nowe miejsce. Na wspomnianą stronę dostaniesz się, klikając odnośniki Structure/Content types/manage fields (budowa/rodzaje zawartości/zarządzanie polami). Kliknięcie ostatniego z nich spowoduje wyświetlenie strony widocznej na rysunku 10.33.

Rysunek 10.33. Strona zarządzania polami

136

PODSUMOWANIE

Aby zmienić położenie pola, chwyć kursorem myszy znak (+) znajdujący się obok nazwy pola, które chcesz przesunąć, i przeciągnij go w nowe położenie. Potem zwolnij przycisk myszy. Pamiętaj, by po zmianie położenia wszystkich pól, które chcesz przemieścić, kliknąć przycisk Save (zachowaj).

Podsumowanie Rodzaje zawartości to jeden z aspektów systemu Drupal, które dają mu taką przewagę nad pozostałymi systemami zarządzania treścią, i dlatego niezmiernie ważne jest, by zrozumieć zasadę działania tego narzędzia. Oczywiście witryna budowana w systemie Drupal może z powodzeniem zawierać wyłącznie wpisy rodzaju Article (artykuł) i Basic page (strona), ale przypuszczam, że szybko zdecydujesz się na rozbudowanie jej o możliwości, jakie płyną z wykorzystania różnych rodzajów zawartości. W tym rozdziale pokazałem, w jaki sposób zdefiniować rodzaj zawartości, z którego korzystam podczas realizacji niemal każdego zlecenia. Poza tym często tworzę szablony wpisów Klienci, Towary, Wydziały, Często zadawane pytania, Oddziały zamiejscowe czy Pracownicy. Jestem przekonany, że i Ty, pracując nad własnym serwisem, szybko docenisz funkcjonalność własnych rodzajów zawartości. Kolejną istotną cechą własnego rodzaju zawartości jest możliwość budowania osobistych raportów, tak zwanych widoków rodzaju zawartości, tworzonych na podstawie wpisów w bazie danych systemu Drupal. Wyobraź sobie, że rodzaj zawartości Wydarzenie, który przed chwilą zdefiniowaliśmy, jest wykorzystywany już od jakiegoś czasu. Byłoby wygodnie móc wygenerować listę wszystkich wydarzeń, które zostały wymienione w serwisie, w taki sposób, by móc sortować ją według daty i godziny rozpoczęcia lub według miejsca, w którym ma odbyć się wydarzenie. Moduł dodatkowy Views pozwala stosunkowo prosto generować takie zestawienia. O tym, jak wykonać taki raport, napiszę w rozdziale 11.

137

ROZDZIAŁ 10. „ RODZAJE ZAWARTOŚCI

138

ROZDZIAŁ 11 „„„

Moduł Views

Każdy projektant stron WWW w systemie Drupal, zapytany o najbardziej niezbędny moduł tego narzędzia, wskazałby zapewne Views, Panels lub Content Construction Kit (CCK). Wymieniam je w takiej kolejności nieprzypadkowo — moduł Views pojawia się w takich sytuacjach zazwyczaj właśnie na pierwszym miejscu. To dodatek, bez którego wielu projektantów w ogóle nie wyobraża sobie pracy. Dlaczego jest on taki wyjątkowy? Mówiąc bez ogródek, moduł Views to proste w użyciu narzędzie pozwalające wybierać i wyświetlać dane na stronie internetowej. Jego możliwości są wykorzystywane najczęściej w celu: • wyświetlania posortowanych malejąco list najnowszych artykułów na stronie; • wyświetlania list oddziałów przedsiębiorstwa w postaci, która umożliwia sortowanie danych po kliknięciu na nagłówek kolumny z nazwami miasta czy województwa; • wyświetlania galerii zdjęć; • wyświetlania list wpisów na blogu, z jednoczesnym umożliwieniem sortowania według tematu; • tworzenia kanału RSS, w którym będą pojawiać się wiadomości na temat najnowszych wpisów na stronie; • wyświetlania dowolnej potrzebnej Ci listy, utworzonej na podstawie danych zawartych w bazie systemu Drupal. W rozdziale 10. zbudowaliśmy własny rodzaj zawartości — szablon wpisu informującego o mającym odbyć się wydarzeniu. Teraz wykorzystamy moduł Views, by zbudować listę wydarzeń, stanowiącą ułatwienie dla osób szukających informacji na naszej stronie.

Instalacja modułu Views Moduł Views zalicza się do grupy modułów dodatkowych, co oznacza, że zanim zaczniesz z niego korzystać, będziesz musiał go zainstalować i włączyć. Prawdopodobnie jest on już zainstalowany w Twoim systemie Drupal, ponieważ na nim demonstrowałem proces instalacji modułu w rozdziale 8. Jeżeli nie zainstalowałeś go wtedy, wróć do tamtego rozdziału i wykonaj, krok po kroku, podane przeze mnie instrukcje. Aby przekonać się, czy moduł został zainstalowany i włączony, otwórz stronę konfiguracji modułów (kliknij link Modules (moduły), znajdujący się w górnym menu) i sprawdź listę wyświetlonych modułów. Przewiń ją na dół. Znajdziesz tam informacje o module Views. Jeśli jest on poprawnie zainstalowany i włączony, informacja będzie wyglądać tak, jak przedstawia to rysunek 11.1.

ROZDZIAŁ 11. „ MODUŁ VIEWS

Rysunek 11.1. Poprawnie zainstalowany i włączony moduł Views Narzędzia, z których będziemy korzystać w tym rozdziale, znajdują się w modułach Views (pierwszy na liście) i Views UI. Moduł Views Exporter jest niezwykle pomocny, gdy zamierzasz wyeksportować definicję widoku lub zaimportować ją do nowego widoku. Pamiętaj jednak, że w ten sposób nie wykonasz eksportu danych przedstawionych w widoku. W tym celu musiałbyś skorzystać z innego modułu, dostępnego pod adresem http://drupal.org/project/views_export_xls.

Tworzenie pierwszego widoku Po zainstalowaniu i włączeniu modułu Views możemy zabrać się do pracy. Oczywiście widok bez zawartości jest po prostu pustą stroną. W rozdziale 10. utworzyliśmy rodzaj zawartości Wydarzenie. Z doświadczenia wiem, że możliwości modułu Views są bardzo często wykorzystywane do tworzenia listy nadchodzących imprez. Poświęć teraz kilka minut na przygotowanie wpisów informujących o różnych wydarzeniach, aby mieć materiał, który pojawi się na zestawieniu. Aby utworzyć nowy widok, kliknij znajdujący się na górze strony odnośnik Structure (budowa), a następnie odnajdź na liście elementów budowy serwisu odnośnik Views (widoki). Kliknij go, by otworzyć stronę zarządzania widokami. Aby dodać nowy widok, kliknij widoczny pod tytułem strony odnośnik Add new view (dodaj nowy widok). W ten sposób otworzysz stronę widoczną na rysunku 11.2. Na stronie znajdziesz następujące narzędzia konfiguracji widoku: • View name (nazwa widoku) — nazwa musi być niepowtarzalna (żaden inny widok w serwisie nie może korzystać z tej samej nazwy). Może zawierać wyłącznie litery, cyfry i podkreślenia (nie mogą pojawiać się w niej spacje ani polskie znaki diakrytyczne). Warto wybrać nazwę dobrze opisującą cel utworzenia widoku, żeby ludzie przeszukujący listę widoków wiedzieli, który wybrać. Nasz pierwszy widok będzie nazywać się nadchodzace_wydarzenia. • View description (opis widoku) — w tym polu możesz wprowadzić dodatkowe informacje na temat widoku. My wpiszemy w nim wyrażenie Lista nadchodzących wydarzeń. • View tag (znacznik widoku) — to pole niewymagane, w którym możesz wprowadzić listę znaczników definiujących dany widok. • View type (rodzaj widoku) — to grupa opcji zawierająca spis rodzajów informacji, które mogą zostać zapisane w bazie danych Drupal. Najczęściej wybieraną opcją jest Node (wpis). Większość danych przechowywanych w bazie Drupal zalicza się właśnie do tej kategorii. Kliknij przycisk Next (dalej), aby przejść do następnego kroku budowania nowego widoku. W oknie przeglądarki pojawi się strona przedstawiona na rysunku 11.3. Ekran konfiguracyjny widoku na pierwszy rzut oka wydaje się być skomplikowany, a nawet nieco przytłaczający. Na szczęście to złudne wrażenie. Pracę nad nowym widokiem rozpoczniemy od poznania zawartości lewej skrajnej kolumny przedstawionego wyżej formularza. Kolumna ta opisana jest hasłem Defaults (ustawienia domyślne), co oznacza, że każda z wartości przypisanych widocznym po prawej stronie parametrom będzie traktowana jak wartość domyślna. Poniżej etykiety Defaults (ustawienia domyślne) znajdziesz listę rozwijaną z następującymi pozycjami: 140

TWORZENIE PIERWSZEGO WIDOKU

Rysunek 11.2. Tworzenie nowego widoku

Rysunek 11.3. Strona edycji widoku • Attachment (załącznik) — załączniki są wykorzystywane do tworzenia widoków, które pojawiają się w postaci uzupełnienia widoku podstawowego (załącznika do niego). W praktyce oznacza to, że dysponujesz narzędziem pozwalającym tworzyć kilka widoków w jednym. To zaawansowana opcja, dobrze opisana na stronie www.grupal.org/project/views. • Block (blok) — o blokach wspominałem już w poprzednich rozdziałach. Nazwałem je podstawowymi niezależnymi częściami serwisu, w których umieszcza się treść przypisaną konkretnemu obszarowi strony internetowej. Jeżeli widok ma znaleźć się we wskazanym przez Ciebie miejscu, wybranie opcji Block (blok) do jego utworzenia wydaje się być rozsądnym rozwiązaniem.

141

ROZDZIAŁ 11. „ MODUŁ VIEWS

• Feed (wątek) — wątek to mechanizm automatycznego generowania treści dla kanałów RSS. • Page (strona) — strona pozwala tworzyć widok wyświetlany w pełnym wymiarze okna serwisu, dysponujący własnym adresem URL (definiowanym w trakcie konfigurowania widoku). O opcjach tworzenia widoków typu Page (strona) opowiem za chwilę. Chwilowo pozostawimy tę kolumnę bez zmian. W środkowej kolumnie znajduje się szereg interesujących nas opcji. Poniższe podrozdziały poświęciłem na ich szczegółowe omówienie.

Ustawienia widoków Grupa Views settings (ustawienia widoków) zawiera jedno pole — Tag (opis/tag) — w którym można podać opis taksonomii. Opis ten umożliwi w przyszłości odnalezienie widoku. W tym ćwiczeniu nie będziemy zmieniać domyślnej wartości None (nic). Aby zmienić wartość parametru, kliknij przypisany jej odnośnik, dzięki czemu otworzysz na dole formularza pole, w którym będziesz mógł podać nową wartość.

Ustawienia podstawowe Spójrz na rysunek 11.3. Znajdziesz na nim grupę Basic settings (ustawienia podstawowe), w której możesz zdefiniować następujące parametry widoku: Name (nazwa), Title (tytuł), Use pager (użyj podziału na strony), More link (odnośnik „Czytaj dalej”) i Access (dostęp). Poniżej znajdziesz opis każdego z nich.

Nazwa Możesz zmienić nazwę widoku na inną niż Defaults (ustawienia domyślne). W tym celu kliknij odnośnik Defaults (ustawienia domyślne) i zmień wartość atrybutu widoku w polu wyświetlonym na dole strony. Wprowadzona tu nazwa jest wykorzystywana wyłącznie przez system i pozostaje niewidoczna dla odwiedzających stronę. Pozostawimy ją bez zmian.

Tytuł Wartość powiązana z atrybutem Title (tytuł) pojawia się na szczycie listy generowanej widokiem. Aby ją zmienić, kliknij odnośnik None (nic), co spowoduje wyświetlenie pola tekstowego na dole okna formularza. Wpisz tam nową nazwę listy, by zmienić wartość domyślną. W naszym przykładzie zastąpimy ją bardziej opisowym wyrażeniem, które będzie stanowić źródło informacji dla osób odwiedzających naszą witrynę. Wpisz w polu tekstowym Nadchodzące wydarzenia. Po wprowadzeniu tego tytułu kliknij przycisk Update (aktualizuj), co przeniesie Cię z powrotem na górę strony konfiguracji widoku. Wprowadzona wartość pojawia się od razu obok etykiety Title (tytuł).

Użyj podziału na strony Jeśli przewidujesz utworzenie listy złożonej z setek elementów, ogranicz ich wyświetlanie na stronie do określonej liczby (zazwyczaj jest to około 10 elementów). Skorzystaj w tym celu z opcji Use pager (użyj podziału na strony). Element nawigacji po stronach przyjmuje zazwyczaj kształt >. Osoba przeglądająca listę może skorzystać z nawigacji, by zapoznać się ze wszystkimi pozycjami ujętymi w spisie. Moduł Views tworzy odpowiedni podział stron automatyczne i wyświetla element nawigacyjny, uzależniając jego długość od liczby elementów listy. Domyślnie na jednej stronie umieszcza się dziesięć elementów, ale możesz zmienić tę wartość, klikając odnośnik Paged, 10 items

142

TWORZENIE PIERWSZEGO WIDOKU

(podzielone, 10 elementów na stronę). Na stronie pojawi się lista czterech opcji przedstawiona na rysunku 11.4. Opcja Display a specified number of items (wyświetlaj określoną liczbę elementów) pozwala ograniczyć wyświetlanie elementów listy do określonej liczby, ale bez tworzenia elementu nawigacji. To przydatne rozwiązanie, jeżeli planujesz wyświetlenie trzech pierwszych pozycji widoku. Korzystam z niej zawsze, gdy chcę wyświetlić w bloku What’s new (nowe wpisy) trzy ostatnie wpisy w serwisie. Zaznaczenie opcji Display all items (wyświetl wszystkie elementy) sprawia, że na ekranie pojawiają się wszystkie elementy listy utworzonej w widoku. To rozwiązanie sprawdza się, gdy liczba elementów listy widoku nie przekracza dwudziestu pięciu pozycji. Tworząc dłuższą listę, musisz liczyć się z tym, że niewielu odwiedzających zechce zapoznać się z całą jej zawartością. Opcja Paged output, full pager (dzielone na strony, wszystkie opcje) powoduje wyświetlenie wyników z podziałem na strony (domyślnie po dziesięć elementów na stronie) oraz elementu nawigacji. Wszystkie opcje nawigacji zakładają wyświetlenie poleceń Jump to the start of the list (przejdź na początek), Jump to the end of the list (przejdź na koniec), Previous (poprzedni) oraz Next (następny). Opcja Paged output, mini pager (dzielone na strony, wersja mini) działa podobnie, ale nawigacja zawiera jedynie polecenia przejścia o jeden wstecz i o jeden w przód.

Rysunek 11.4. Opcje podziału na strony

Liczba elementów na stronie Jeżeli zdecydujesz się wprowadzić podział na strony, będziesz mógł określić liczbę elementów listy pojawiających się na stronie. Kliknij w tym celu obrazek trybu umieszczony obok odnośnika Use pager (użyj podziału na strony). Po kliknięciu tej ikony na dole ekranu pojawi się formularz, w którym będziesz mógł wprowadzić liczbę elementów listy widoku, które mają pojawiać się na jednej stronie. Wartość tę wpisz w polu Items per page (liczba elementów na stronie). W polu Offset (przesunięcie) określasz numer pierwszego elementu listy (gdybyś chciał opuścić dziesięć pierwszych elementów, musiałbyś wpisać w nim wartość 11). W polu Pager ID (identyfikator nawigacji) domyślnie pojawia się wartość 0 i w większości przypadków należy pozostawić ją bez zmiany. Pole Number of pages (liczba stron) jest puste i zazwyczaj pozostawia się je w tym stanie, co jest równoznaczne z wyświetleniem wszystkich stron listy. Możesz też pozwolić użytkownikowi na określenie liczby elementów pojawiających się na jednej stronie (opcja Expose items per page) lub na określenie przesunięcia elementów listy (opcja Expose Offset). Omówione tu parametry znajdziesz na rysunku 11.5.

Odnośnik „Czytaj dalej” Jeśli ograniczysz widok, podając w polu Items per page (liczba elementów na stronie) graniczną wartość mniejszą niż liczba wszystkich elementów widoku, a mimo to nie zdecydujesz się na wprowadzenie podziału na strony, możesz zawsze umieścić po ostatnim wyświetlonym elemencie odnośnik Read more (czytaj dalej). W tym celu kliknij odnośnik No (nie) umieszczony przy etykiecie More link (odnośnik czytaj dalej). W wyświetlonym na dole strony formularzu zaznacz opcję Create more link (utwórz odnośnik „Czytaj dalej”). Możesz też zdecydować, by odnośnik taki pojawiał się zawsze pod listą widoku (Always display more link), oraz określić tekst tego odnośnika (pole More link text). My nie będziemy zmieniać ustawienia domyślnego.

143

ROZDZIAŁ 11. „ MODUŁ VIEWS

Rysunek 11.5. Określanie opcji podziału na strony

Dostęp Zmieniając ustawienia parametru Access (dostęp), możesz określić, jacy użytkownicy będą mieć dostęp do listy widoku. W tym celu musisz wybrać odpowiednie rangi z utworzonych w serwisie lub wskazać wybrane uprawnienia. Możesz na przykład zażyczyć sobie, by wypisane w widoku informacje były dostępne jedynie dla pracowników działu kadr. Aby nadać im odpowiednie uprawnienia, kliknij odnośnik Unrestricted (nieograniczony) znajdujący się obok etykiety Access (dostęp). Na dole strony pojawi się formularz widoczny na rysunku 11.6.

Rysunek 11.6. Ograniczenia dostępu do widoku Możesz wskazać na liście opcję Permission (uprawnienia) — wtedy o dostępie do widoku będzie decydować uprawnienie nadane temu rodzajowi zawartości — albo zdecydować się na opcję Role (ranga). Zazwyczaj obowiązuje schemat przypisywania uprawnień poszczególnym rangom, które są na tyle szczegółowe, że w zupełności wystarczają do definiowania dostępu do widoków. Oczywiście nie da się wykluczyć, że w pewnym momencie będziesz potrzebował drobniejszego filtru, czy też być pewnym, że nie założysz kilkunastu rang z powielającymi się uprawnieniami. W naszym przykładzie zaznacz teraz opcję Role (ranga), a następnie kliknij przycisk Update (aktualizuj). Na ekranie pojawi się spis rang zdefiniowanych w systemie. Wybierz rangę Authenticated user (użytkownik uwierzytelniony), co pozwoli wyświetlać widoki każdemu użytkownikowi posiadającemu konto w serwisie.

144

TWORZENIE PIERWSZEGO WIDOKU

Ustawienia zaawansowane Za pomocą opcji grupy Advanced settings (ustawienia zaawansowane) określisz, czy moduł Views ma używać możliwości technologii Ajax, czy powinien usuwać ze spisu powtarzające się pozycje oraz czy ma zapisywać dane w pamięci podręcznej. „ Uwaga: Ajax to narzędzie utworzone poprzez połączenie kilku starszych technologii. Pozwala sortować zawartość strony i przechodzić pomiędzy poszczególnymi elementami listy bez potrzeby odświeżania zawartości całej strony. Funkcja ta znacznie ułatwia użytkownikom pracę z widokiem, ale jest w pełni opcjonalna.

Użycie technologii Ajax Aby skorzystać z tej funkcji, kliknij odnośnik No (nie) umieszczony przy etykiecie Use AJAX (użycie technologii Ajax). Na dole strony pojawią się dwa przyciski opcji — zmień ustawienie No (nie) na Yes (tak).

Niepowtarzalne Zdarza się czasami, że na liście widoku pojawiają się zduplikowane wpisy (jest to mało prawdopodobne, ale zastosowanie niektórych filtrów wywołuje taki efekt). Opcja Distinct (niepowtarzalne) pozwala usunąć je z listy. Jeśli znajdziesz w spisie powtarzające się pozycje, zmień jej domyślne ustawienie. W tym celu kliknij odnośnik No (nie) przy etykiecie Distinct (niepowtarzalne) i zaznacz pole wyboru Distinct (niepowtarzalne) w formularzu wyświetlonym na dole strony. W omawianym przykładzie nie będziemy zmieniać ustawień domyślnych.

Grupuj Grupowanie — opcja Use grouping (użyj grupowania) — to potężne narzędzie pozwalające dzielić dane wyświetlane w widoku na mniejsze grupy w zależności od pola, jakie zostanie ujęte w widoku. Moglibyśmy na przykład zażądać wyświetlenia wpisów o wydarzeniach z uwzględnieniem miejsca ich organizacji tak, by każde z miejsc tworzyło własną grupę. Do tej opcji powrócę w dalszej części rozdziału.

Zapisywanie do pamięci podręcznej W przypadkach, gdy widok zawiera wiele elementów, jego wyświetlanie może zająć więcej czasu, niż byś sobie tego życzył. Jeśli Twój serwis cieszy się dużą popularnością, a listy widoków zawierają wiele elementów, powinieneś rozważyć włączenie opcji Caching (zapisywanie do pamięci podręcznej). To rozwiązanie sprawia, że moduł Views sprawdza najpierw, czy dana lista nie została zapisana do pamięci podręcznej, i jeśli miało to miejsce, odczytuje ją z pamięci zamiast odtwarzać z bazy danych rekord po rekordzie. To znacznie przyspiesza proces wyświetlania strony. Ułomność tej metody daje o sobie znać, jeżeli zawartość generowanej listy ulega częstym zmianom. Zapisywanie do pamięci podręcznej elementów często zmieniających się list skutkuje wyświetlaniem wpisów w postaci innej niż występują one w bazie danych — taka lista nie uwzględni elementów zmienionych, dodanych lub usuniętych, ponieważ moduł Views nie odwoła się do bazy, tylko wczyta poprzednią wersję wszystkich wpisów listy. Niemniej jest to bardzo przydatne narzędzie i warto zastanowić się nad jego wykorzystaniem. W naszym przykładzie lista elementów widoku jest tak krótka, a serwis na tyle mało popularny, że zdecydujemy się pozostawić domyślną wartość tego atrybutu — None (nic).

145

ROZDZIAŁ 11. „ MODUŁ VIEWS

Ustawienia stylów Grypa Style settings (ustawienia stylów) jest chyba najważniejszą częścią pierwszej kolumny parametrów. To właśnie atrybuty tej sekcji decydują o wyglądzie Twojego widoku. Warto poświęcić im nieco uwagi, jeśli planujesz tworzenie listy według własnej koncepcji.

Styl Moduł Views pozwala wyświetlać wyniki w kilku różnych ustawieniach — Grid (siatka), HTML List (lista HTML), Table (tabela) lub Unformatted (niesformatowany). Dobrym przykładem danych przedstawionych w siatce są zdjęcia w galerii fotografii, wyświetlane w wierszach i kolumnach. Lista HTML to zwyczajna lista wypunktowana, tabela przypomina układem arkusz kalkulacyjny, w którym każdy element zostaje wpisany w osobnej komórce, natomiast dane niesformatowane pojawiają się na ekranie w takiej postaci, w jakiej pojawiłyby się wypisane na stronie w skróconej lub pełnej wersji. Zaczniemy od przypisania widokowi wyglądu Unformatted (niesformatowany), a następnie zmienimy go na wygląd tabeli.

Styl wiersza Sposób wyświetlania poszczególnych elementów listy opisuje parametr Row style (styl wiersza). Aby zapoznać się z możliwymi ustawieniami tego atrybutu, kliknij odnośnik Fields (pola) znajdujący się obok etykiety Row style (styl wiersza). Na dole ekranu pojawią się opcje konfiguracji widoczne na rysunku 11.7.

Rysunek 11.7. Określanie stylu wiersza Zaznaczenie opcji Fields (pola) pozwala umieścić na liście widoku wybrane pola wpisu (na przykład taka lista może zawierać same tytuły zawartości). Opcja Node (segment) umieszcza na liście cały wpis w postaci Full Node (pełna) lub Teaser (skrócona). Gdy odwiedzając jakiś serwis, napotkasz spis najnowszych dodanych artykułów, możesz z dużym prawdopodobieństwem przyjąć, że autor serwisu skorzystał z opcji Node (segment), wyświetlając zawartość w wersji skróconej. My też wybierzemy opcję Node (segment). Ponieważ zdecydowaliśmy się na opcję Node (segment), będziemy musieli stwierdzić teraz, czy wpisy mają pojawiać się na liście w postaci Full Node (pełna), czy Teaser (skrócona). Parametry konfiguracji opcji podstawowej pojawiają się na ekranie natychmiast po jej wskazaniu, co uczyniliśmy w poprzednim kroku (rysunek 11.8).

Rysunek 11.8. Opcje konfiguracji stylu wiersza

146

TWORZENIE PIERWSZEGO WIDOKU

Wyświetlony formularz pozwala wybrać wyświetlanie w postaci Teaser (skrócona) lub w postaci Full Node (pełna). W omawianym przykładzie najlepiej sprawdzi się opcja Teaser (skrócona). Pole wyboru Display links (wyświetl odnośniki) pozwala włączyć lub wyłączyć wyświetlanie odnośnika Read more (czytaj dalej) oraz innych odsyłaczy powiązanych z danym segmentem, na przykład wszelkich odnośników do załączonych plików. W przykładzie pozwolimy na wyświetlanie odnośników. Pole wyboru Display node comments (wyświetl komentarze wpisu) pozwala określić, czy wpisom umieszczanym na liście mają towarzyszyć odpowiedzi czytelników. Jeżeli odpowiedzi stanowią istotny element Twojej witryny i zawierają ważne dla odwiedzających treści, powinieneś skorzystać z tej opcji. W naszym przykładzie odpowiedzi nie są ważne, więc pozostawimy to pole niezaznaczone. Po zakończeniu konfiguracji kliknij przycisk Update (aktualizuj), żeby powrócić na górę formularza.

Klasa CSS Parametr CSS Class (klasa CSS) pozwala przypisać atrybut klasy do tworzonego widoku. Aby zmienić wartość domyślną na inną, kliknij umieszczony obok etykiety odnośnik None (nic) i wpisz w polu tekstowym nazwę klasy CSS.

Motyw Parametr Theme (motyw) jest bardziej funkcją pomocniczą dla tych, którzy są odpowiedzialni za nadanie widokowi odpowiedniego wyglądu, niż opcją konfiguracji. Ustawienie to wyświetla wszystkie znaczniki CSS, które odpowiadają za nadanie widokowi wyglądu. To zaawansowana funkcja, wykraczająca znacznie poza zakres materiału tej książki.

Jawny formularz Funkcja Exposed form (jawny formularz) pozwala oddzielić narzędzia ustawień wyglądu widoku od samego widoku. Narzędzia te zostaną przeniesione do jednego bloku, który możesz umieścić w dowolnym obszarze witryny. Opcja ta sprawdza się, gdy po nałożeniu na widok filtra, będziesz chciał przenieść go z góry obszaru widoku i umieścić w innym miejscu witryny w postaci odpowiedniego bloku. (Przykładem może być sytuacja, w której udostępnisz odwiedzającym możliwość wskazania parametrów, które zredukują liczbę wyświetlanych wyników, jak choćby ograniczenie listy wydarzeń do tych, które będą miały miejsce w Operze Wrocławskiej). To przydatna funkcja, ale nazbyt skomplikowana, by wgłębiać się w nią w tym rozdziale. I to już koniec ustawień z pierwszej kolumny. Jesteśmy gotowi, by zająć się drugą, przedtem jednak — ponieważ dokonaliśmy kilku zmian — warto zapisać wyniki pracy. Gdybyś teraz zamknął okno przeglądarki, wszystkie zmienione ustawienia powróciłyby do swoich wartości domyślnych. Z doświadczenia radzę Ci zapisywać zmiany możliwie często, dlatego teraz kliknij przycisk Save (zachowaj).

Nagłówek Opcja Header (nagłówek) pozwala zmieniać tekst pojawiający się na szczycie listy. Jeżeli planujesz umieszczenie przed nią akapitu wprowadzającego, w którym opisałbyś zawartość listy, czy też dodanie dowolnego stałego fragmentu tekstu, opcja Header (nagłówek) nada się do tego wyśmienicie. Aby dodać nowy wpis, kliknij ikonę (+) umieszczoną obok etykiety grupy. Na dole strony pojawi się formularz konfiguracji segmentu, który pozwoli określić zakres stosowalności nagłówka (globalny, na początku każdej strony, lub lokalny, na początku określonej grupy, jeśli korzystasz z opcji grupowania). W omawianym przykładzie zaznaczymy opcję () i włączymy funkcję Global: Text area (globalnie: obszar tekstowy). Wygląd ustawień prezentuje rysunek 11.9.

147

ROZDZIAŁ 11. „ MODUŁ VIEWS

Rysunek 11.9. Ustawianie rodzaju nagłówka Po kliknięciu przycisku Add (dodaj) na ekranie pojawi się formularz przedstawiony na rysunku 11.10. Wpisz w nim tekst, który ma pojawić się na szczycie listy widoku. W naszym przykładzie będzie to zdanie Poniżej znajduje się lista nadchodzących wydarzeń. Później kliknij przycisk Update (aktualizuj).

Rysunek 11.10. Określanie typu nagłówka

Stopka Widok może także zawierać stopkę, czyli tekst umieszczony na dole listy. Tworzenie stopki przebiega tak samo, jak tworzenie nagłówka. Wystarczy, że klikniesz znak (+) umieszczony obok etykiety Footer (stopka), by wyświetlić odpowiedni formularz.

Brak wyników Opcja Empty text (brak wyników) umożliwia wyświetlenie odpowiedniego komunikatu w przypadku, gdy widok nie zwróci żadnych wyników. To wygodna funkcja, która staje się nieoceniona, gdy lista widoku jest pusta. Zamiast prezentować odwiedzającemu pustą stronę, możesz wyświetlić komunikat Przykro nam, nie znaleźliśmy wpisów o zbliżających się wydarzeniach, które spełniałyby podane kryteria. Dodaj teraz tekst o braku wyników do tworzonego widoku. Postępuj zgodnie ze wskazówkami,

które podałem w podrozdziale dotyczącym tworzenia nagłówka.

Pola Gdybyśmy, określając atrybuty parametru Row style (styl wiersza), wybrali opcję Field (pole), teraz mielibyśmy możliwość dodania do widoku wybranych pól. Ponieważ jednak zdecydowaliśmy się na opcję Node (segment), ta grupa ustawień nie jest nam potrzebna. Wrócę do niej jeszcze, gdy w dalszej części rozdziału będziemy zmieniać kształt listy widoku. 148

TWORZENIE PIERWSZEGO WIDOKU

W ten sposób zakończyliśmy pracę z drugą kolumną ustawień widoku, choć tym razem było to wyjątkowo proste. Pora zapisać wyniki pracy i zająć się ustawieniami z ostatniej kolumny.

Zależności Funkcja Relationships (zależności) pozwala łączyć powiązane ze sobą informacje. Załóżmy, że każdy z pracowników Twojej firmy jest reprezentowany w serwisie za pomocą osobnego wpisu. Każdy z wpisów zawiera odwołanie do miejsca pracy pracownika. Dane o adresie placówki zamiejscowej są przechowywane we wpisach typu Lokalizacja, a Ty chcesz utworzyć teraz listę pracowników oraz adresów ich miejsc zatrudnienia. Ponieważ wpisy typu Pracownik nie zawierają adresu, musisz znaleźć jakąś metodę połączenia tych dwóch typów wpisów, by móc umieścić nazwisko pracownika i adres w jednym widoku. Odpowiednim narzędziem jest właśnie funkcja Relationships (zależności). Szczegółowe informacje znajdziesz na stronie www.drupal.org/project/views. W naszym przykładzie nie pojawiają się żadne zależności, więc pominiemy to ustawienie.

Argumenty Funkcja Arguments (argumenty) to narzędzie pozwalające przekazywać wartości parametrów do widoku, zazwyczaj poprzez umieszczenie ich w adresie URL. Przykładem wykorzystania tej funkcji jest ograniczenie liczby wyników (wydarzeń) wyświetlanych na liście dla konkretnego miejsca.

Kryteria sortowania Grupa opcji Sort criteria (kryteria sortowania) to jedno z najpotężniejszych narzędzi modułu Views. Pozwala posortować zawartość widoku przed wyświetleniem go na ekranie. Opcje sortowania dopuszczają brak segregowania zawartości, sortowanie według jednego pola lub według kilku pól. W omawianym przykładzie wprowadzimy sortowanie według tytułów wpisów, w rosnącym porządku. Aby określić kryteria sortowania, kliknij znak (+) umieszczony przy etykiecie grupy. Na ekranie pojawi się formularz przedstawiony na rysunku 11.11.

Rysunek 11.11. Ustawienia opcji sortowania

149

ROZDZIAŁ 11. „ MODUŁ VIEWS

W formularzu pojawi się spis wszystkich pól występujących w każdym z rodzajów wpisów zdefiniowanych w witrynie. To długa lista, która z czasem będzie się jeszcze powiększać, gdyż każdy nowoutworzony rodzaj zawartości doda do niej kolejne elementy. Moduł Views pozwala filtrować jej zawartość tak, by w danej chwili na ekranie pojawiały się pola należące do wybranej grupy. Najważniejsze opcje filtrowania to (), pozwalająca wypisać wszystkie pola, i Node (segment), ograniczająca listę do pól podstawowego rodzaju wpisu systemu Drupal. Ponieważ pole tytułu należy do rdzenia systemu, nadamy liście filtr Node (segment). Teraz możesz odszukać na liście pozycję Node:Title (segment: tytuł). Zaznacz ją i kliknij przycisk Add (dodaj). Moduł Views wyświetli kolejny ekran formularza, na którym określisz porządek sortowania (rysunek 11.12).

Rysunek 11.12. Określanie porządku sortowania Chcemy żeby elementy listy były sortowane alfabetycznie w rosnącym porządku, dlatego pozostawimy domyślną opcję, Sort ascending (sortuj rosnąco), i zakończymy pracę z kryteriami sortowania kliknięciem przycisku Update (aktualizuj).

Filtry Ostatni zestaw opcji, Filters (filtry), pozwala określić filtry, dzięki którym możesz ograniczać liczbę elementów listy widoku. Rolę filtra może spełniać dowolne pole rodzaju zawartości, również pola rdzenia systemu Drupal przynależne każdemu segmentowi. W każdej chwili możesz przefiltrować zawartość listy, ograniczając ją do wpisów wybranego autora (na przykład: pokaż mi wyłącznie artykuły napisane przez Jaśka), wpisów opublikowanych wybranego dnia (pokaż wyłącznie wpisy opublikowane w zeszłym tygodniu), wpisów opisanych konkretnym terminem taksonomii (tylko artykuły o fotografii cyfrowej), wpisów konkretnego rodzaju (tylko Wydarzenia) czy też wybranych za pomocą dowolnej kombinacji pól dostępnych dla wybranego rodzaju zawartości. W naszym przykładzie zażądamy filtrowania wyników według ich rodzaju, ponieważ interesują nas wyłącznie wpisy typu Wydarzenie. Aby przypisać taki filtr, kliknij znak (+) umieszczony obok etykiety Filters (filtry). Na dole formularza pojawi się lista przedstawiona na rysunku 11.11. Aby zawęzić listę wyświetlanych opcji, wybierz z listy rozwijanej Groups (grupy) pozycję Node (segment), ponieważ interesuje nas filtrowanie zawartości zgodnie z kluczem Node: Type (segment: typ). Po odświeżeniu zawartości strony odszukaj na liście pozycję Node: Type (segment: typ) i zaznacz to pole wyboru. Kliknij przycisk Add (dodaj), by przejść do części formularza przedstawionej na rysunku 11.13.

Rysunek 11.13. Filtrowanie według rodzaju zawartości

150

TWORZENIE PIERWSZEGO WIDOKU

Opcje tego fragmentu formularza umożliwiają ograniczenie elementów listy widoku do wpisów typu Wydarzenie. Aby osiągnąć taki efekt, musisz tylko zaznaczyć opcję Is one of (jest jednym z) oraz pole wyboru Wydarzenie znajdujące się w drugiej kolumnie. Potem kliknij przycisk Update (aktualizuj). Gdybyś chciał dać możliwość filtrowania zawartości odwiedzającym stronę, musiałbyś skorzystać z opcji Expose (ujawnij). W przypadku zaznaczenia większej liczby rodzajów segmentów, odwiedzający mógłby zadecydować, które z rodzajów wpisów mają znaleźć się na liście. Ponieważ chcemy wyświetlać wyłącznie wpisy z rodzaju Wydarzenie, nie musimy udostępniać filtrów odwiedzającym. Jeżeli jeszcze tego nie zrobiłeś, zaznacz teraz pole wyboru Wydarzenie i kliknij przycisk Update (aktualizuj). W tej chwili formularz konfiguracji widoku powinien wyglądać mniej więcej tak, jak przedstawiłem to na rysunku 11.14. Drobne różnice zależą od opcji, które wybrałeś w czasie konfiguracji.

Rysunek 11.14. Skonfigurowany, gotowy do testowania widok Zanim przejdziesz do dalszej części ćwiczenia, kliknij przycisk Save (zachowaj).

Podgląd Być może zwróciłeś już uwagę na znajdującą się na dole strony sekcję Live Preview (podgląd na żywo). Funkcja ta pozwala szybko sprawdzić poprawność działania utworzonego właśnie widoku. Dzięki niej zorientujesz się, czy lista zawiera właściwe elementy i czy są one ułożone w odpowiedniej kolejności. Kliknij przycisk Preview (podgląd) i zobacz, jak prezentuje się zdefiniowany widok (rysunek 11.15).

Wyświetlanie widoku w postaci strony Widok może pojawić się na stronie w postaci bloku, może występować w postaci wpisu, ale może też stanowić odrębną stronę serwisu, identyfikowaną własnym adresem URL (jednemu adresowi URL może być przypisany tylko jeden widok). Aby wyświetlić listę widoku w postaci osobnej strony, będziemy musieli zdefiniować rodzaj wyświetlania widoku. Powróć na główną stronę konfiguracji utworzonego przed chwilą widoku (jeśli znajdujesz się w innej części panelu administracyjnego systemu Drupal, kliknij odnośnik Structure (budowa), a następnie posłuż się odnośnikiem Views). Na stronie Views (widoki)

151

ROZDZIAŁ 11. „ MODUŁ VIEWS

Rysunek 11.15. Podgląd widoku znajdziesz listę wszystkich dostępnych w serwisie widoków (rysunek 11.16). Znajdziesz na niej domyślne widoki, tworzone automatycznie w chwili instalowania modułu Views, oraz wszystkie te, które zdefiniowali administratorzy serwisu.

Rysunek 11.16. Lista widoków

152

TWORZENIE PIERWSZEGO WIDOKU

Odszukaj na liście widok, który chcesz zaktualizować, i kliknij odnośnik Edit (edytuj). Nasz widok nazywa się Nadchodzące wydarzenia. Po użyciu odnośnika Edit (edytuj) w oknie przeglądarki pojawi się strona konfiguracji widoku. Naszym celem jest określenie nowego sposobu wyświetlania widoku, konkretnie umieszczenie listy na osobnej stronie serwisu, ponieważ tylko takie rozwiązanie pozwoli nam przypisać widokowi adres URL i wyświetlić zawartość widoku w pełnej postaci. Przed rozpoczęciem dodawania nowego rodzaju wyświetlania listy upewnij się, że na rozwijanej liście umieszczonej w najbardziej skrajnej lewej kolumnie formularza wskazałeś opcję Page (strona). Później kliknij przycisk Add display (dodaj podgląd). Moduł Views odświeży zawartość formularza, uwzględniając na nim opcje, które są związane z wyświetlaniem listy widoku na osobnej stronie serwisu (rysunek 11.17).

Rysunek 11.17. Dodawanie podglądu widoku na stronie W formularzu konfiguracji widoku pojawiły się dwie istotne zmiany. Po pierwsze, w kolumnie po lewej stronie pojawił się odnośnik podglądu strony. Po drugie, mamy teraz do dyspozycji nowy zestaw opcji konfiguracji Page settings (ustawienia strony), który wyświetla się na dole drugiej kolumny. Mamy wreszcie możliwość określenia adresu URL dla wybranego widoku. Tutaj też znajduje się opcja pozwalająca dodać go do jednego z menu na stronie. Aby nadać stronie adres URL, kliknij odnośnik None (nic) znajdujący się obok etykiety Path (ścieżka). Na dole formularza pojawi się pole, w którym możesz podać adres URL (rysunek 11.18). Wprowadzenie tego adresu sprawi, że lista widoku będzie od tej pory pojawiać się na stronie w postaci pełnego wpisu. W naszym przypadku adres URL przyjmie postać http://localhost/drupal-7.0/nadchodzace-wydarzenia. Warto wyrobić sobie nawyk wprowadzania do adresów URL słów związanych z zawartością, oddzielonych od siebie znakami dywizu (-). W omawianym przykładzie udało się użyć adresu, który będzie zrozumiały zarówno dla użytkowników, jak i dla wyszukiwarek. Po podaniu ścieżki URL kliknij przycisk Update (aktualizuj). Druga z opcji tej części formularza pozwala przypisać odnośnik widoku do wybranego menu. Aby przeprowadzić tę operację, kliknij odnośnik None (nic) znajdujący się obok etykiety Menu (menu). W otwartym właśnie fragmencie formularza możesz określić wygląd menu (menu normalne lub w zakładkach) oraz wskazać to, w którym ma pojawić się widok. W tym przykładzie nie będziemy korzystać z opcji umieszczania widoku w menu.

153

ROZDZIAŁ 11. „ MODUŁ VIEWS

Rysunek 11.18. Określanie adresu URL Pamiętaj, aby przed przejściem do dalszych działań zapisać gotowy widok! Teraz jesteśmy już gotowi do przeprowadzenia testu. Wpisz w przeglądarce adres http://localhost/drupal-7.0/nadchodzace-wydarzenia i naciśnij klawisz Enter. W oknie przeglądarki powinna pojawić się strona podobna do tej, którą przedstawiłem na rysunku 11.19.

Rysunek 11.19. Widok w pełnym podglądzie

Tworzenie widoków w tabeli W omawianych dotąd przypadkach wszystkie nasze widoki były umieszczane w systemie w postaci zwykłych segmentów, niemniej nie wolno wykluczać, że będziesz kiedyś potrzebować widoku zapisanego w postaci tabeli. Za chwilę zaktualizujemy listę nadchodzących wydarzeń, zmieniając ustawienia jej wyświetlania ze zwykłego wpisu na tabelę. Główne korzyści z wyświetlenia widoku w postaci tabeli to pełna kontrola nad wyglądem poszczególnych komórek tabeli (co oznacza, że możesz formatować osobno każdą z nich, a nie zmieniać wygląd całego wpisu) oraz możliwość wykorzystania funkcji sortowania zawartości tabeli po kliknięciu tytułu kolumny. Rysunek 11.20 pokazuje, w jaki sposób wykorzystałem wyświetlanie widoku w tabeli w jednym z moich projektów. 154

TWORZENIE WIDOKÓW W TABELI

Rysunek 11.20. Przykład wykorzystania wyświetlania widoku w tabeli Widok utworzony w tym przykładzie przyjmuje postać tabeli, w której umieszczono nagłówki wybranych wpisów (kolumna po lewej stronie) oraz listę wysłanych na serwer plików (kolumna po prawej). Lewa kolumna to spis kilku wpisów własnych rodzajów zawartości (segmentów can-do, w których uczeń umieszcza pliki z wykonanymi zadaniami, dzięki czemu może uzyskać zaliczenie). To mocno rozbudowana wersja widoku w tabeli, ponieważ za jego pomocą uczeń może przeprowadzić aktualizację kilku segmentów serwisu jednocześnie. W tym celu musi zaznaczyć pola wyboru umieszczone obok etykiet pozycji listy i wskazać odpowiednie daty w rozwijanym kalendarzu. Jednak przede wszystkim jest to bardzo nietypowe użycie tabeli widoku, wykorzystujące mechanizm wyświetlania danych w wierszach i kolumnach. Aby zmienić charakter listy nadchodzących wydarzeń, otwórz ponownie formularz konfiguracji widoku, z którego korzystałeś podczas wykonywania poprzednich ćwiczeń (kliknij odnośnik Structure (budowa), a następnie użyj odnośnika Views (widoki) i edytuj widok Nadchodzące wydarzenia). W celu wyświetlenia widoku na stronie w postaci tabeli musimy wprowadzić dwie istotne zmiany. Przede wszystkim należy zmienić ustawienie parametru Style (styl) z wartości Unformatted (niesformatowany) na Table (tabela). Następnie będziesz musiał wybrać pola, jakie mają pojawić się w tabeli.

155

ROZDZIAŁ 11. „ MODUŁ VIEWS

Zacznij zatem od kliknięcia odnośnika Unformatted (niesformatowany) i wskazania na liście opcji pozycji Table (tabela). Opisane ustawienia przedstawiłem na rysunku 11.21.

Rysunek 11.21. Zmiana stylu formatowania na tabelę Po zmianie wartości formatowania stylu kliknij przycisk Update (aktualizuj). Teraz przejdziemy do etapu dodawania pól do naszej tabeli. W tym celu kliknij ikonę oznaczoną znakiem plus (+), widoczną w drugiej kolumnie obok etykiety Fields (pola). Na ekranie pojawi się zestaw opcji przedstawiony na rysunku 11.22.

Rysunek 11.22. Wybieranie pól tabeli Przewiń listę w dół i wybierz z niej pola, które chcesz udostępnić osobom odwiedzającym stronę. Przypuszczalnie znajdą się wśród nich nazwa wydarzenia (pokazana na zrzucie jako Node: Title (segment: tytuł)), data rozpoczęcia wydarzenia, data zakończenia wydarzenia i miejsce, w którym ma się ono odbywać. Zaznacz pola wyboru przy żądanych polach i kliknij przycisk Add (dodaj). Następnie system wyświetli szereg formularzy konfiguracyjnych, w których będziesz poproszony o określenie atrybutów wybranych pól. Przykładowy formularz został przedstawiony na rysunku 11.23. W większości przypadków najrozsądniej jest pozostawić wartości domyślne1 i przejść do opcji konfiguracji następnego pola. Jedynym wyjątkiem od tej reguły jest opcja przekształcająca tytuł wpisu w odnośnik prowadzący do jego pełnej wersji. Aby osiągnąć taki efekt, zaznacz w formularzu konfiguracyjnym pola Title (tytuł) opcję Link this field to its node (odnieś to pole do segmentu). Po wprowadzeniu niezbędnych ustawień kliknij przycisk Update, powtarzając tę operację dla każdego z wybranych pól. Na ekranie powinien pojawić się ponownie ekran konfiguracji widoku.

1

Warto zmienić opisy pól, podając je w polu Label (etykieta) — przyp. tłum.

156

TWORZENIE WIDOKÓW W TABELI

Rysunek 11.23. Konfiguracja atrybutów pola W niektórych przypadkach warto udostępnić użytkownikom możliwość sortowania zawartości tabeli według zawartości wybranej kolumny. Zazwyczaj sortowanie rosnące następuje po kliknięciu nagłówka wybranej kolumny. Ponowne kliknięcie spowoduje posortowanie w odwrotnym porządku. Aby udostępnić odwiedzającym stronę to narzędzie i określić, które z kolumn będą oferowały możliwość sortowania, kliknij ikonę trybu umieszczoną obok etykiety Style: Table (styl: tabela). W formularzu konfiguracyjnym otworzy się fragment interfejsu przypominający wyglądem arkusz kalkulacyjny. Zaznaczając odpowiednie pola kolumny Sortable (sortowalny), wskażesz te kolumny, które będą oferować omawianą funkcję. Spójrz na rysunek 11.24. Poza tym istnieje możliwość grupowania wartości tabeli zgodnie z danymi zawartymi we wskazanej kolumnie (pole Grouping filed). Dobrym przykładem byłoby stworzenie grupy wszystkich wydarzeń odbywających się w jednym miejscu. W ten sposób każde z wprowadzonych do bazy miejsc miałoby własną tabelę na stronie widoku. To narzędzie dające ogromne możliwości, lecz bardzo często niedoceniane! Po kliknięciu przycisku Update (aktualizuj) nie zapomnij zapisać wprowadzonych zmian, klikając przycisk Save (zachowaj). Jesteś gotowy do przetestowania widoku i sprawdzenia, jak prezentuje się przygotowana w ten sposób tabela. Wpisz w pasku adresowym przeglądarki adres URL utworzonego widoku i kliknij przycisk Enter.

157

ROZDZIAŁ 11. „ MODUŁ VIEWS

Rysunek 11.24. Dodawanie funkcji sortowania zawartości tabeli

Tworzenie kanałów RSS za pomocą widoków Moduł Views oferuje jeszcze jedną niezwykle poręczną funkcję, jaką jest możliwość generowania informacji umieszczanej w dokumentach RSS na podstawie treści publikowanych w serwisie. Skrót RSS rozwija się do postaci Really Simple Syndication (naprawdę proste udostępnianie). Jest to mechanizm umożliwiający odczytywanie zawartości strony w specjalnych czytnikach oferowanych między innymi przez MyYahoo i iGoogle. Każdy z definiowanych widoków może pełnić jednocześnie rolę kanału RSS. Wystarczy, że w skrajnie lewej kolumnie formularza dodasz zakładkę Feed (kanał) i klikniesz przycisk Add preview (dodaj podgląd). Teraz kliknij odnośnik None (nic), umieszczony obok etykiety Path (ścieżka) w grupie Feed settings (ustawienia kanału) w drugiej kolumnie od lewej, aby otworzyć formularz konfiguracji kanału RSS. Spójrz na rysunek 11.25.

Rysunek 11.25. Określanie adresu URL dla kanału RSS

158

PODSUMOWANIE

Opcje konfiguracji kanału nie różnią się niczym od opcji konfiguracji strony. Tu również musisz podać adres URL strony, który użytkownik wprowadzi następnie do swojego czytnika kanałów RSS. W naszym przykładzie utworzymy nowy adres URL http://localhost/Drupal-7.0/feeds/nadchodzace-wydarzenia. Dodanie wyrażenia feeds przed nazwą strony nadchodzace-wydarzenia pozwoli zachować porządek w strukturze adresów URL. Wprowadzenie takiego podziału jest wyłącznie kwestią nawyku, Ty możesz stworzyć dowolną inną strukturę adresów. Po wprowadzeniu adresu URL kliknij przycisk Update (aktualizuj) i nie zapomnij zachować zmian (kliknij przycisk Save (zachowaj)) w widoku. Jeśli wykonałeś wszystkie kroki ćwiczenia, możesz wpisać teraz w przeglądarce adres http://localhost/Drupal-7.0/feeds/nadchodzace-wydarzenia i sprawdzić, czy moduł Views wygeneruje standardowy kanał RSS, za pomocą którego użytkownicy będą mogli wydobyć treść wpisów w serwisie, by umieścić ją na własnych stronach lub dodać do czytnika kanałów.

Podsumowanie Choć rozdział ten w całości poświęciłem zagadnieniu tworzenia widoków w systemie Drupal, jego treść jest zaledwie wstępem do tego obszernego tematu. Moduł Views jest jednym z najbardziej niezbędnych narzędzi każdego twórcy stron w Drupalu. O rozległości tego tematu najlepiej świadczy fakt, że do samego modułu Views stworzono kilka modułów dodatkowych. Zachęcam Cię do odwiedzenia strony www.drupal.org/project/modules. Wybierz z listy kategorii opcję Views i przejrzyj wyniki wyszukiwania. W chwili pisania tej książki utworzono 299 modułów dodatkowych do samego modułu Views! Zapoznaj się z nimi (pamiętaj przy tym, by sprawdzić, które z nich są już dostosowane do wersji 7 systemu Drupal). Możliwości niektórych z tych dodatków są naprawdę niesamowite. Ostatnim ze „świętej trójcy” modułów dodatkowych jest moduł Panels. Jeśli już uważasz, że system Drupal jest doskonałym narzędziem pracy, Twój zachwyt wzrośnie niepomiernie, gdy zobaczysz, co można zdziałać, mając do dyspozycji moduły Views i Panels naraz.

159

ROZDZIAŁ 11. „ MODUŁ VIEWS

160

ROZDZIAŁ 12 „„„

Moduł Panels

Trzecim ze „świętej trójcy” obowiązkowych modułów Drupala jest moduł Panels. Być może zwróciłeś uwagę, że do tej pory układ projektowanych przez nas stron ograniczał się do operowania w regionach zdefiniowanych przez autora używanego motywu graficznego. Spójrz na schemat motywu Garland przedstawiony na rysunku 12.1. Znajdziesz w nim trzy podstawowe sekcje, w których możesz umieszczać elementy strony — Left sidebar (lewy panel boczny), Right sidebar (prawy panel boczny) i środkowy obszar Content (obszar główny). (Pomijam obszary nagłówka, stopki, wyróżnienia i pomocy, ponieważ zazwyczaj nie umieszcza się w nich generowanej dynamicznie treści, choć oczywiście formalnie nic nie stoi na przeszkodzie, by to uczynić).

Rysunek 12.1. Układ obszarów motywu Garland

ROZDZIAŁ 12. „ MODUŁ PANELS

Podstawowym obszarem wykorzystywanym w motywie tego rodzaju jest obszar zawartości, zajmujący środkową część strony. Jest to w zasadzie zwykłe pole. Choć układ ten sprawdza się w zasadzie dla większości stron serwisu, to niewątpliwie prędzej czy później będziesz chciał podzielić duże pole na mniejsze obszary. Poniżej prezentuję dwa przykłady różnych projektów stron, które powstały dzięki właściwemu wykorzystaniu modułu Panels. Pierwszy z przykładów (rysunek 12.2) oferuje administratorowi siedem oddzielnych pól zwanych panel panes (płaszczyzny paneli, co jest oficjalną nazwą małych obszarów, o których wspominałem). Panele są rozmieszczone w sześciu osobnych wierszach. • Górny wiersz zawiera jedną płaszczyznę panelu, w której umieszczone są zakładki tematyczne, prowadzące do działów książek, filmów i muzyki. • Drugi od góry wiersz zawiera również jedną płaszczyznę, w której znajduje się ruchoma oferta polecanych pozycji. • Trzeci wiersz to dwie płaszczyzny — pierwsza z nich nosi nazwę Featured (proponujemy) i przedstawia propozycję lektury wybranej z biblioteki, druga, umieszczona z prawej strony, prezentuje wybraną historię. • Czwarty wiersz to pasek wiadomości. • Piąty wiersz zawiera kolejną ruchomą prezentację książek. Tym razem są to pozycje polecane przez personel biblioteki. • Szósty wiersz zawiera narzędzie wyboru języka. Drugi przykład (rysunek 12.3) przedstawia stronę o mniej skomplikowanym układzie. Tutaj panele zostały wykorzystane w bardziej schematyczny sposób. Cały obszar treści został podzielony na kilka płaszczyzn paneli. Tutaj obszar zawartości strony uległ podziałowi na dwa wiersze, z których w każdym znajdują się trzy kolumny. W obydwu przypadkach dodawanie zawartości do wybranych paneli jest niezmiernie proste. Tworząc te strony, definiowałem zawartość poszczególnych paneli za pomocą modułu Views, dzięki czemu mogłem dokładnie określić, ile elementów ma znaleźć się na każdej z list i w jaki sposób mają być wyświetlane. Wykorzystanie taksonomii pozwala autorowi zawartości wskazywać terminy opisujące treść poszczególnych paneli, dzięki czemu tekst pojawia się automatycznie we właściwym miejscu strony. Autor strony musi jedynie utworzyć treść i wybrać odpowiedni termin taksonomii z listy. W dalszej części rozdziału opiszę dokładniej, na czym polega to rozwiązanie.

Dostępne układy paneli Moduł Panels pozwala tworzyć strony zgodne z jednym z ośmiu standardowych układów paneli lub zdefiniować własny układ, bazujący na układzie elastycznym. Rysunek 12.4 przedstawia wszystkie dostępne układy paneli. Opcja Flexible (elastyczny) pozwala zbudować własny układ, natomiast pozostałe osiem propozycji to zdefiniowane odgórnie gotowe szablony. Z tego rozdziału dowiesz się, jak tworzyć strony bazujące na obydwu tych rozwiązaniach.

To strona, strona czy może strona? Zanim zajmiemy się tworzeniem pierwszej strony wykorzystującej panele, czuję się w obowiązku rozwiązać pewną niejasną kwestię nazewnictwa. Natychmiast po instalacji otrzymujesz możliwość dodawania treści do serwisu w postaci strony (Basic page). To właśnie ten rodzaj zawartości posłużył

162

TO STRONA, STRONA CZY MOŻE STRONA?

Rysunek 12.2. Strona zbudowana dzięki wykorzystaniu paneli nam w przeszłości do tworzenia stron. To, co za chwilę zbudujesz w module Panels, jest także stroną, lecz wykorzystującą panele. Niestety, to jeszcze nie wszystko. Sprawa komplikuje się, ponieważ możesz przypisać zawartość wpisu, utworzonego na podstawie rodzaju zawartości Page (strona), do strony budowanej za pomocą modułu Panels. Czujesz się wystarczająco skołowany? Postaram się ułatwić

163

ROZDZIAŁ 12. „ MODUŁ PANELS

Rysunek 12.3. Prosty dwuwierszowy, trzykolumnowy układ paneli nieco odróżnianie tych dwóch szablonów: pisząc o stronie tworzonej w module Panel, będę zawsze posługiwać się określeniem „strona panelowa”, natomiast odwołując się do zawartości zwykłej strony, będę mówić o „wpisach” lub „segmentach”.

164

TWORZENIE STRONY PANELOWEJ

Rysunek 12.4. Układy paneli

Tworzenie strony panelowej Zanim przystąpisz do budowania strony, powinieneś zastanowić się, co chcesz na niej umieścić i jak rozmieścić planowaną treść na dostępnej przestrzeni w oknie przeglądarki. Spójrz na rysunek 12.4 i zdecyduj, czy któryś z gotowych układów spełnia Twoje oczekiwania. Jeśli żaden z nich nie pozwoli Ci osiągnąć zaplanowanych efektów, nie pozostanie Ci nic innego, jak zbudować własny układ paneli, korzystając z szablonu bazowego Flexible (elastyczny). Załóżmy teraz, dla celów demonstracyjnych, że masz zbudować stronę, na której zawartość będzie rozmieszczona w trzech wierszach. Pierwszy z nich będzie stanowić pojedyncza kolumna, w drugim znajdą się dwie kolumny, a w trzecim znów pojawi się tylko jedna kolumna. Mógłbym oczywiście wskazać dowolny inny z gotowych układów paneli, ale ponieważ musimy podjąć jakąś decyzję, przyjmijmy, że właśnie ten układ najlepiej nada się do naszych celów. Zanim będziesz mógł przystąpić do pracy nad stroną panelową, musisz przygotować sobie środowisko pracy. Zainstaluj moduły Chaos Tools (http://drupal.org/project/ctools) oraz Panels (http://drupal.org/projects/panels; przeprowadzenie instalacji nie będzie możliwe, jeśli wcześniej nie zainstalujesz wspomnianego wcześniej modułu Ctools). Instrukcje przeprowadzania procesu instalacji modułów znajdziesz w rozdziale 8. — instalowanie modułów Ctools i Panels nie różni się niczym od wykonywanych wcześniej działań tego typu. Po zainstalowaniu modułów włącz je. Moim zdaniem warto włączyć wszystkie elementy składowe modułu Panels (czyli Mini panels, Panel nodes i Panel pages), ponieważ wszystkie one są niezwykle przydatne, gdy pracujesz nad witryną wykorzystującą panele. Po zainstalowaniu modułu Panels kliknij odnośnik Structure (budowa) i otwórz stronę paneli, klikając odnośnik Panels (panele). Ponieważ chcemy dodać do serwisu nową stronę panelową, wybierz teraz opcję Panel page (strona panelowa). Na stronie przedstawionej na rysunku 12.5 wprowadź następujące informacje: • W polu Administrative title (tytuł w panelu administracyjnym) wprowadź tekst Strona panelowa — O nas. Etykieta ta będzie pojawiać się wyłącznie w panelu administracyjnym i żaden z odwiedzających stronę nie będzie jej widzieć.

165

ROZDZIAŁ 12. „ MODUŁ PANELS

Rysunek 12.5. Tworzenie nowej strony panelowej • W polu Machine name (nazwa maszynowa) wprowadź wyrażenie str_panelowa_o_nas. To nazwa, za pomocą której system będzie odwoływać się do danej strony panelowej. Nadając ją, możesz używać wyłącznie podstawowych liter alfabetu łacińskiego, cyfr i podkreśleń. Nazwa musi być niepowtarzalna. • W polu Administrative description (opis w panelu administracyjnym) wprowadź krótki opis zastosowania strony. Będzie on widoczny wyłącznie dla administratorów serwisu. Przykładowo, wpisz następujący tekst: Strona panelowa, na podstawie której powstanie strona "O nas" serwisu. • W polu Path (ścieżka dostępu) podaj adres URL, który ma prowadzić na stronę. Adres ten może w przyszłości stać się częścią menu lub pojawić się na którejś ze stron serwisu w postaci odnośnika. Wpisz tam wyrażenie o-nas. • Na liście Variant (rodzaj) wybierz pozycję Panel (panel). • Grupa opcji Optional features (dodatkowe ustawienia) służy do umieszczenia w formularzu szablonu strony parametrów określających prawa dostępu do strony (Access control), umożliwiających dodanie jej do menu (Visible menu item), określających zasady wyboru (Selection rules) oraz zawartość (Contexts). Dodawanie zasad wyboru i zawartości wymaga nieco więcej wiedzy. Pewne informacje na ten temat znajdziesz na stronie http://drupal.org/project/panels. W omawianym przykładzie pozostawię te opcje niezaznaczone.

166

TWORZENIE STRONY PANELOWEJ

Gdy klikniesz przycisk Continue (kontynuuj), na ekranie pojawi się strona przedstawiona na rysunku 12.6. Możesz na niej wskazać układ paneli na stronie serwisu. W naszym przykładzie będzie to opcja Two column stacked (dwie kolumny sąsiadująco). W tym celu wybierz z listy Category (kategoria) pozycję Columns: 2 (kolumny: 2), a następnie zaznacz opcję wyboru przy odpowiednim schemacie.

Rysunek 12.6. Strona wyboru układu paneli Na następnej stronie pojawi się schemat budowy strony panelowej, w którym możesz przypisywać zawartość do poszczególnych paneli. Spójrz na rysunek 12.7. Widać na nim duży panel górny, biegnący przez całą szerokość strony, dwie kolumny w drugim wierszu i znów szeroki, pojedynczy panel na dole strony. Zanim przejdziesz do dalszego etapu, kliknij przycisk Finish (zakończ), aby zapisać dotychczasowe efekty pracy. Wtedy na ekranie pojawi się główna strona konfiguracyjna strony panelowej (przedstawiona właśnie na rysunku 12.7). W polu Title (tytuł) wpisz wyrażenie O nas, a następnie kliknij Update and save (zaktualizuj i zachowaj).

Rysunek 12.7. Strona panelowa gotowa do dodawania treści

167

ROZDZIAŁ 12. „ MODUŁ PANELS

W pierwszym etapie ćwiczenia utworzymy nowy segment, do którego dodamy gotowe komponenty rdzenia systemu Drupal. Aby dodać nową stronę, wpisz w nowym oknie lub nowej zakładce adres URL http://localhost/node/add/page (zastąp wyrażenie „localhost” odpowiednią nazwą domeny, jeśli nie instalowałeś Drupala na komputerze osobistym). Podaj adres i naciśnij przycisk Enter. Wprowadź tytuł strony i wpisz treść. Formularz tworzenia nowej strony powinien wyglądać tak, jak na rysunku 12.8, oczywiście z danymi, jakie wprowadzisz.

Rysunek 12.8. Tworzenie segmentu, który dodasz do strony panelowej Kliknij przycisk Save (zachowaj), aby zapisać nowy segment. Żeby rozpocząć proces przypisywania zawartości do poszczególnych paneli — górnego (Top), lewego (Left side), prawego (Right side) i dolnego (Bottom) — kliknij ikonę kółka zębatego umieszczoną w lewym rogu każdego z okien panelu. Rozwiniesz w ten sposób menu kontekstowe, pozwalające przypisać zawartość do panelu lub zmienić jego styl. Ponieważ chcemy dodać do panelu zawartość, kliknij opcję Assign content (dodaj treść). Menu przedstawiłem na rysunku 12.9.

Rysunek 12.9. Po kliknięciu ikony trybu na ekranie pojawia się menu kontekstowe 168

TWORZENIE STRONY PANELOWEJ

Na ekranie pojawi się okno Add content to Top (dodaj treść w górnym panelu), gdzie Top (góra) to nazwa wybranego panelu (rysunek 12.10).

Rysunek 12.10. Ekran dodawania zawartości Zanim przystąpimy do dodawania zawartości do panelu, omówię grupy dostępnych kategorii. Po lewej stronie ekranu Add content to Top (dodaj treść w górnym panelu), widocznej na rysunku 12.11, znajduje się menu kategorii. Kliknij pierwszy odnośnik, Activity (aktywność), aby zobaczyć listę dostępnych elementów.

Rysunek 12.11. Przypisywanie elementów do górnego panelu W pierwszej zakładce menu znajduje się element Recent comments (ostatnie odpowiedzi) pozwalający wyświetlić listę najnowszych odpowiedzi.

169

ROZDZIAŁ 12. „ MODUŁ PANELS

Następna zakładka to Miscellaneous (różne). Znajdziesz w niej elementy generujące listę skrótów (Shortcuts), okno logowania (User login) oraz listy najnowszych użytkowników (Who’s new) i zalogowanych użytkowników (Who’s online). Kliknij teraz zakładkę Node (segment). Znajdziesz tam listę elementów powiązanych z segmentami witryny, które możesz dodawać do wybranych paneli: • element Attached files (załączone pliki) pozwala umieścić w panelu listę załączonych plików, • element Comment form (formularz dodawania odpowiedzi) umieszcza w panelu nowy formularz dodawania komentarza, • element Node author (autor segmentu) dodaje informację o autorze bieżącego wpisu, • element Node body (treść segmentu) pozwala umieścić w panelu treść wybranego wpisu, • element Node comments (odpowiedzi segmentu) umieszcza w panelu odpowiedzi umieszczane pod wpisem, • element Node contents (zawartość segmentu) pozwala umieścić w panelu zawartość wymienionego segmentu, • element Node created date (data utworzenia segmentu) wstawia informację o utworzeniu wpisu, • element Node last updated date (data ostatniej aktualizacji) umieszcza w panelu datę ostatniej aktualizacji wpisu, • element Node links (odnośniki segmentu) pozwala dodać listę odnośników umieszczonych w danym wpisie, • element Node terms (terminy taksonomii) wypisuje listę terminów taksonomii segmentu, • element Node title (tytuł wpisu) umieszcza w panelu tytuł segmentu, • element Node type description (opis rodzaju segmentu) pozwala umieścić w panelu opis rodzaju segmentu. Następna w kolejności jest zakładka Page elements (elementy strony), w której znajdują się następujące pozycje: • Breadcrumb (pasek nawigacji) to lista odnośników pokazujących, w którym miejscu serwisu znajduje się odwiedzający. Jeśli osoba oglądająca witrynę kliknie odnośnik O nas na stronie głównej, w pasku nawigacji pojawi się tylko napis Strona główna; • Help (pomoc) wyświetla tekst pomocy powiązany z tym elementem strony, który oferuje taką opcję; • Mission (misja) wyświetla informację o misji firmy podaną na stronie konfiguracyjnej serwisu; • Page footer message (informacja ze stopki) to kolejna informacja podawana na stronie konfiguracyjnej motywu; • Page title (tytuł strony) wyświetla tytuł strony; • Site slogan (slogan) to również jedna z opcji konfiguracyjnych witryny; • Status messages (informacje o statusie) wyświetli wszystkie wiadomości generowane przez system i moduły dodatkowe w wyniku wykonywania konkretnych działań (na przykład zapisania aktualnej wersji wpisu); • Tabs (zadania lokalne) — za ich pomocą różne moduły dodają zadania lokalne do strony. W większości przypadków za wyświetlanie tych elementów odpowiada motyw graficzny witryny, a nie panele. Zanim zaczniesz umieszczać je na stronie, sprawdź, które z nich pojawiają się w motywie graficznym. Ostatnia zakładka menu to Widgets (dodatki). Po jej kliknięciu na stronie pojawia się lista następujących elementów:

170

TWORZENIE STRONY PANELOWEJ

• Advanced search form (szukanie zaawansowane) wyświetla formularz zaawansowanych opcji wyszukiwania; • Main menu (menu główne) wyświetla menu główne witryny; • Main page content (zawartość strony głównej) umieszcza w panelu zawartość strony głównej; • Management (zarządzanie) wyświetla odnośniki umieszczone w menu zarządzania; • Navigation (nawigacja) wyświetla menu nawigacyjne; • Powered by Drupal (stronę napędza Drupal) to dodatek wyświetlający informację o tym, że witrynę zbudowano w systemie Drupal; • Recent content (ostatnio dodane wpisy) wyświetla listę najnowszych wpisów na stronie; • Search form (formularz wyszukiwania) umieszcza w panelu pole wyszukiwania; • Syndicate (subskrybuj) to obejmujący całą witrynę kanał RSS; • System help (pomoc systemowa) wyświetla odnośniki do pomocy systemu Drupal; • User menu (menu użytkownika) umieszcza na stronie menu użytkownika. Pod zakładką Widgets (dodatki) znajdują się dwa odnośniki — Existing node (istniejący segment) oraz Add custom content (dodaj dowolny wpis). Pierwszy z nich pozwala umieścić w panelu istniejący wpis, a drugi pozwala utworzyć na bieżąco dowolny wpis. Kliknij odnośnik Existing node (istniejący segment), aby wstawić w panelu utworzoną wcześniej stronę. Po kliknięciu odnośnika w oknie przeglądarki pojawi się strona widoczna na rysunku 12.12.

Rysunek 12.12. Dodaj istniejący segment Aby umieścić na stronie wpis, który utworzyliśmy w poprzednim kroku ćwiczenia, wpisz w pierwszym polu formularza jego tytuł lub, jeśli go nie pamiętasz, fragment tytułu. Formularz wyświetli rozwijaną listę, na której znajdziesz wszystkie wpisy zawierające w tytułach podane słowa. To idealne rozwiązanie, gdy w Twoim serwisie znajduje się wiele wpisów. W naszym przykładzie strona nosi tytuł „O nas”, więc wpisz to wyrażenie w polu Enter the title or NID of a node (podaj tytuł wpisu lub jego numer NID). 171

ROZDZIAŁ 12. „ MODUŁ PANELS

(Jeśli znasz numer identyfikacyjny wpisu, możesz podać go zamiast tytułu, ale zazwyczaj łatwiej jest podać tytuł). Nie będziemy zmieniać pozostałych opcji, ponieważ nie chcemy zmieniać tytułu wpisu ani duplikować go. Chcemy natomiast, by wpis pojawiał się w formie skróconej i żeby można było go komentować. Gdy podasz już numer identyfikacyjny wpisu, możesz zapisać ustawienia kliknięciem przycisku Finish (zakończ). W ten sposób powrócisz do głównej strony konfiguracyjnej strony panelowej. Na rysunku 12.13 widać, że nowy segment został umieszczony w górnym panelu strony.

Rysunek 12.13. Strona „O nas” przypisana do górnego panelu strony Przygotuj stronę do końca, dodając zgodnie z tym samym schematem elementy do lewego, prawego i dolnego panelu. Kliknij ikonę trybu umieszczoną w oknie lewego panelu, następnie otwórz zakładkę Miscellaneous (różne) i wybierz z niej element Who’s new (nowi użytkownicy), nie zmieniaj tytułu, a na koniec zaakceptuj wybór, klikając przycisk Finish (zakończ). Powtórz te działania dla prawego panelu, umieszczając w nim element Who’s online (kto przegląda), potem przejdź do dolnego panelu i dodaj w nim element Powered by Drupal (witrynę napędza Drupal). Po umieszczeniu w panelach wszystkich elementów strona powinna wyglądać tak, jak przedstawia to rysunek 12.14. Możemy teraz zapisać stronę i przystąpić do testowania. Kliknij przycisk Update and save (zaktualizuj i zachowaj), aby zakończyć proces konfiguracji. Po zapisaniu sprawdź jej działanie. Otwórz w przeglądarce adres http://localhost/o-nas (jeśli nie uruchamiasz witryny na komputerze osobistym, zastąp wyrażenie „localhost” nazwą serwera). Sprawdź, czy efekt przypomina wyglądem stronę przedstawioną na rysunku 12.15. Gratuluję, właśnie zbudowałeś stronę panelową! To ćwiczenie pokazuje, jak łatwe może być budowanie naprawdę złożonych stron bez zapisania nawet jednej linii kodu i bez znajomości podstaw CSS czy HTML.

Zmienianie wyglądu istniejącej strony panelowej Zmiany są nieuchronne. Nie można zakładać, że raz zbudowana strona pozostanie w swojej postaci do końca jej istnienia. Przypuszczalnie w pewnym momencie będziesz musiał wprowadzić modyfikacje w układzie poszczególnych elementów czy wręcz dodać lub zmienić zawartość paneli. Aby przedstawić poszczególne etapy tego procesu, dokonam następujących zmian w przedstawionym właśnie projekcie:

172

TWORZENIE STRONY PANELOWEJ

Rysunek 12.14. Strona „O nas” i inne elementy dodane do strony panelowej

Rysunek 12.15. Ostateczna wersja strony „O nas” • wstawię drugi segment w górnym wierszu, umieszczając go pod już istniejącym; • w drugim wierszu dodam jedną kolumnę i rozmieszczę dodatki User login (formularz logowania), Who’s online (kto przegląda) i Who’s new (nowi użytkownicy) w kolumnach lewej, środkowej i prawej.

173

ROZDZIAŁ 12. „ MODUŁ PANELS

Żeby wprowadzić wymienione zmiany, musisz dokonać edycji zbudowanej wcześniej strony. Kliknij widoczny obok jej tytułu odnośnik Edit (edytuj), o ile masz otwartą stronę, którą chcesz edytować (jeżeli jest zamknięta, wpisz jej adres w pasku przeglądarki). Na ekranie powinna pojawić się strona konfiguracji paneli. Zanim przejdę do dodawania nowych elementów na stronie, zmienię nieco jej układ tak, by znalazło się w nim miejsce na formularz logowania na stronę. Aby zmienić układ paneli, otwórz zakładkę Panel layout (układ paneli) widoczną na stronie konfiguracji. W oknie przeglądarki pojawi się znany już ekran wyboru układu paneli (rysunek 12.6). Wybierz układ trójwierszowy z trzema kolumnami w środkowym wierszu (Three column 33/34/33 stacked). Po wskazaniu nowego układu paneli kliknij przycisk Continue (kontynuuj). W oknie przeglądarki pojawi się strona, na której będziesz mógł przenieść zawartość ze starego układu paneli do nowego (rysunek 12.16).

Rysunek 12.16. Przenoszenie zawartości ze starego układu paneli do nowego Zawartość górnego i dolnego panelu pozostawimy niezmienioną. Przeniesiemy za to element Who’s new (nowi użytkownicy) do środkowej kolumny. W tym celu chwyć pasek tytułowy elementu i przeciągnij całość do środkowej kolumny. Następnie dodaj w lewej kolumnie element User login (logowanie użytkownika), wykonując te same kroki, co w poprzedniej części ćwiczenia. Element logowania znajduje się w zakładce Miscellaneous (różne). Po określeniu położenia wszystkich elementów kliknij przycisk Update and save (zaktualizuj i zachowaj). Drugim celem, jaki postawiliśmy sobie w tym ćwiczeniu, jest dodanie nowego segmentu do górnego panelu strony. Zaraz przekonamy się, czy dobrze zapamiętałeś poprzednie kroki. Utwórz teraz nowy segment i przypisz go do górnego obszaru strony tak, by pojawił się pod umieszczonym tam poprzednio wpisem. W takim miejscu mogłyby pojawić się na przykład dane kontaktowe firmy (adres, numer telefonu i faksu). Nie zapomnij zaktualizować i zapisać układu paneli po wykonaniu tej operacji. W efekcie powinieneś uzyskać widok zbliżony do tego, który prezentuję na rysunku 12.17. Kliknij odnośnik Existing node (istniejący segment) i albo podaj tytuł wprowadzonego właśnie wpisu, albo wpisz jego identyfikator w pierwszym polu okna przedstawionego na rysunku 12.18. Przyjrzyj się 174

TWORZENIE STRONY PANELOWEJ

Rysunek 12.17. Nowe elementy w zmienionym układzie strony

Rysunek 12.18. Dodawanie istniejącego segmentu do panelu strony 175

ROZDZIAŁ 12. „ MODUŁ PANELS

uważnie tej ilustracji — podanie pierwszego słowa tytułu wpisu sprawia, że Drupal wyświetla listę wszystkich segmentów, w których tytułach pojawia się to wyrażenie. Kliknięciem wskaż właściwy wpis. Potem, pozostawiając inne parametry niezmienione, kliknij przycisk Finish (zakończ). Teraz na stronie konfiguracji paneli w górnym wierszu schematu zobaczysz obydwa dodane segmenty. Nowszy został umieszczony pod dodanym poprzednio. W ten sposób wypełniliśmy wszystkie postawione sobie zadania, więc kliknij ponownie przycisk Update (zaktualizuj), a następnie zapisz wyniki pracy, klikając przycisk Save (zachowaj). Gdy otworzysz stronę O nas w przeglądarce (http://localhost/o-nas), zobaczysz nowy wygląd strony (rysunek 12.19).

Rysunek 12.19. Nowa wersja strony O nas „ Uwaga: Aby umieszczony w lewym panelu formularz logowania pojawił się na stronie, musisz się z niej wylogować. W przeciwnym razie pozostanie on ukryty.

176

PRACA Z BAZOWYM SZABLONEM PANELI

Praca z bazowym szablonem paneli Oczywiście nie zawsze któryś z ośmiu układów paneli przygotowanych przez twórców modułu będzie odpowiadać Twoim potrzebom. Gdy będziesz chciał zbudować własny układ od zera, skorzystaj z opcji Flexible layout (układ elastyczny). Wtedy jedynym ograniczeniem będzie Twoja wyobraźnia. Aby zbudować stronę bazującą na układzie elastycznym, zastosuj się do pierwszych wskazówek z poprzedniego podrozdziału i utwórz nową stronę panelową (kliknij odnośnik Structure (budowa), następnie odnośnik Panels (panele) i Panel page (strona panelowa)). Tak jak poprzednio wypełnij pierwszy formularz budowania strony, podając w nim następujące dane: Towary i usługi (tytuł w panelu administracyjnym), towary_i_uslugi (nazwa maszynowa) oraz towary-i-uslugi jako adres URL. Kliknij przycisk Continue (kontynuuj), by przejść do strony wyboru układu paneli. Na ekranie pojawi się strona przedstawiona na rysunku 12.20.

Rysunek 12.20. Strona wyboru układu paneli Układ elastyczny pojawia się jako pierwsza, domyślna opcja. Nie zawiera żadnych paneli, a jedynie udostępnia Ci kanwę, na której możesz stworzyć własny układ kolumn i wierszy. Po wybraniu opcji Flexible (elastyczny) kliknij przycisk Continue (kontynuuj). Na ekranie pojawi się strona konfiguracji dowolnego układu paneli (rysunek 12.21).

Rysunek 12.21. Konfigurowanie swobodnego układu paneli

177

ROZDZIAŁ 12. „ MODUŁ PANELS

W tej chwili na stronie znajduje się tylko jeden panel o nazwie Center (środek). Aby podzielić go na kolumny i wiersze, kliknij przycisk Show layout designer (pokaż projektanta układu). W oknie przeglądarki pojawi się rozbudowany widok kanwy (rysunek 12.22).

Rysunek 12.22. Początki projektu swobodnego układu paneli Ta strona zawiera funkcje, dzięki którym będziesz mógł podzielić obszar kanwy na nowe regiony (na przykład dodać lewy i prawy panel do wiersza, w którym znajduje się środkowy panel), nowe wiersze i kolumny. Gdybyśmy chcieli dodać nowy obszar obok istniejącego już panelu środkowego, musielibyśmy skorzystać z odnośnika Row (wiersz) i rozwinąć kryjącą się pod nim listę opcji (rysunek 12.23).

Rysunek 12.23. Dodawanie nowego obszaru do istniejącego wiersza Dostępne opcje pozwalają dodać nowy obszar po prawej lub lewej stronie istniejącego panelu. Gdy wybierzesz dodanie obszaru po lewej stronie, na ekranie pojawi się formularz konfigurowania jego opcji (rysunek 12.24). Obszar otrzymał nazwę Left (lewy), natomiast jego szerokość została określona parametrem Fluid (płynna), co w praktyce oznacza, że kolumna będzie dostosowywać swój wymiar do zawartości. W efekcie schemat strony panelowej przyjmuje wygląd przedstawiony na rysunku 12.25. Możesz teraz dodawać kolejne obszary w tym wierszu, powiększyć układ o nowe wiersze i zmieniać ich wymiary tak długo, aż uzyskasz efekt, który Ci odpowiada. Gdy ustalisz już wygląd układu paneli, kliknij przycisk Hide layout designer (ukryj projektanta układu). Powrócisz w ten sposób do strony, na której możesz przypisać poszczególnym panelom wybraną zawartość w sposób, który wykorzystywaliśmy w poprzednich przykładach.

178

UMIESZCZANIE INNYCH ELEMENTÓW W PANELACH STRONY

Rysunek 12.24. Okno konfiguracji nowego obszaru

Rysunek 12.25. Nowy panel w schematycznym układzie strony

Umieszczanie innych elementów w panelach strony W panelach możesz umieszczać dowolne obiekty. Bardzo często trafiają do nich odpowiednio spreparowane widoki. Rozwiązanie to jest możliwe dzięki modułowi Chaos Toolset, który instalowaliśmy w poprzednim rozdziale. Po przeprowadzeniu instalacji i odpowiednim określeniu parametrów ustawień widoki będą pojawiać się na stronie we wskazanym panelu. Również inne moduły pozwalają dodawać nowe elementy do paneli, a poza tym sam możesz tworzyć własne komponenty dla wybranych obszarów strony panelowej. W tym celu skorzystaj z opcji Custom content (własna zawartość) znajdującej się pod odnośnikiem Existing node (istniejący segment).

179

ROZDZIAŁ 12. „ MODUŁ PANELS

Podsumowanie Większość serwisów budowanych w systemie Drupal nie mogłaby istnieć w swojej postaci, gdyby nie moduł dodatkowy Panels. Jest on jednym z tych modułów dodatkowych, które mają duże szanse trafić na Twoją prywatną listę „dodatków, które zawsze instaluję, zanim zacznę pracę nad nową witryną”. Teraz dysponujesz już wiedzą niezbędną, by rozpocząć podróż po ciekawym i niezwykłym świecie projektowania serwisów internetowych. Gdy umieścisz w swoim serwisie tyle interesujących stron, z pewnością odnotujesz wiele odwiedzin. Aby przygotować Cię na nieustający ruch na stronie, przedstawię Ci jeszcze zadania, jakie czekają Cię jako administratora strony, ale to już w następnym rozdziale.

180

ROZDZIAŁ 13 „„„

Praca nad motywem graficznym

Wybranie właściwego motywu graficznego dla projektowanego serwisu jest jednym z najpoważniejszych wyzwań, przed jakimi staniesz w czasie tego rodzaju pracy. Opracowywanie motywu graficznego wiąże się z określeniem ogólnego wyglądu witryny, podjęciem decyzji o rozmieszczeniu poszczególnych elementów, na przykład tytułu, na stronach. W tym rozdziale opiszę proces dostosowywania do własnych potrzeb wyglądu gotowego szablonu — zarówno w ogólnym ujęciu, jak i w szczegółach dotyczących wszystkich jego elementów. To doskonała okazja, by wypróbować wszystkie idee omawiane do tej pory!

Wybór punktu startowego Istnieje kilka metod rozpoczęcia pracy nad opracowaniem wyglądu własnej witryny. Możesz wykorzystać jeden z gotowych szablonów udostępnianych na stronie drupal.org/project/ themes. Serwis społeczności twórców systemu Drupal oferuje setki darmowych szablonów, gotowych do użycia w chwili pobrania. Znalezienie wśród nich takiego, który będzie albo doskonale odpowiadać Twoim oczekiwaniom, albo będzie im na tyle bliski, by wystarczyły mu niewielkie tylko zmiany, wydaje się być wielce prawdopodobne. Możesz użyć jednego z podstawowych motywów dostępnych na stronie drupal.org/project/themes. Motywy podstawowe są pozbawione jakichkolwiek elementów graficznych, stanową za to doskonałą bazę, która po uzupełnieniu odpowiednimi dodatkami przekształci się w Twoją wymarzoną witrynę. Motyw podstawowy przypomina pusty, otynkowany dom, który czeka na to, by właściciel wybrał kolor farby, wzór podłóg, meble i dodatki. Możesz zbudować własny szablon od zera. Jeśli nie znajdziesz żadnego gotowego motywu graficznego ani motywu podstawowego, który spełniałby Twoje oczekiwania, możesz zdefiniować własny szkielet od zera. Większość początkujących i średnio zaawansowanych projektantów serwisów w systemie Drupal decyduje się na wybór i dostosowanie do swoich potrzeb istniejących szablonów, ponieważ jest to rozwiązanie najłatwiejsze. Jeżeli nie zdołasz znaleźć żadnego gotowego wzoru, który spełniałby stawiane mu warunki, zastanów się nad wykorzystaniem któregoś z szablonów podstawowych. Stanowią one doskonałą bazę, swoisty szkielet, na którym zbudujesz własny szablon bez potrzeby zmagania się z pustą kartką papieru. Ponieważ chciałbym zaprezentować Ci możliwie ogólne podejście, przedstawię kroki rozwiązania polegającego na wprowadzeniu zmian w szablonie podstawowym. Wprawdzie będzie to nieco bardziej skomplikowane niż użycie gotowego szablonu, ale wszystko, czego dowiesz się z tego rozdziału, pozwoli Ci w przyszłości dokonywać niewielkich poprawek w istniejących skórkach.

ROZDZIAŁ 13. „ PRACA NAD MOTYWEM GRAFICZNYM

Szablon podstawowy oferuje wszystkie elementy niezbędne do utworzenia motywu graficznego dla systemu Drupal, brak mu jedynie definicji kolorów, czcionek i grafiki. W opisywanym przykładzie posłużę się motywem o nazwie Genesis. Społeczność twórców systemu Drupal oferuje jeszcze dwa inne motywy podstawowe — Zen i Fusion. Osobiście najbardziej lubię motyw Genesis, ponieważ został on zbudowany na planie siatki definiowanej w pliku CSS i cechuje się łatwą do zrozumienia hierarchią elementów.

Krótkie spojrzenie na motywy podstawowe Każdy z dostępnych motywów podstawowych oferuje inne możliwości i cechy. W serwisie Drupal.org znajdziesz trzy gotowe motywy podstawowe. z

z

z

Zen — to ojciec wszystkich motywów podstawowych. Oferuje możliwość korzystania z wielu funkcji

modułów systemu, bazując na klasycznym, pozbawionym tabel układzie zdefiniowanym w arkuszu CSS. Fusion — dający ogromne możliwości układ bazujący na siatce o szerokości 960 pikseli (960-grid system to biblioteka CSS znacznie ułatwiająca pracę nad bardziej skomplikowanymi układami stron). Motyw Fusion pozwala także na wykorzystanie modułu Skinr. Genesis — mój osobisty ulubieniec, który cechuje się prostym i łatwym do opanowania układem, a jednocześnie pozwala realizować nawet bardziej skomplikowane projekty.

Zanim zaczniesz Zanim zabierzesz się do pracy, musisz poznać kilka faktów dotyczących tworzenia nowych szablonów graficznych. Budowanie nowego szablonu czy zmienianie już istniejącego wymaga pewnej orientacji w sposobie używania znaczników języków HTLM i CSS. Będziesz musiał też dysponować podstawową wiedzą na temat języka PHP. To, jak daleko przyjdzie Ci zabrnąć w szczegóły techniczne programowania, zależy od postawionych sobie celów i złożoności projektu, który pragniesz zrealizować. Jeżeli praca z HTML, CSS i PHP jest Ci obca, polecam Ci zapoznanie się z treścią następujących książek: Getting StartED with CSS autorstwa Davida Powersa, HTML, XHTML i CSS. Nowoczesne tworzenie stron WWW autorstwa Davida Schultza i Craiga Cooka, PHP for Absolute Beginners autorstwa Jasona Lengstorfa oraz Beginning PHP and MySQL: From Novice to Professional, Third Edition autorstwa W.J. Gilmore’a. To doskonałe podręczniki, dzięki którym poznasz podstawy niezbędne do pracy nad motywami graficznymi dla systemu Drupal. W dalszych podrozdziałach będę posługiwać się podstawowymi pojęciami wspomnianych języków, zakładając, że masz już wiedzę niezbędną, by móc zrozumieć takie polecenia. Jeśli będziesz miał problemy, szybko odwiedź najbliższą księgarnię.

Standardowe pliki motywu graficznego Ustawienia motywu graficznego serwisu budowanego w systemie Drupal są zapisane w kilku plikach umieszczonych w katalogu o nazwie identycznej jak nazwa motywu. Pliki motywu Genesis znajdziesz w katalogu o ścieżce dostępu /sites/all/themes/Genesis. „ Uwaga: Pliki motywów instalowanych razem z rdzeniem systemu Drupal 7 są zapisywane w katalogu głównym serwisu. Motywy dodatkowe i wszystkie te, które stworzysz sam, powinny być umieszczane w katalogu /sites/all/themes. To rozwiązanie, które uchroni ustawienia Twojego motywu przed nadpisaniem w trakcie aktualizacji rdzenia systemu.

Ustawienia każdego motywu graficznego są zapisywane w kilku plikach, które muszą spełniać standardy nazewnictwa i formatowania narzucone przez system Drupal. Najważniejsze pliki motywu Genesis zostały wymienione i opisane w tabeli 13.1 182

ZANIM ZACZNIESZ

Tabela 13.1. Standardowe pliki motywu graficznego Plik

Opis

.info

Każdy z motywów graficznych systemu Drupal musi mieć przypisany plik .info o nazwie identycznej z nazwą motywu. W przypadku motywu Genesis plik ten będzie nazywać się genesis.info. W pliku tym zapisane są atrybuty motywu, między innymi: nazwa motywu (tu Genesis), numer wersji rdzenia systemu, dla którego przeznaczony jest dany motyw (tu 7.x), nazwy wszystkich plików arkuszy stylów CSS wymaganych do poprawnej pracy motywu, nazwy i położenie wszystkich plików JavaScript, z których korzysta motyw, nazwy obszarów opisywanych ustawieniami motywów (o obszarach przeczytasz w rozdziałach 6. i 7.). W tym rozdziale skupię się przede wszystkim na liście obszarów.

page.tpl.php

Każdy motyw graficzny dla stron systemu Drupal musi mieć zdefiniowany własny plik page.tpl.php. Plik ten zawiera elementy kodu HTML połączone z fragmentami skryptu PHP. To on odpowiada za ogólny wygląd strony i hierarchię jej elementów. Tam też znajdują się odwołania do innych plików kluczowych dla działania motywu. Gdybyś zajrzał do pliku page.tpl.php, zobaczyłbyś kilka instrukcji mających następujący kształt:

Wyrażenie $jakas_zmienna zmienia się w zależności od miejsca kodu, w którym

się znajduje. W jednym z wierszy pliku znajdziesz wyrażenie:

Instrukcja ta wpisuje do kodu strony budowanej w systemie Drupal zawartość wszystkich plików CSS podanych w pliku .info. Inne instrukcje tego rodzaju (z innymi zmiennymi) spełniają analogiczne zadania. W tym rozdziale opiszę sposób umieszczania na stronie i wyświetlania obszarów zdefiniowanych w pliku .info oraz metody przypisywania im odpowiednich atrybutów stylów CSS. Oto przykładowa instrukcja wyświetlania obszaru strony.