Page 1


Idź do • Spis treści • Przykładowy rozdział Katalog książek

Drupal. Poznaj go z każdej strony! Autor: Krzysztof Palikowski ISBN: 978-83-246-2652-6 Format: 158×235, stron: 496

• Katalog online • Zamów drukowany katalog Twój koszyk • Dodaj do koszyka Cennik i informacje • Zamów informacje o nowościach • Zamów cennik Czytelnia • Fragmenty książek online

Kontakt Helion SA ul. Kościuszki 1c 44-100 Gliwice tel. 32 230 98 63 e-mail: helion@helion.pl © Helion 1991–2010

Własna strona WWW? Sklep internetowy lub forum? Z Drupalem to możliwe! • Jak sprawnie poruszać się w środowisku systemu Drupal? • Jak pracować z modułami, skórkami i zawartością witryny? • Jak od podstaw zbudować i uruchomić własny serwis? Jak twierdzi autor tej książki, Drupal to coś więcej niż CMS. I ma rację, biorąc pod uwagę fakt, że ten system zarządzania treścią umożliwia to, co nie zawsze łatwe jest w przypadku innych systemów, takich jak Joomla! czy Wordpress – swobodę tworzenia w pełni dopasowanych stron. Dzięki modularnej strukturze i tysiącom dodatków Drupal zapewnia projektantom niemal nieograniczone możliwości kreowania funkcjonalności i wyglądu witryny. Ten potencjał w połączeniu z opinią niezawodnego i elastycznego systemu oraz wielkim wsparciem światowej społeczności sprawił, że wciąż mało popularny w Polsce Drupal na świecie wyrósł na lidera rynku CMS. Dowód? W oparciu o niego powstały tak prestiżowe witryny, jak strona amerykańskiego Białego Domu, oficjalny serwis miasta Londyn, strona króla Belgii czy polskiego Ministerstwa Gospodarki. Jednocześnie od 2007 roku Drupal regularnie zdobywa tytuł najlepszego CMS w licznych konkursach. I choć jest to system oparty na otwartym kodzie źródłowym, nic za darmo! Drupal uchodzi bowiem za jeden ze skryptów trudniejszych do opanowania. Aby więc ułatwić sobie to zadanie, podejmij naukę z kompletnym podręcznikiem, dzięki któremu szybko i bez trudu ujarzmisz ten niezwykły system. Błyskawicznie opanujesz jego środowisko i przejdziesz do budowania własnej, profesjonalnej witryny. Przeczytasz o tym, jak opracować strukturę menu i wykonać tłumaczenie interfejsu oraz dowiesz się wszystkiego na temat modułów, „skórek” i szablonów. Nauczysz się sprawnie zarządzać zawartością strony i jej użytkownikami oraz optymalnie ją konfigurować. Krok po kroku prześledzisz proces budowania przykładowego serwisu z wykorzystaniem modułów CCK i Views – zobaczysz, jak atrakcyjnie prezentować treść, zapewnić stronie pełnię funkcjonalności i estetyczny wygląd oraz zadbać o jej bezpieczeństwo. Dowiesz się, jak poprawnie uruchomić swoją witrynę i administrować nią, a także poznasz rozwiązania typowych problemów, na jakie możesz trafić przy każdym z realizowanych etapów. Przekonaj się, że nawet tak potężne narzędzie jak Drupal z dobrym podręcznikiem staje się łatwe do opanowania!


Spis treci Rozdzia 1. Drupal: podstawowe informacje ...................................................... 15 Wprowadzenie ................................................................................................................ 15 Co to jest ten Drupal? ..................................................................................................... 15 Dlaczego wanie Drupal? ........................................................................................ 16 Czy z Drupalem odnios sukces? ............................................................................. 17 Drupal od strony technicznej .......................................................................................... 20 Pliki systemowe ....................................................................................................... 20 Baza danych ............................................................................................................. 21 Pliki uytkownik贸w .................................................................................................. 22 CMS czy CMF? ........................................................................................................ 22 Drupal jako projekt ......................................................................................................... 23 Troch historii ................................................................................................................ 24 Troch liczb .................................................................................................................... 24 Spoeczno i wsparcie ................................................................................................... 25 Polska spoeczno ................................................................................................... 26 Zasoby pomocne w nauce i poznawaniu Drupala ........................................................... 26 Podrcznik ................................................................................................................ 27 IRC ........................................................................................................................... 27 Fora i grupy dyskusyjne ........................................................................................... 27 Blogi i mikroblogi .................................................................................................... 28 Podcasty ................................................................................................................... 28 Screencasty ............................................................................................................... 28 Rozwizywanie problem贸w ............................................................................................ 29 Przyszo Drupala ......................................................................................................... 30 Drupal 7 .................................................................................................................... 30 Rozw贸j firm wiadczcych usugi ............................................................................ 32 Dystrybucje .............................................................................................................. 33 Przewidywania dotyczce przyszoci ...................................................................... 37 Licencje i koszty ............................................................................................................. 37 Licencje .................................................................................................................... 37 Koszty ...................................................................................................................... 39 Podsumowanie ................................................................................................................ 40

Rozdzia 2. Poznajemy rodowisko Drupala ....................................................... 41 Wprowadzenie ................................................................................................................ 41 Podstawy HTML i CSS .................................................................................................. 42 HTML ...................................................................................................................... 42 CSS .......................................................................................................................... 44 Dokumenty statyczne i dynamiczne ......................................................................... 45


6

Drupal. Poznaj go z kadej strony Podstawy serwowania stron WWW ................................................................................ 46 Jak serwowane s strony WWW? ............................................................................ 46 Jak dziaa serwer WWW? ........................................................................................ 47 Drupal jako baza danych z interfejsem WWW ......................................................... 49 Budujemy rodowisko testowe do nauki Drupala ........................................................... 50 Instalacja XAMPP LITE .......................................................................................... 50 Weryfikujemy dziaanie serwera stron WWW ......................................................... 53 Weryfikujemy dziaanie interpretera PHP ................................................................ 53 Weryfikujemy dziaanie serwera bazy danych ......................................................... 54 Tworzymy baz danych dla przyszej instalacji systemu Drupal ............................. 54 Instalujemy Drupala ....................................................................................................... 57 Pobieramy potrzebne pliki ........................................................................................ 57 Poznajemy systemowe pliki Drupala ....................................................................... 58 Pobieramy tumaczenie i instalujemy Drupala ......................................................... 60 Poszczególne kroki instalacji ................................................................................... 61 Podsumowanie ................................................................................................................ 66

Rozdzia 3. Pierwsze kroki po instalacji .......................................................... 67 Wprowadzenie ................................................................................................................ 67 Wane terminy ............................................................................................................... 67 Modu ....................................................................................................................... 67 Rodzaj zawartoci .................................................................................................... 68 Segment .................................................................................................................... 69 Strony niebdce segmentami .................................................................................. 70 Skórka i szablon ....................................................................................................... 70 Blok i obszar skórki .................................................................................................. 71 Ranga ....................................................................................................................... 71

cieka do strony ..................................................................................................... 72

cieka do pliku ....................................................................................................... 73 Co wida na stronie powitalnej ....................................................................................... 74 Dzia zarzdzania ............................................................................................................ 75 Zarzdzanie zawartoci ........................................................................................... 75 Budowa witryny ....................................................................................................... 76 Zarzdzanie uytkownikami ..................................................................................... 76 Konfiguracja witryny ............................................................................................... 76 Raporty ..................................................................................................................... 76 Moduy dodatkowe ......................................................................................................... 76 Wyjmijmy z szafki wszystkie zabawki ..................................................................... 77 Czym s moduy ....................................................................................................... 78 Skd pobiera moduy .............................................................................................. 79 Wczamy modu zewntrzny .................................................................................. 80 Skórki ............................................................................................................................. 81 Skórki systemowe .................................................................................................... 81 Skórki dodatkowe ..................................................................................................... 82 Dodawanie zawartoci .................................................................................................... 82 Strona „Dodaj zawarto ” ........................................................................................ 83 Artyku (wpis na stronie gównej) ............................................................................ 84 Strona z linkiem w menu .......................................................................................... 86 Dodawanie obrazków do wpisu ................................................................................ 87 Atrybuty segmentu ................................................................................................... 90 Co dalej .......................................................................................................................... 91 Uprawnienia ............................................................................................................. 91 Odpowiedzi i ich moderacja ..................................................................................... 92 Rejestracja i logowanie ............................................................................................ 92 Podsumowanie ................................................................................................................ 93


Spis treci

7

Rozdzia 4. Budowa witryny .............................................................................. 95 Wstp .............................................................................................................................. 95 Aliasy adresów ............................................................................................................... 95 Bloki ............................................................................................................................... 97 Bloki dostpne po instalacji ...................................................................................... 99 Konfiguracja bloku ................................................................................................. 101 Wasne bloki ........................................................................................................... 103 Formularz kontaktowy .................................................................................................. 105 Menu ............................................................................................................................. 107 Struktura menu ....................................................................................................... 107 Dodawanie elementu do menu ............................................................................... 108 Dodawanie menu .................................................................................................... 110 Bloki zawierajce menu ......................................................................................... 111 Ustawienia moduu menu ....................................................................................... 112 Moduy ......................................................................................................................... 112 Zalenoci moduów .............................................................................................. 114 Instalowanie nowych moduów .............................................................................. 115 Wersje moduów .................................................................................................... 115 Strony moduów (projektów) ................................................................................. 117 Wsparcie do moduów ............................................................................................ 120 Przestrze nazw ...................................................................................................... 121 Aktualizacja moduów ............................................................................................ 121 Odinstalowywanie moduów .................................................................................. 122 Skórki ........................................................................................................................... 123 Dodawanie skórek .................................................................................................. 123 Konfiguracja skórek ............................................................................................... 123 Ustawienia globalne skórek .................................................................................... 124 Konfiguracja przykadowej skórki — Garland ....................................................... 126 Skórka dziau zarzdzania ...................................................................................... 127 Tumaczenie interfejsu ................................................................................................. 127 Jak sprawdzi , w jakim stopniu nasz interfejs jest zlokalizowany ......................... 128 Jak zdoby pliki .po ................................................................................................ 128 Jak zaimportowa plik z tumaczeniem do naszej strony ................................... 129 Wyszukiwanie i tumaczenie pojedynczych napisów ............................................. 129 Zmienne w napisach ............................................................................................... 130 Eksport i obróbka plików .po ................................................................................. 131 Struktura plików .po ............................................................................................... 132 Formua liczby mnogiej .......................................................................................... 134 Wyzwalacze .................................................................................................................. 134 Podsumowanie .............................................................................................................. 136

Rozdzia 5. Zarzdzanie zawartoci ............................................................... 137 Wprowadzenie .............................................................................................................. 137 Rodzaje zawartoci ....................................................................................................... 137 Nowy rodzaj zawartoci ......................................................................................... 143 Rodzaje (typy) zawartoci raz jeszcze .......................................................................... 144 Podstawowe atrybuty segmentu ............................................................................. 145 Prezentacja segmentów .......................................................................................... 146 Skrót i pena wersja wpisu ...................................................................................... 147 Rónice midzy rodzajami zawartoci ................................................................... 148 Kategorie ...................................................................................................................... 150 Dodawanie terminów ............................................................................................. 152 Adresy z list wpisów przypisanych do terminu .................................................... 154


8

Drupal. Poznaj go z kadej strony Zawarto ..................................................................................................................... 154 Ustawienia dotyczce wpisów ...................................................................................... 156 Ksiki .......................................................................................................................... 157 Fora .............................................................................................................................. 160 Odpowiedzi .................................................................................................................. 161 Kanay RSS .................................................................................................................. 162 Subskrybent kanaów .................................................................................................... 163 Bloki ....................................................................................................................... 164 Podsumowanie .............................................................................................................. 165

Rozdzia 6. Konfiguracja witryny ..................................................................... 167 Wprowadzenie .............................................................................................................. 167 Podstawowe dane ......................................................................................................... 167 Przerwa techniczna ....................................................................................................... 168 Formaty danych ............................................................................................................ 169 Konfiguracja formatu ............................................................................................. 170 Konfiguracja filtrów ............................................................................................... 171 Kolejno filtrów .................................................................................................... 172 Jzyki ............................................................................................................................ 173 Przyjazne adresy ........................................................................................................... 175 Skórka dziau zarzdzania ............................................................................................ 176 System plików .............................................................................................................. 176 Wysyanie plików ......................................................................................................... 177 API blogów ................................................................................................................... 181 Data i czas .................................................................................................................... 182 Dziaania zautomatyzowane ......................................................................................... 184 Wstrzymywanie publikacji na podstawie sów kluczowych ................................... 185 Wywietlanie komunikatu dla uytkownika ........................................................... 186 Wysyanie e-maila .................................................................................................. 186 Zmienne w akcjach ................................................................................................. 187 Dzienniki zdarze i alerty ............................................................................................. 188 Dzienniki zdarze w bazie danych ......................................................................... 188 Syslog ..................................................................................................................... 188 Narzdzie przetwarzania grafik .................................................................................... 191 Instalacja ImageMagick ......................................................................................... 192 Powiadamianie o bdach ....................................................................................... 192 Ustawienia wyszukiwarki ............................................................................................. 193 Wydajno .................................................................................................................... 195 Zapobieganie przecieniu ........................................................................................... 197 Podsumowanie .............................................................................................................. 198

Rozdzia 7. Zarzdzanie uytkownikami .......................................................... 199 Wprowadzenie .............................................................................................................. 199 Rangi ............................................................................................................................ 200 Uprawnienia ................................................................................................................. 201 Przykad deklaracji uprawnie ............................................................................... 201 Za mao uprawnie? ............................................................................................... 203 Najwaniejsze uprawnienia .................................................................................... 203 Profile ........................................................................................................................... 206 Dodatkowe pola w profilach uytkowników .......................................................... 207 Reguy dostpu ............................................................................................................. 211 Ustawienia dotyczce uytkowników ........................................................................... 213 Tworzenie kont ....................................................................................................... 213 Logowanie z OpenID ............................................................................................. 214 Wiadomoci do uytkowników .............................................................................. 215


Spis treci

9 Uytkownicy ................................................................................................................ 216 Dodawanie nowego uytkownika ........................................................................... 217 Uytkownicy testowi .............................................................................................. 217 Podsumowanie .............................................................................................................. 218

Rozdzia 8. Raporty ........................................................................................ 219 Wprowadzenie .............................................................................................................. 219 Raport o stanie witryny ................................................................................................. 220 Nowe wersje ................................................................................................................. 221 Ostatnie wpisy do dziennika ......................................................................................... 222 Najczstsze bdy nieznalezienia strony ....................................................................... 223 Najczstsze bdy odmowy dostpu ............................................................................. 224 Ustawienia dziennika odwiedzin .................................................................................. 225 Najczciej odsyajce strony ....................................................................................... 226 Najpopularniejsze sowa kluczowe ............................................................................... 226 Ostatnie odsony ........................................................................................................... 226 Najpopularniejsze strony .............................................................................................. 227 Najczciej odwiedzajcy ............................................................................................. 228 Podsumowanie .............................................................................................................. 228

Rozdzia 9. Budujemy przykadowy serwis ....................................................... 229 Wstp ............................................................................................................................ 229 Typowy cykl ycia projektu internetowego .................................................................. 229 Wymagania funkcjonalne ....................................................................................... 230 Projekt graficzny i rozplanowanie elementów ........................................................ 230 Wybór rozwizania ................................................................................................ 231 Projekt techniczny .................................................................................................. 231 Przeniesienie na rodowisko produkcyjne .............................................................. 232 Utrzymanie i rozwój ............................................................................................... 232 Serwis „Nasza Okolica” ......................................................................................... 232 Konfiguracja strony ...................................................................................................... 232 Przygotowanie systemu .......................................................................................... 233 Moduy ................................................................................................................... 233 Dane podstawowe .................................................................................................. 235 Konfiguracja skórki ................................................................................................ 235 Wydajno .............................................................................................................. 235 Ranga „pomocnik redakcji” ................................................................................... 236 Format Full HTML dla pomocników ..................................................................... 237 Ustawienia uytkowników ..................................................................................... 238 Uprawnienia ........................................................................................................... 239 Testowi uytkownicy ............................................................................................. 240 Forum dyskusyjne .................................................................................................. 241 Profile uytkowników ............................................................................................ 242 Menu ...................................................................................................................... 244 Pierwszy artyku na stron gówn ......................................................................... 246 Pierwsza strona ....................................................................................................... 246 Blogi ....................................................................................................................... 247 Formularz kontaktowy ........................................................................................... 247 Wyszukiwarka ........................................................................................................ 249 Podsumowanie .............................................................................................................. 249

Rozdzia 10. Zawarto serwisu ....................................................................... 251 Wstp ............................................................................................................................ 251 Nowe rodzaje zawartoci .............................................................................................. 252 Rodzaj zawartoci Wieci z miasta ........................................................................ 252 Rodzaj zawartoci Zdjcie ...................................................................................... 255


10

Drupal. Poznaj go z kadej strony Rodzaj zawartoci Ogoszenie ................................................................................ 255 Uprawnienia dodatkowe ......................................................................................... 256 Kategoryzacja treci ..................................................................................................... 257 Instalacja CCK i innych potrzebnych moduów ........................................................... 258 Spolszczenie CCK .................................................................................................. 260 Przegld moliwoci CCK ..................................................................................... 260 Nowe pola w typach zawartoci ................................................................................... 262 Pole Telefon w typie zawartoci Ogoszenie .......................................................... 262 Pole Obraz w typie zawartoci Wieci z miasta ..................................................... 265 Wspódzielenie pól midzy rodzajami zawartoci .................................................. 269 Zmiana etykiety i kontrolki pola ju po jego utworzeniu ....................................... 270 Pole Obraz w typie zawartoci Zdjcie .................................................................. 271 Pole Powizane zdjcia w typie zawartoci Wieci z miasta .................................. 272 Uprawnienia do pól — modu Content Permissions ............................................... 276 Wprowadzanie i edycja zawartoci ............................................................................... 277 Formularz dodawania i edycji zawartoci .............................................................. 277 Pola i sekcje formularza dodawania treci .............................................................. 279 Kolejno pól ......................................................................................................... 279 Wersje .................................................................................................................... 279 Formaty danych i filtry ........................................................................................... 281 Zawarto testowa ........................................................................................................ 285 Drobne poprawki w strukturze zawartoci ............................................................. 286 Uprawnienia do pól CCK ....................................................................................... 287 Podsumowanie .............................................................................................................. 288

Rozdzia 11. Prezentacja treci ........................................................................ 289 Wstp ............................................................................................................................ 289 Wpis w wersji skróconej i penej .................................................................................. 289 Wersja skrócona (podsumowanie) .......................................................................... 289 Wersja pena segmentu ........................................................................................... 290 Jak zmieni wygld segmentów ................................................................................... 290 CCK i formatery ..................................................................................................... 290 Skinr i Fusion ......................................................................................................... 292 Display Suite .......................................................................................................... 292 Panels ..................................................................................................................... 293 ImageCache ............................................................................................................ 293 Modu ImageCache ...................................................................................................... 293 Uprawnienia ........................................................................................................... 296 Konfiguracja formaterów dla rodzaju zawartoci Ogoszenie ................................ 297 Pooenie plików obsugiwanych przez ImageField i ImageCache ........................ 298 Konfiguracja formaterów dla rodzaju zawartoci Zdjcie ...................................... 300 Odrobina CSS ......................................................................................................... 301 Jak zmieni wygld wykazów i list .............................................................................. 302 Wykazy segmentów ............................................................................................... 302 Wykazy i tabele elementów .................................................................................... 303 Wasne listy i wykazy ............................................................................................ 304 Modu Views ................................................................................................................ 304 Przykady widoków ................................................................................................ 305 Instalacja i polonizacja moduu Views ................................................................... 307 Views i wbudowane widoki ................................................................................... 307 Interfejs moduu Views .......................................................................................... 307 Formaty .................................................................................................................. 310 Obszar Podstawowe ustawienia ............................................................................. 312 Ikona kóka zbatego .............................................................................................. 312


Spis treci

11 Ikony plusa i strzaek .............................................................................................. 314 Obszar Filtry ........................................................................................................... 315 Obszar Pola ............................................................................................................ 316 Obszar Kryteria sortowania .................................................................................... 317 Obszar Powizania ................................................................................................. 318 Obszar Argumenty ................................................................................................. 319 Budowanie widoków dla strony Nasza Okolica ........................................................... 320 Widok Ostatnio dodane zdjcia .............................................................................. 320 Widok Ogoszenia .................................................................................................. 326 Blok 5 ostatnich ogosze ....................................................................................... 328 Podsumowanie .............................................................................................................. 331

Rozdzia 12. Moduy i przepisy ......................................................................... 333 Wstp ............................................................................................................................ 333 Popularne moduy zewntrzne ...................................................................................... 333 Content Construction Kit (CCK) ............................................................................ 334 Views ..................................................................................................................... 335 Flag ........................................................................................................................ 337 Token ..................................................................................................................... 337 Pathauto .................................................................................................................. 338 Administration menu .............................................................................................. 338 FileField ................................................................................................................. 339 ImageCache ............................................................................................................ 339 Rules ...................................................................................................................... 340 Przepisy na konkretne funkcje ...................................................................................... 340 Jak wybra odpowiednie moduy ........................................................................... 341 Galeria zdj ........................................................................................................... 342 Wiki ........................................................................................................................ 343 Sklep internetowy ................................................................................................... 344 Biuletyny ................................................................................................................ 345 Forum dyskusyjne .................................................................................................. 345 Grupy ..................................................................................................................... 347 Zarzdzanie projektami, zadaniami, zgoszeniami ................................................. 347 Formularze i zbieranie danych ............................................................................... 348 Katalogi .................................................................................................................. 348 Zabezpieczenie przed spamem ..................................................................................... 348 System CAPTCHA ................................................................................................ 349 Systemy antyspamowe ........................................................................................... 350 Blokowanie IP ........................................................................................................ 350 Moderacja treci ..................................................................................................... 351 Regulamin .............................................................................................................. 351 Podsumowanie .............................................................................................................. 351

Rozdzia 13. Wygld ........................................................................................ 353 Wprowadzenie .............................................................................................................. 353 Czym s skórki ....................................................................................................... 353 Skórki to nie szablony ............................................................................................ 354 Skd pobiera gotowe projekty .................................................................................... 355 Skórki komercyjne ................................................................................................. 355 Szablony HTML ..................................................................................................... 356 Inne róda .............................................................................................................. 356 Samodzielna produkcja .......................................................................................... 356 Drupal liderem sabych skórek? ............................................................................. 357 Rodzynki, czyli adne skórki do Drupala ............................................................... 358


12

Drupal. Poznaj go z kadej strony Co skada si na wygld drupalowej strony .................................................................. 359 Tre , forma, funkcje .............................................................................................. 359 Kaskadowe arkusze stylów (CSS) .......................................................................... 360 Obszary i bloki ....................................................................................................... 361 Obszar treci i wygld segmentów rónego typu ................................................... 364 Silnik PHPTemplate ..................................................................................................... 367 Czym s silniki skórek ........................................................................................... 367 Skórka i szablon — to nie to samo! ........................................................................ 367 Skórki PHPTemplate .................................................................................................... 368 Instalacja skórek ..................................................................................................... 368 Szablony i funkcje szablonów ...................................................................................... 369 Przykadowy szablon .............................................................................................. 369 Nadpisywanie funkcji i szablonów ......................................................................... 370 Reguy nazewnictwa plików przy nadpisywaniu szablonów .................................. 371 Rozwizywanie konfliktów szablonów .................................................................. 372 Szablony w rdzeniu i moliwoci ich nadpisania ................................................... 373 Zasady nadpisywania funkcji szablonów ............................................................... 375 Zmienne dostpne w szablonie page.tpl.php .......................................................... 376 Zmienne szablonu block.tpl.php ............................................................................. 378 Zmienne szablonu comment.tpl.php ....................................................................... 378 Zmienne szablonu node.tpl.php .............................................................................. 379 Contemplate ........................................................................................................... 380 Budowa skórek ............................................................................................................. 381 Pliki skadajce si na skórk ................................................................................. 381 Plik .info ................................................................................................................. 383 Pliki typowych szablonów ...................................................................................... 386 Skórki potomne ...................................................................................................... 388 Wasna skórka .............................................................................................................. 389 Przerabiana czy cakiem wasna? ........................................................................... 389 Idealna skórka na start — Zen ................................................................................ 390 Robimy skórk potomn na podstawie Zen ............................................................ 391 Dostosowujemy skórk z szablonu HTML/CSS .................................................... 394 Podsumowanie .............................................................................................................. 397

Rozdzia 14. Uruchomienie witryny ................................................................... 399 Wstp ............................................................................................................................ 399 Instalacja Drupala w rodowisku produkcyjnym .......................................................... 399 Wybór serwera WWW ........................................................................................... 400 Zakadamy konto WWW ........................................................................................ 402 Zakadamy baz danych MySQL ........................................................................... 403 Zakadamy skrzynk mailow ................................................................................ 405 Konfigurujemy domen na serwerze ...................................................................... 406 Odszukujemy katalog na pliki strony ..................................................................... 407 Umieszczenie plików Drupala na serwerze — metoda FTP ................................... 409 Umieszczenie plików Drupala na serwerze — wiersz polece .............................. 411 Uruchamiamy instalator ......................................................................................... 412 Uprawnienia do plików .......................................................................................... 412 Sprawdzamy dziaanie poczty ................................................................................ 413 Sprawdzamy parametry yciowe ............................................................................ 413 Ustawiamy zadania cron ........................................................................................ 414 Ukrywamy stron przed ciekawskimi .................................................................... 415 Drupal w trybie wielowitrynowym (multisite) ............................................................. 415 Wiele witryn, jeden Drupal .................................................................................... 416 Znaczenie katalogu sites ......................................................................................... 417


Spis treci

13 Instalacja nowej witryny ........................................................................................ 419 Dodanie istniejcej witryny do instalacji wielowitrynowej .................................... 422 Konfiguracja wspódzielenia tabel midzy serwisami ............................................ 424 Instalacja wielowitrynowa na rodowisku testowym (Windows) ........................... 427 Podsumowanie .............................................................................................................. 429

Rozdzia 15. Utrzymanie witryny ....................................................................... 431 Wstp ............................................................................................................................ 431 Zasada nienaruszalnoci kodu rdzenia .................................................................... 431 Kopie zapasowe ..................................................................................................... 432 Biece prace przy witrynie ................................................................................... 432 Aktualizacja systemu i moduów ............................................................................ 432 Przenosiny na inny serwer ...................................................................................... 432 Zmiana adresu strony ............................................................................................. 433 Utrzymanie rodowiska rozwojowego ................................................................... 433 Wykorzystanie SSH i Drush ................................................................................... 433 Kopie zapasowe ............................................................................................................ 434 Kopia plików z uyciem FTP ................................................................................. 435 Kopia plików z uyciem Direct Admin .................................................................. 436 Kopia bazy danych z uyciem phpMyAdmin ......................................................... 437 Kopie bezpieczestwa z poziomu skryptów PHP i moduów Drupala ................... 438 Kopie z uyciem mechanizmów wbudowanych w panel zarzdzania kontem serwera WWW ...................................................... 439 Kopia bazy danych z uyciem mysqldump ............................................................ 439 Kopie rónicowe plików z uyciem narzdzia rsync .............................................. 442 Planowanie wykonania si kopii z uyciem crontab .............................................. 445 Przywrócenie systemu z kopii bezpieczestwa ............................................................ 446 Odtworzenie plików ............................................................................................... 446 Odtworzenie bazy danych z uyciem phpMyAdmin .............................................. 447 Odtworzenie bazy danych z uyciem programu mysql .......................................... 448 Aktualizacje .................................................................................................................. 450 Skd mam wiedzie , e s nowe wersje? ............................................................... 450 Kiedy aktualizacja jest konieczna? ......................................................................... 451 Proces aktualizacji — najwaniejsze zasady .......................................................... 452 Aktualizacja systemu .............................................................................................. 453 Aktualizacja moduów ............................................................................................ 454 Aktualizacja skórki ................................................................................................. 455 Kiedy bd wiedzia, e wszystkie elementy mojej strony s aktualne? ................ 455 Uruchomienie rodowiska testowego ........................................................................... 456 Jeden serwer testowy — piaskownica .................................................................... 456 Wicej serwerów testowych ................................................................................... 456 Jak przygotowa piaskownic ................................................................................ 457 Piaskownica generowana automatycznie ............................................................... 458 Podsumowanie .............................................................................................................. 459

Rozdzia 16. Typowe problemy ......................................................................... 461 Wprowadzenie .............................................................................................................. 461 Popularne problemy ...................................................................................................... 461 Komunikat „Internal server error 500” ................................................................... 461 Biaa strona zamiast serwisu .................................................................................. 462 Komunikat „Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)” .................................................................................. 463 Komunikat „The translation import failed” ............................................................ 464 Komunikat „Maximum execution time of xx seconds exceeded” .......................... 465


14

Drupal. Poznaj go z kadej strony Bd 404 protokou HTTP ...................................................................................... 465 Powolne dziaanie systemu na localhost ................................................................. 466 Poczenie z serwerem zostao zresetowane ........................................................... 466 Komunikat „Cannot modify header information — headers already sent by …” ... 467 Bdne cieki do plików ....................................................................................... 467 Utrata hasa do konta administratora ...................................................................... 469 Na serwerze z PHP 5.3 nie dziaa podgld ani generowanie miniatur w ImageCache ..................................................................................................... 470 Podsumowanie .............................................................................................................. 471

Skorowidz ................................................................................... 473


Rozdzia 4.

Budowa witryny Wstp W tym rozdziale omówimy szereg opcji, które decyduj o tym, jak witryna ma si prezentowa i z czego jest zbudowana. Wybierzemy wic skórk, skonfigurujemy wywietlane w jej obrbie bloki, zbudujemy nawigacj, a take dokonamy tumaczenia interfejsu. Dowiemy si, jak wczy moduy, a dla dowolnej strony ustawi alternatywny adres (alias). Jest to zestaw opcji skadajcych si na cz dziau zarzdzania nazwanego Budowa witryny.

Aliasy adresów …/admin/build/path Alias jest alternatywn, ustawion przez nas ciek (URL), której wywoanie spowoduje wywietlenie strony pierwotnie znajdujcej si pod innym adresem. Kada strona naszej witryny ma swój unikalny adres. Przykadowo kady segment jest dostpny po podaniu cieki …/node/<numer kolejny segmentu>, a wic …/node/1, …/node/2 i tak dalej. Formularz kontaktowy znajdziemy pod adresem …/contact, a stron logowania pod …/user. Bywaj sytuacje, e chcemy nada inny adres jednej ze stron — bo obecny jest trudny do zapamitania, nie wyglda zbyt dobrze albo wolelibymy zmieni sówko angielskie na polskie (contact — kontakt, taxonomy/2 — kategoria/2). Do tego wanie suy zakadanie aliasów adresów. Jeli interesuje nas automatyczne generowanie aliasów dla kadej dodawanej treci, kategorii czy uytkownika, powinnimy zainteresowa si moduem pathauto, który oferuje takie wanie moliwoci.


96

Drupal. Poznaj go z kadej strony

Klikamy Dodaj alias, co przeniesie nas na stron …/admin/build/path/add. Nastpnie musimy wybra , dla jakiej wersji jzykowej chcemy go zaoy , a potem poda istniejcy adres i jego alias (rysunek 4.1). Rysunek 4.1. Tworzenie aliasu, czyli niestandardowego adresu do strony

Wane, aby adres, do którego chcemy utworzy alias, faktycznie istnia. W powyszym przykadzie uyto adresu …/node/4, ale jeli nie utworzono jeszcze adnych wpisów albo dodano jedynie trzy lub mniej, zapisanie powyszych opcji wygeneruje bd.

Podczas dodawania i edycji aliasów podajemy, dla jakiej wersji jzykowej je tworzymy. O jzykach i ich obsudze wicej dowiemy si w rozdziale 6. „Konfiguracja witryny”. Teraz niech wystarczy nam wiedza, e jeli bdziemy prowadzi tak stron, to dla poszczególnych wersji jzykowych danego wpisu moemy zaoy inne aliasy. Bez kopotu zaoymy aliasy zawierajce polskie litery, spacje, czy nawet wykrzyknik. Jednak pewne znaki (np. znak zapytania, znak &, gwiazdka) maj specjalne znaczenie w adresacji uywanej na serwerach WWW bd w systemach operacyjnych i mog spowodowa bdne rozwizywanie adresów — strona po wpisaniu …/gówna @#$!%^&*? nie zostanie znaleziona. Aby unikn niepotrzebnych problemów, zaleca si stosowanie w adresach tylko ograniczonego zestawu znaków — a – Z, 0 – 9, podkrelenia i mylnika. Po dodaniu kilku aliasów moemy przejrze ich wykaz na stronie gównej zarzdzania aliasami (rysunek 4.2). Rysunek 4.2. Wykaz aliasów

Naley zwróci uwag na to, e system nie dopuci do sytuacji, kiedy mielibymy dwa takie same adresy. Próba zaoenia aliasu, który spowodowaby istnienie dwóch identycznych URL, zakoczy si bdem. Nie ma jednak przeciwwskaza, aby kilka aliasów wskazywao na jeden URL, zatem dla formularza kontaktowego moemy zarezerwowa kilka adresów — kontakt, napisz-do-nas, napisz i jakie tylko chcemy. Warto zapamita , e aliasy bd dziaa równie jako identyfikatory stron wpisywane w definiowaniu widocznoci bloków — o czym ju za chwil w kolejnej czci, gdzie omówimy system ich wywietlania.


Rozdzia 4. i Budowa witryny

97

Bloki …/admin/build/block Blok to pewien obszar na stronie, zawierajcy zazwyczaj niewielk porcj treci (np. ostatnie komentarze), jak funkcjonalno (np. pole wyszukiwania) bd inne dane (np. list obecnie zalogowanych uytkowników), dostarczan przez jeden z zainstalowanych w systemie moduów. Bloki moemy umieszcza w zdefiniowanych dla kadej skórki obszarach, a take sterowa ich widocznoci na podstawie adresu, uprawnie czy zdefiniowanej przez nas funkcji PHP. Dziki zarzdzaniu blokami moemy sterowa wszystkimi tymi funkcjami, tak aby kady blok wywietla si w podanym miejscu, w cile zdefiniowanych sytuacjach. Bloki w wikszoci s dostarczane przez moduy — w miar jak bdziemy instalowa kolejne, ich wykaz stanie si bogatszy. Jeden modu moe dostarcza zero, jeden bd wicej bloków. Sami moemy te doda blok z dowoln treci (zgodnie z wybranym formatem danych) bd kodem PHP. Po wejciu na t stron zarzdzania zobaczymy wykaz dostpnych w systemie bloków, zawierajcy w kolejnych kolumnach:  uchwyt do przecigania do innego obszaru lub do zmiany kolejnoci bloku

w danym obszarze,  nazw bloku,  przypisanie do jednego z obszarów, jakie zdefiniowa autor aktualnie

uywanej skórki,  opcj wykorzystywania moduu zapobiegania przecieniu,  link do konfiguracji,  ewentualnie (w przypadku bloków stworzonych przez nas) link do usunicia bloku.

Rozmieszczanie bloków jest realizowane metod „przecignij i upu ” lub poprzez przydzia do obszaru na podstawie listy wartoci. Formularz zarzdzania blokami (dostpny pod adresem …/admin/build/block) naley zapisa , aby zmiany day jaki efekt (rysunek 4.3). Na rysunku widzimy, e kady blok przydzielony jest do jednego z obszarów (w wypadku skórki Garland moe to by Lewa kolumna boczna, Prawa kolumna boczna, Zawarto, Nagówek, Stopka bd <brak>, czyli blok nigdzie niewywietlany). Powyszy rysunek przedstawia te blok wasny, który moemy utworzy za pomoc formularza tworzenia nowego bloku (co opisano kilka stron dalej).


98

Drupal. Poznaj go z kadej strony

Rysunek 4.3. Rozmieszczanie blokรณw w obszarach

System wywietla nam ponadto w ramach skรณrki szereg specjalnych pรณl, zawierajcych nazwy obszarรณw, dla atwiejszej orientacji, gdzie dokadnie pojawi si blok, kiedy przydzielimy go np. do obszaru Nagรณwek (rysunek 4.4).

Rysunek 4.4. Pola wywietlane tylko w dziale zarzdzania blokami pomagaj w ich rozmieszczeniu


Rozdzia 4. i Budowa witryny

99

Jeli mamy uruchomion wicej ni jedn skórk, to zobaczymy dodatkowo linki do wywietlenia konfiguracji bloków w kadej z nich, czyli dla kadej ze skórek konfiguracja rozmieszczenia bloków jest unikalna (rysunek 4.5). Rysunek 4.5. Rozmieszczenie bloków mo emy konfigurowa niezale nie dla ka dej aktywnej skórki

Zauwamy te, e jeli wybralimy inn skórk dziau zarzdzania, to strona konfiguracji bloków pokae si w skórce domylnej, a nie skórce dziau zarzdzania. Jest to logiczne, poniewa przy zarzdzaniu usytuowaniem bloków w 95% przypadków bdzie nam chodzio o bloki widoczne w skórce, jak widzi typowy uytkownik witryny, a nie administrator.

Bloki dostpne po instalacji Po instalacji Drupala 6 i uruchomieniu wszystkich dostpnych moduów mamy do dyspozycji bloki pokazane w poniszej tabeli (tabela 4.1). Tabela 4.1. Bloki dostpne po instalacji Nazwa bloku (Adres konfiguracji (admin/build/block/configure/…))

Co robi? (konfiguracja ponad standard)

Przecznik wersji jzykowej (locale/0)

Pozwala wybra jzyk witryny. Jeli wanie ogldany segment ma tumaczenie na kliknity jzyk, zostanie ono zaprezentowane.

Ostatnio w blogach (blog/0)

Pokazuje wszystkie najnowsze wpisy z blogów uytkowników.

Ostatnie wiadomoci z kanau (NAZWA)(aggregator/ feed-<identyfikator kanau>)

Pokazuje list najnowszych wiadomoci w kanale subskrybenta kanaów. Moemy skonfigurowa liczb elementów w bloku.

Ostatnie wiadomoci w kategorii (NAZWA)(aggregator/ category -< identyfikator kategorii>)

Pokazuje list najnowszych wiadomoci w kategorii subskrybenta kanaów. Moemy skonfigurowa liczb elementów w bloku.

Ostatnie odpowiedzi (comment/0)

Lista najnowszych komentarzy do dowolnego typu treci.

Odnoniki podstawowe (menu/primary-links)

Pokazuje menu odnoników podstawowych w strukturze drzewa.

Odnoniki dodatkowe (secondary-links)

Pokazuje menu odnoników dodatkowych w strukturze drzewa.


100

Drupal. Poznaj go z kadej strony

Tabela 4.1. Bloki dostpne po instalacji — cig dalszy Nazwa bloku (Adres konfiguracji (admin/build/block/configure/…))

Co robi? (konfiguracja ponad standard)

Nowi uytkownicy (user/2)

Pokazuje list nowo zarejestrowanych uytkowników. W konfiguracji moemy zdefiniowa liczb wywietlanych uytkowników.

Nowe tematy (forum/1)

Wykaz najnowszych tematów zaoonych na forum. Moemy poda , jaka liczba tematów ma si pokazywa .

Aktywne tematy (forum/0)

Pokazuje najnowsz aktywno na forum — nowo zaoone tematy oraz tematy, w których wanie pojawia si nowa odpowied. Moemy poda , jaka liczba tematów ma si pokazywa .

Najwiesza ankieta (poll/0)

Wywietla najnowsz ankiet z moliwoci zagosowania.

Kto przeglda (user/3)

Wywietla nazwy uytkowników zalogowanych i aktywnych przez ustawiony w bloku czas w minutach oraz informacj o liczbie odwiedzajcych (z podziaem na zarejestrowanych i nieznajomych). Aktywno uytkownika w minutach: Dugo listy uytkowników:

Ksika (book/0)

Pokazuje drzewiast struktur ksiki. Moemy zdecydowa , czy pokazujemy tylko w sytuacji, kiedy trafilimy na stron ksiki (wtedy pokazujemy struktur ksiki, do której naley dana strona), czy moe pokazujemy wszystkie ksiki w systemie, niezalenie od tego, jaka obecnie strona jest wywietlana.

Informacje o autorze (profile/0)

Pozwala wywietli dane o autorze danego wpisu, wraz z polami wypenionymi w profilu (zgodnie z konfiguracj bloku moemy wybra tylko niektóre pola).

Formularz wyszukiwania (search/0)

Wywietla pole wyszukiwarki.

Subskrybuj (node/0)

Wywietla ikon bdc linkiem do kanau RSS witryny — http://adres.pl/rss.xml.

Logowanie (user/0)

Udostpnia formularz logowania — oczywicie tylko uytkownikom niezalogowanym. Jeli wczono modu OpenID, blok umoliwia zamian formularza tradycyjnego (uytkownik+haso) na pole do wpisania identyfikatora OpenID.

Nawigacja (user/1)

Pokazuje podrczne menu dla zalogowanego uytkownika, zawierajce link do edycji profilu, dodawania zawartoci, wylogowania, linki do dziau zarzdzania (jeli uytkownik ma do niego dostp) i tym podobne.

Witryn napdza Drupal (system/0)

Wywietla informacj o systemie uytym do budowy strony i logo Drupala. Moemy wybra kilka wersji kolorystycznych i wielkoci.


Rozdzia 4. i Budowa witryny

101

Konfiguracja bloku Kady blok moe udostpnia specyficzne dla niego opcje konfiguracyjne, ale jest te szereg atrybutów wspólnych, które posiada kady blok w systemie, niezalenie od tego, czy stworzylimy go sami, czy dostarcza go jeden z moduów. Po wejciu w konfiguracj dowolnego bloku (odnoniki do konfiguracji s przy kadym z nich na stronie zarzdzania) zobaczymy zatem opcje specyficzne dla niego oraz standardowe, omówione niej. Opis bloku jest tekstem, jaki pojawi si na stronie zarzdzania blokami. Moemy go ustawi tylko dla bloków, które dodamy wasnorcznie. Tytu bloku to tekst nagówka, jaki zostanie zaprezentowany uytkownikowi (rysunek 4.6). Rysunek 4.6. Blok o tytule „Muzyka”

Moemy te nie wywietla adnego tytuu — wtedy w pole na przeznaczone wstawiamy <none>. Jeli pole pozostawimy puste, system wywietli domylny tytu, o ile dany blok taki posiada. W dalszej konfiguracji bloku, w sekcji Uytkownicy, mamy do wyboru trzy opcje decydujce o tym, czy blok ma by pokazywany obligatoryjnie, bez moliwoci wyczenia (opcja pierwsza), czy zezwoli uytkownikom na wyczenie go sobie w profilu (opcja druga), czy moe w ogóle go nie wywietla , dopóki uytkownik z pen wiadomoci nie wczy go na stronie edycji profilu. Sekcja Wywietlanie zalene od rangi oznacza, e blok zobacz tylko osoby przynalene do zaznaczonych tutaj rang. W ten sposób moemy zaprezentowa bloki tylko wybranej grupie — na przykad osobom niezalogowanym bd moderatorom komentarzy. Ostatnia sekcja, Wywietlanie zalene od strony, wymaga szerszego omówienia. Za jej pomoc moemy ustawi pokazywanie bloku tylko, gdy odwiedzamy wybrane i wprost tu podane adresy (opcja Pokazuj tylko na stronach z listy), bd przeciwnie — przy wskazanych ciekach go ukry , a wywietla na wszystkich innych (opcja Pokazuj na wszystkich stronach prócz tych z listy). Trzecia opcja, Wywietlaj, jeli poni szy kod PHP zwraca prawd — TRUE jest przeznaczona do sterowania wywietlaniem bloku za pomoc dowolnego kodu PHP zwracajcego prawd lub fasz. Jeli chodzi o pierwsze dwie opcje, przykadem niech bdzie sytuacja, kiedy chcemy wywietla blok z reklam na kadej stronie, ale:


102

Drupal. Poznaj go z kadej strony  nie na stronie gównej,  nie w dziale administracyjnym,  nie podczas edycji zawartoci.

Wystarczy wypeni formularz jak na rysunku i blok bdzie zachowywa si dokadnie tak, jak chcemy (rysunek 4.7). Rysunek 4.7. Manewrowanie widocznoci bloku w zale noci od cie ki do strony

Jak wida , z wykorzystaniem znaku wieloznacznego * zastpujcego dowolny (równie pusty) cig znaków, jestemy w stanie do precyzyjnie zaadresowa zarówno kocówki, jak i dowoln wewntrzn cz adresu. Wiedzc, e wszystkie strony edycji zawartoci maj format …/node/<identyfikator segmentu>/edit, moglimy wprowadzi mask do wykluczenia wywietlania bloku pod tymi adresami. Warto te zauway sówko <front>. Suy ono do sterowania widocznoci bloku na stronie gównej. Mimo i strona ta moe si z czasem zmieni (konfiguracja tego, co jest stron gówn, pozwala na wskazanie dowolnej cieki w systemie), nie bdziemy musieli poprawia widocznoci wszystkich bloków. Jeszcze szerszego omówienia wymaga trzecia opcja sterowania widocznoci bloku. Kod PHP, jaki moemy tu wstawi , jest zupenie dowolny. Jeli zechcemy pokazywa blok z wynikami Duego Lotka, moemy tu sprawdza dzie tygodnia i zwraca TRUE, jeli jest akurat wtorek, czwartek bd sobota. Z bardziej przydatnych przykadów, moemy sprawdzi , jaki jest typ aktualnie wywietlanej strony, i pokazywa blok tylko, jeli jest to wpis w blogu (rysunek 4.8). Rysunek 4.8. Manewrowanie widocznoci bloku w zale noci od rezultatu, jaki zwraca kod PHP


Rozdzia 4. i Budowa witryny

103

Powyszy rysunek zawiera tylko kilka linijek kodu, wic przy okazji go omówimy. Zawiera on instrukcj if, która — jeli adres obecnie wywietlanej strony skada si ze sówka „node” i dowolnego numeru — zwróci TRUE pod warunkiem, e wanie wywietlany segment jest typu blog. Tablica arg(0) przechowuje kolejne czci adresu rozdzielone ukonikiem, zatem w wypadku adresu …/node/5 zmienna arg(0) bdzie równa node, a arg(1) równa si bdzie 5. Przykady skryptów do gotowego zastosowania w tym miejscu znajduj si w specjalnej czci dokumentacji na stronie http://drupal.org/node/60317. Warto przejrze te propozycje, bo bywaj tam naprawd ciekawe sposoby wzbogacenia funkcji strony.

Wasne bloki Zarzdzanie blokami pozwala nam po klikniciu opcji Dodaj blok (…/admin/build/ block/add) doda do systemu blok zawierajcy dowoln tre bd, znowu, kod PHP. Od najprostszego umieszczenia komunikatu od administratora do uytkowników w randze moderator, do skomplikowanego bloku wywietlajcego dane pobrane z bazy, mechanizm ten daje potne moliwoci. Po zapisaniu pojawi si on na licie dostpnych bloków, rónic si od wbudowanych tym, e widoczna bdzie przy nim opcja usu (rysunek 4.9). Rysunek 4.9. Opcja usuwania bloku jest dostpna tylko dla tych, które sami utworzylimy

Bloki zawierajce kod PHP to funkcja, dziki której moemy wywietli na stronie niemal dowoln informacj, jak moemy sobie wyobrazi i uda nam si zaimplementowa jej przygotowanie — na przykad poprzez zapytanie do bazy danych, signicie do systemu plików czy napisanie dowolnie skomplikowanego kodu. Przykadowe pomysy na bloki zbudowane z kodu PHP moemy znale na stronie http://drupal.org/node/21867, zawierajcej dziesitki pomysów na wykorzystanie tej funkcji. Jeden z najprostszych pomysów to wywietlenie losowego tekstu — cytatu, wskazówki, porady. Osigniemy to, wywoujc opcj Dodaj blok (…/admin/build/block/add) i wpisujc kod PHP w pole Tre bloku (rysunek 4.10).


104

Drupal. Poznaj go z kadej strony

Rysunek 4.10. Wprowadzanie zawartoci bloku

Kod, jaki wkleilimy w powyszym rysunku, ma niniejsz posta : <?php // porada ze strony http://drupal.org/node/21867 global $user; $cytat = array( 'Hej, czy nie wiecie, nie macie wadzy na wiecie <br /> (Kult)', 'Mniej czytajcie/Mniej si uczcie/Wicej mylcie/Wicej czujcie <br /> (Dezerter)', 'Moesz wyczy blok z cytatem w <a href="http://localhost/drupal?q=user/'.$user->uid.'">swoim profilu</a>', ); return $cytat[rand(0,count($cytat)-1)]; ?>

Nie moemy zapomnie wybra PHP jako format danych do zawartoci bloku (rysunek 4.11). Rysunek 4.11. Wyb贸r formatu, jaki ma zosta zastosowany do wywietlenia zawartoci bloku

Aby pozosta w zgodzie z ostatni porad, powinnimy jeszcze ustawi atrybut Domylnie wywietlaj ten blok, ale pozw贸l u ytkownikom go ukry w opcji Ustawienia wywietlania:. Po zapisaniu tak spreparowanego bloku bdziemy mogli przydzieli go do dowolnego obszaru, gdzie bdzie wywietla swoje losowe teksty (rysunek 4.12).


Rozdzia 4. i Budowa witryny

105

Rysunek 4.12. Blok z treci wygenerowan przez kod PHP

Formularz kontaktowy …/admin/build/contact Trudno sobie w dzisiejszych czasach wyobrazi stron, która nie udostpnia odwiedzajcym jakiej formy kontaktu. Wiele stron istnieje tylko po to, aby taki kontakt umoliwi . Czsto s to wizytówki firm i instytucji, ministrony dedykowane prezentacji produktów czy ofert specjalnych albo blogi, gdzie autor liczy na odzew ze strony czytelników. Podstawowa dystrybucja Drupala daje do prost funkcjonalno formularza kontaktowego. Wyrónia si on moliwoci zdefiniowania dowolnej liczby kategorii, z których kada moe mie innych odbiorców, automatyczn odpowied i nazw. Pozwala to zbudowa prosty system, gdzie odwiedzajcy nasz witryn ma do wyboru kilka opcji kontaktowych, na przykad z dziaem sprzeday, pomoc techniczn czy sekretark prezesa. Now kategori dodajemy za pomoc opcji Dodaj kategori (rysunek 4.13). Rysunek 4.13. Konfiguracja kategorii formularza kontaktowego

Oprócz tych ustawie moemy przypisa kategorii wag (cisze, z wiksz wag, bd niej na licie, z której uytkownik wybiera kategori kontaktu) oraz ustawi , czy kategoria ma by domylnie wybrana po przejciu na stron z formularzem kontaktowym.


106

Drupal. Poznaj go z kadej strony

Niestety, mamy do dyspozycji tylko jeden gówny i wspólny dla wszystkich kategorii opis formularza, moliwy do skonfigurowania przez opcj Ustawienia. W tym samym miejscu ustalimy, ile wiadomoci na godzin mona wysa za pomoc naszego formularza. Ma to na celu przeciwdziaanie automatom spamujcym (rysunek 4.14). Rysunek 4.14. Konfiguracja cech formularza kontaktowego wspólnych dla wszystkich kategorii

Na samym kocu ustawie jest jeszcze jedna istotna opcja. Jej wczenie uruchomi formularz kontaktowy na stronie kadego profilu uytkownika. Formularze bd dostpne pod adresem …/user/<identyfikator u ytkownika>/contact. Uytkownicy bd mogli wyczy swój formularz w opcjach edycji wasnego profilu. O ile przy stronach prowadzonych indywidualnie wczanie osobistych formularzy kontaktowych nie ma wikszego sensu, to na stronach z wiksz liczb uytkowników (np. redaktorów, bloggerów, dyskutantów na forum) moe mie ona bardzo praktyczne zastosowanie. Przede wszystkim uytkownicy, z którymi si kontaktujemy, nie musz nigdzie podawa wasnego adresu e-mail, a take w kadej chwili bd mogli wyczy formularz, jeli z jego powodu otrzymywa bd niechciane wiadomoci. Tak dla gównego formularza kontaktowego, jak i dla formularzy osobistych, a nawet dla rejestracji uytkownika czy dodawania komentarzy warto rozway wprowadzenie techniki weryfikujcej, czy wypeniajcy jest na pewno czowiekiem. Moduy udo1 stpniajce t funkcj, popularnie zwan CAPTCHA , s dostpne w kilku wersjach — od cakowicie samodzielnego captcha, po dodatki integrujce nasz witryn z systemami Mollom czy Askimet.

Kiedy ju utworzymy kilka kategorii, moemy je przejrze i edytowa na gównej stronie zarzdzania moduem Kontakt (rysunek 4.15). Rysunek 4.15. Domylna kategoria dla formularza kontaktowego

1

http://pl.wikipedia.org/wiki/CAPTCHA


Rozdzia 4. i Budowa witryny

107

Jeden z wpisów bdzie zaznaczony jako Wybrany, co oznacza, e po zaadowaniu strony …/contact bdzie on wywietlany jako domylna kategoria kontaktowa. Ponadto mona zauway , e jedna z kategorii ma wpisane dwa adresy odbiorców. Jest to jak najbardziej prawidowe i czasami niezbdne ustawienie.

Menu …/admin/build/menu Menu to bardzo ciekawy element systemu Drupal. Z punktu widzenia osoby pocztkujcej, budujcej pierwsze strony, modu ten jest tylko zbiorem interfejsów administracyjnych pozwalajcych zarzdza nawigacj na stronie. Oferuje te bloki dla kadego stworzonego menu (moemy ich bowiem stworzy tyle, ile zechcemy). Tak naprawd menu.module jest jednym z kluczowych elementów systemu Drupal. Kada strona wywietlana w ramach serwisu — czy to wpis na blogu, formularz kontaktowy, lista artykuów czy wreszcie formatka administracyjna do zarzdzania uytkownikami — musi mie swoj ciek (adres, URL), a wywoanie dowolnej cieki obsuguje wanie ten modu. Na szczcie szczegóy tych mechanizmów nie przydadz si nam, dopóki nie zaczniemy pisa wasnych moduów, zatem przejdmy do tego, co moemy skonfigurowa za pomoc tego obszaru dziau zarzdzania. Po wejciu na gówn stron, Wywietl menu, widzimy trzy menu stworzone tu po instalacji systemu. Pierwsze z nich — Nawigacja — jest specyficzn grup odnoników uytecznych gównie dla zalogowanego uytkownika. Jest tam przede wszystkim link do wywietlenia strony profilu oraz cze suce do wylogowania si. Znajdziemy take cza do dodawania zawartoci i do zarzdzania stron — chocia ich widoczno ma cisy zwizek z uprawnieniami. Zwyky uytkownik (nie administrator) nie zobaczy w ogóle odnonika do dziau zarzdzania. Kolejne dwa standardowe menu s przeznaczone do umieszczania w nich odnoników podstawowych i dodatkowych. To, co si tam znajdzie, zaley wycznie od nas. Moemy tam umieci dowolne adresy — po klikniciu dowolnego z nich pojawi si interfejs sucy do zarzdzania pozycjami, jakie si w danym menu znajduj.

Struktura menu Menu w Drupalu ma struktur drzewiast. Oznacza to, e kady element moe by umieszczony albo na szczycie menu (równorzdnie z innymi pozycjami), albo jako jeden z „lici”, czyli posiada jako rodzica inny element menu. Liczba zagniede nie jest ograniczona.


108

Drupal. Poznaj go z kadej strony

Dobrym przykadem struktury drzewiastej jest menu Nawigacja, a w nim element Zarzdzaj — zawierajcy pod sob wszystkie gówne obszary dziau zarzdzania, a pod kadym obszarem poszczególne strony suce do sterowania konkretnymi funkcjami (rysunek 4.16). Rysunek 4.16. Widok drzewiastej struktury menu

Elementy w kadym menu moemy przesuwa metod „przecignij i upu ”. Podczas tego procesu widzimy dokadnie, co i w jakie miejsce zamierzamy przenie — zarówno element, który zapalimy, jak i wszystkie elementy podrzdne (rysunek 4.17). Rysunek 4.17. Przenoszenie gazi drzewa ze wszystkimi elementami podrzdnymi

Dodawanie elementu do menu Aby doda element do menu, wystarczy wybra opcj Dodaj element, widoczn pod warunkiem, e jestemy na stronie wywietlajcej obecn zawarto jednego z menu. Aby doda element, musimy poda przynajmniej ciek, na jak wskazuje, oraz tekst odnonika, który pojawi si w menu. Opcjonalnie moemy poda opis, jaki zostanie dodany do atrybutu title odnonika w menu (rysunek 4.18). Jak wida na przykadzie, podalimy ciek, która jest tylko czci penego adresu. Jest to tak zwana cieka wewntrzna. Oczywicie moemy uywa penego adresowania, na przykad http://localhost/drupal/contact, ale zdecydowanie odradzam taki wybór. Podajc tylko ciek wewntrzn, unikniemy mudnego poprawiania kadej


Rozdzia 4. i Budowa witryny

109

Rysunek 4.18. Konfiguracja nowego odnonika w menu

pozycji menu w sytuacji, gdybymy nagle musieli zmieni adres, pod którym znajduje si nasza witryna. cieki wewntrzne gwarantuj nam bezbolesne przeniesienie serwisu pod zupenie inny adres — na przykad z komputera osobistego do Internetu, z domeny darmowej na patn czy z podfolderu do katalogu gównego. Poza podaniem cieki, opisu i tytuu powinnimy zdecydowa , czy w danej chwili element ma by widoczny (atrybut wczony), a take czy ma by domylnie rozwinity (atrybut rozwinite). To drugie ustawienie jest pomocne przy prezentowaniu menu w blokach — przykadowo, jeli zaznaczymy atrybut rozwinite przy pozycji Dodaj zawarto w menu Nawigacja, nasi zalogowani uytkownicy od razu bd widzieli, jak tre mog doda do witryny (rysunek 4.19). Rysunek 4.19. Menu Nawigacja w postaci bloku, jaki zobaczy u ytkownik po zaznaczeniu opcji „rozwinite” przy pozycji „Dodaj zawarto”

Co warte odnotowania, nawet klikajc Dodaj element moemy umieci now pozycj w dowolnym miejscu caej struktury. Jedn z opcji do ustawienia jest bowiem element nadrzdny, który zawiera wszystkie menu (wyrónione poprzez otoczenie ich nazwy ostrymi nawiasami) oraz wszystkie wystpujce w nich pozycje, z zaznaczon hierarchi (rysunek 4.20). Rysunek 4.20. Wybór rodzica dla nowej pozycji w menu

Na samym kocu formularza jest jeszcze moliwo ustawienia wagi elementu, ale robienie tego rcznie, kiedy mamy do dyspozycji mechanizm „przecignij i upu ” (który w miar przestawiania pozycji wzgldem siebie sam nadaje im waciwe wagi), graniczy z niedorzecznoci.


110

Drupal. Poznaj go z kadej strony

Po dodaniu pozycji do odnoników podstawowych i dodatkowych, przy standardowych ustawieniach skórki Garland, zobaczymy je w specjalnym obszarze na szczycie strony (rysunek 4.21). Rysunek 4.21. Menu odnoników podstawowych i dodatkowych

To, czy odnoniki maj by wywietlane, skonfigurujemy w ustawieniach kadej skórki. Kada skórka moe mie zdefiniowane nieco inne miejsce do wywietlania tych odnoników. Warto wiedzie , e dodanie pozycji w menu jest moliwe take za pomoc innych sposobów. Jeden z najczciej wykorzystywanych i najwygodniejszych jest dostpny z poziomu formularza dodawania zawartoci. Moemy wtedy okreli (za pomoc pól dostpnych w sekcji Menu), jaki ma by tekst odnonika i gdzie ma si pokaza . Bdzie on kierowa do wanie dodawanej treci, a wic nie musimy martwi si o rczne wpisywanie adresu (rysunek 4.22). Rysunek 4.22. Formularz dodawania i edycji zawartoci zawiera te opcj utworzenia odnonika w menu

Dodawanie menu Menu, jakie znajdziemy po instalacji Drupala, to jednak tylko przykadowe, gotowe do zagospodarowania struktury. Sami moemy zaoy kolejne, klikajc opcj Dodaj menu. Jedyne, co musimy poda , zakadajc nowe menu, to wewntrzna nazwa, tytu i opis (rysunek 4.23). Do nowo utworzonego menu moemy doda nowe pozycje lub przenie dowolny istniejcy odnonik. Aby tego dokona , musimy wej w edycj odnonika i zmieni jego rodzica na nowo utworzone menu (rysunek 4.24).


Rozdzia 4. i Budowa witryny

111

Rysunek 4.23. Tworzenie nowego menu

Rysunek 4.24. Nowe menu pojawi si jako jedna z pozycji listy Element nadrzdny podczas edycji dowolnego odnonika

Bloki zawierajce menu Jeli zechcemy wywietli nowo stworzone menu na stronie, musimy posuy si blokiem. Kade menu, jakie istnieje w systemie, jest moliwe do pokazania jako blok â&#x20AC;&#x201D; automatycznie zakadany w momencie tworzenia menu. Na stronie zarzdzania blokami ustawiamy widoczno tego bloku na wybrany przez nas obszar i menu z odnonikami, jakie w nim zawarlimy, pojawi si na stronie. Przy okazji moemy zaobserwowa wpyw ustawienia atrybutu rozwinite na prezentacj menu (rysunek 4.25).

Rysunek 4.25. Przykadowa struktura menu

Po klikniciu elementu, ktĂłry nie ma ustawionego atrybutu rozwinite, jego elementy podrzdne staj si widoczne (rysunek 4.26).


112

Drupal. Poznaj go z kadej strony

Rysunek 4.26. Blok pokazujcy odnoniki nale ce do nowego menu

Ustawienia moduu menu …/admin/build/menu/settings Na sam koniec warto zajrze do ustawie samego moduu menu. Caa konfiguracja sprowadza si do wskazania trzech atrybutów. Pierwszy okrela, jakie menu bdzie domylnie wybrane w trakcie dodawania nowego wpisu i wykorzystania wspomnianej wczeniej moliwoci umieszczenia odnonika do menu bezporednio podczas dodawania treci. Po prostu — to menu, które tu wybierzemy, bdzie domylnie wybrane jako menu, do którego zostanie wstawiony odnonik. Kolejne dwie opcje s cile zwizane z wywietlaniem odnoników podstawowych i dodatkowych. Poniewa kada standardowa skórka umoliwia skonfigurowanie jej tak, aby pokazywaa jeden zestaw lub oba zestawy odnoników, moemy tu wskaza , które menu zawiera odnoniki podstawowe, a które dodatkowe. Jest to przydatne, jeli z jakich powodów wolimy stworzy zupenie wasne menu, gdzie bdziemy trzyma odnoniki, które zechcemy nastpnie wywietli w miejscu, gdzie zwyczajowo prezentowane s pozycje z menu odnoników podstawowych bd dodatkowych.

Moduy …/admin/build/modules System moduów jest elementem, który prawdopodobnie zadecydowa o sukcesie Drupala. Nie chodzi tylko o moliwo rozszerzania witryny o nowe funkcje, ale o elastyczno interfejsu programistycznego (API) stworzonego do dyspozycji twórców dodatków. Bardzo czsto podkrela si zalet, jak jest prostota wpasowania si w ramy opisane przez twórców systemu i atwo pisania nowych moduów. Dziki temu moemy cieszy si ich ogromn liczb i rónorodnoci. W momencie pisania tego rozdziau na stronie http://drupal.org/project/modules?filters=drupal_core%3A87&solrsort=sis_project_ release_usage%20desc mona byo znale ponad 3600 moduów do Drupala 6. Jak zarzdza moduami w Drupalu? Pierwszym miejscem, jakie powinnimy odwiedzi , jest oczywicie strona z interfejsem do ich wczania i wyczania. Po przejciu na ni zobaczymy obszerny wstp wyjaniajcy podstawowe mechanizmy dodawania, aktualizowania, instalowania i konfigurowania moduów.


Rozdzia 4. i Budowa witryny

113

Pod wstpem, który warto przeczyta , zobaczymy pogrupowany wykaz wszystkich moduów, jakie mamy w tej chwili do dyspozycji. Po instalacji systemu te grupy to: Moduy rdzenia, opcjonalne oraz Moduy rdzenia, wymagane. Jak atwo si domyli , nie moemy wyczy adnego z moduów wymaganych, dlatego dla wygody caa sekcja z nimi jest po zaadowaniu strony zwinita. Po rozwiniciu wida , e do dziaania Drupala wymagane jest wczenie tylko kilku moduów (rysunek 4.27). Rysunek 4.27. Wymagane moduy nie maj opcji ich wyczenia

W miar instalowania moduów zewntrznych bd powstawa nowe sekcje grupujce moduy zgodnie z ich przeznaczeniem — na przykad zestaw moduów wchodzcych w skad Content Construction Kit, sucego do budowania nowych rodzajów zawartoci, bdzie zgrupowany w jednym miejscu. Wró my do listy moduów rdzenia, które s w grupie opcjonalne. Jeli po instalacji nie wczylimy wszystkich dostpnych moduów, zróbmy to teraz. Po tej operacji wró my do strony …/admin/build/modules i obejrzyjmy list (rysunek 4.28). Rysunek 4.28. Opcjonalne moduy rdzenia Drupala

Jak wida , dostpne opcje s minimalne i sprowadzaj si do moliwoci wczenia bd wyczenia moduu. Moemy jeszcze ustawi dla niektórych atrybut Zapobieganie przeci eniu. Ta druga opcja jest czci moduu throttle.module i omówiona zostanie w dalszej czci ksiki, wic moemy j w tym momencie zignorowa .


114

Drupal. Poznaj go z kadej strony

Zalenoci moduów Z listy moduów moemy jeszcze dowiedzie si, czy dany modu jest wymagany do dziaania innych — tak jak w przypadku moduu Comment. Co wicej, system nie pozwoli nam wyczy moduu, jeli inne moduy, które go wymagaj, s obecnie wczone. System zalenoci dziaa te w drug stron — jeli przykadowo wyczymy moduy Forum i Tracker, nastpnie wyczymy Comment, a potem zechcemy wczy ponownie modu Forum, zostaniemy poczstowani stosownym komunikatem (rysunek 4.29). Rysunek 4.29. Przykad dziaania pilnowania zale noci midzy moduami

Po klikniciu Kontynuuj zostan wczone wymagane moduy. Jak zauwaysz, przegldajc list moduów, system zalenoci bazuje na dwóch nazwanych relacjach — Jest zale ny od i Wymagany przez (rysunek 4.30). Rysunek 4.30. Opisy zale noci midzy moduami

Dziki temu prostemu systemowi zalenoci nie uda nam si popsu jakiej funkcjonalnoci, wyczajc modu dostarczajcy „usugi” innemu moduowi. Klasyczny przykad to wspomniany modu Comment, pozwalajcy na uruchomienie moduu Forum — którego uruchomienie bez funkcji komentarzy nie ma wielkiego sensu. Z powyszych rozwaa wynika bardzo wana obserwacja. Moduy w Drupalu bardzo czsto przenikaj si, wiadcz sobie rónego rodzaju usugi, rozszerzaj funkcje dostpne w innych moduach. Przykadowo — moemy dodawa tre (wpisy w blogu, artykuy, strony ksiki) bez wczonego moduy Taxonomy, ale jego uruchomienie wzbogaca nasze moliwoci o kategoryzacj treci. Wczenie Upload pozwoli nam dodawa do treci zaczniki, a modu Content translation doda naszym wpisom jeszcze jeden wymiar — wersj jzykow.


Rozdzia 4. i Budowa witryny

115

Instalowanie nowych moduów Co jednak, jeli chcemy doda nowy modu? Operacja ta jest stosunkowo prosta. Wystarczy pobra archiwum moduu ze strony http://drupal.org/project/Modules, umieci rozpakowany katalog zawierajcy pliki w katalogu ./sites/all/modules, a nastpnie na stronie …/admin/build/modules odszuka nazw zaadowanego na serwer moduu i go wczy . Aby wywietli list wszystkich dostpnych moduów do aktualnie uywanej wersji Drupala, naley na stronie http://drupal.org/project/Modules skorzysta z filtra zawajcego wykaz do wybranej wersji, który znajdziemy w bloku Filter by compatibility (rysunek 4.31). Rysunek 4.31. Filtr wersji, do której wywietlane s moduy

List moemy nastpnie zawzi , korzystajc z wyszukiwania (blok Search modules), wyboru jednej z kategorii (blok Projects), a nastpnie posortowa j wedug jednego z kryteriów w bloku Sort by: Title (tytu), Creation date (data powstania projektu), Last release (ostatnie wydanie), Recent activity (projekty, w których dokonano zmian) czy te Usage statistics (liczba uytkowników danego moduu). Co dzieje si podczas instalacji moduu i co przez ni rozumiemy? Instalacja to proces, jaki zachodzi tak naprawd tylko przy pierwszym wczeniu pobranego moduu. Kady modu skada si z szeregu plików, a jednym z nich jest plik z rozszerzeniem install. Plik ten zawiera szereg funkcji wywoywanych przy wczaniu moduu — przede wszystkim ustawienie zmiennych systemowych oraz stworzenie wymaganej struktury w bazie danych. Jeli modu wyczymy, dane te nie s kasowane, dzieje si tak dopiero po wyinstalowaniu moduu. Dopóki tego nie zrobimy, ponowne wczenie moduu spowoduje tylko zmian jego statusu na „wczony”, a nie ponown jego instalacj.

Wersje moduów Schemat nazewnictwa wersji projektów (moduów, skórek, rdzenia) dostpnych na stronie drupal.org jest oparty o kilka zasad, spisanych na stronie http://drupal.org/handbook/ version-info. Po pierwsze — w danym momencie istniej dwie aktywnie wspierane gówne, stabilne wersje Drupala. W chwili pisania tej ksiki gówne wersje to Drupal 5 i Drupal 6. Co to znaczy, e wersja jest wspierana? W skrócie oznacza to, e w sytuacji wykrycia luki w bezpieczestwie lub krytycznego bdu s wydawane mae wersje — na przykad 6.1, 6.2 i tak dalej. Mae wersje mog niejako „przy okazji” zawiera szereg napraw


116

Drupal. Poznaj go z kadej strony

drobniejszych bdów, ale zasada ogólna jest taka, e wydawane s tylko, jeli zostanie opracowana ata naprawiajca jak luk bezpieczestwa. Co oznacza, e w danej chwili wspierane s dwie gówne wersje? W uproszczeniu oznacza to tyle, e po wydaniu Drupala 7 Drupal 5 przestanie by wydaniem wspieranym. Wersja Drupala, jak mamy zainstalowan na naszej witrynie, jest wic bazowym kryterium, jakim musimy si posugiwa , szukajc do niej rozszerze i skórek. Schemat wersjonowania tyche jest taki, e wszystkie projekty pasujce do Drupala 6 bd miay numer wersji zaczynajcy si od „6.x”. Przykadowo, na stronie moduu admin_menu, w czci Downloads, przy sekcji Recommended releases (czyli wydania rekomendowane) zobaczymy, e jest dostpny dla trzech wersji gównych Drupala (rysunek 4.32). Rysunek 4.32. Tabela z rekomendowanymi wydaniami moduu wyró nia si zielonym tem

Jak wida — wersja kadego moduu skada si ze zoenia wersji gównej Drupala (np. 6.x) oraz wersji samego moduu. Zatem z rysunku 4.42 wynika, e modu administration menu moemy pobra i zainstalowa w wersji 1.5, przeznaczonej dla Drupala 6, oraz wersjach 2.8 i 1.4, przeznaczonych odpowiednio dla Drupala 5.x i 4.7.x. To jednak nie koniec schematu. Nieco niej znajdziemy sekcje z wersjami „niezalecanymi”, które mog zawiera róne przyrostki, takie jak „alpha” czy „dev” (rysunek 4.33). Rysunek 4.33. Reszta wyda

oznaczona jest innymi kolorami, najmniej stabilne maj kolor czerwony

Zauwaymy te, e do Drupala 6 istniej dwie róne „linie” moduu, czyli wersje 1.x i 3.x. Jak to rozumie ? Najczstszym wyjanieniem takiego stanu jest fakt, e programici rozwijajcy modu w wersji 1.x postanowili rozpocz prac nad wersj zawie-


Rozdzia 4. i Budowa witryny

117

rajc znaczne zmiany w kodzie. W tym celu pozostawili wersj 1.x jako „stabiln”, czyli rekomendowan dla typowego uytkownika, oraz utworzyli lini 3.x, któr moemy pobra w wersjach 6.x-3.x-dev i 7.x-3.x-dev, a wic niekoniecznie stabilnych, w stanie takim, jaki pozostawi ostatni programista, zapisujc zmiany do CVS. Mamy te wersj 6.x-3.0-alpha3, co naley czyta jako wersj do testowania, któr (najlepiej po dokadnym przeczytaniu komentarzy do wydania, dostpnych pod linkiem Notes) moemy miao zainstalowa na wasn odpowiedzialno . Z pewnoci natkniemy si jeszcze na inne przyrostki, a mianowicie beta i rc, które oznaczaj odpowiednio wersj beta (nieco bardziej stabiln ni alpha) oraz release candidate (czyli kandydata do wydania stabilnego). Kady z tych przyrostków moe mie numer — na przykad 6.x-3.x-rc4 bdzie oznaczao czwarte wydanie kandydujce do bycia stabiln trzeci wersj moduu przeznaczonego do wspópracy z Drupalem 6.

Strony moduów (projektów) Sama instalacja moduu to jednak niewielki problem. Najpierw powinnimy w ogóle go znale i wybra waciw wersj. Suy do tego zaawansowany system wersjonowania (oparty o integracj z CVS), ledzenia bdów i generowania „stron startowych” dla kadego projektu, dostpny w ramach witryny drupal.org. System ten jest de facto zbiorem moduów do Drupala, których centraln czci jest modu Project. Moemy go sobie pobra i uruchomi dla wasnych potrzeb. Co prawda zestaw ten jest bardzo mocno dopasowany do wymaga witryny drupal.org, ale warto zwróci uwag, e twórcy Drupala stworzyli na bazie swojego dziecka zaawansowany system o funkcjach porównywalnych ze znanym projektem Sourceforge. Czy nie jest to wietny dowód elastycznoci i rozszerzalnoci tego narzdzia?

System, jaki zbudowali twórcy witryny drupal.org, narzuca szereg wymaga co do nazewnictwa, pooenia plików i dostpu do narzdzia wspomagajcego wersjonowanie — CVS. Poniewa twórcy sami stosuj si do schematu, proponuj zacz poznawanie go od najwaniejszego projektu, jakim jest sam rdze Drupala. Przejdmy na „stron startow” projektu Drupal — http://drupal.org/project/Drupal. Kady modu i kada skórka, jakie moemy pobra na drupal.org, posiada podobn stron, zawierajc szereg elementów pozwalajcych zapozna si z projektem. Do najwaniejszych elementów mona zaliczy obszary zaznaczone na rysunku (rysunek 4.34). 1. Metryczka z autorem i dat utworzenia strony projektu. 2. Oznaczenie kategorii, do której zalicza si projekt (moe nalee do kilku). 3. Cz opisowa, zawierajca nie tylko ogólny opis funkcji, jakie zawiera

w sobie projekt, ale równie czsto róne uwagi dotyczce niestandardowych wymaga (inne moduy, wersje PHP). 4. Sekcja Downloads, w której znajdziemy poszczególne wydania projektu.

Pierwsz grup s wydania rekomendowane, czyli najstabilniejsze. 5. Druga grupa plików do pobrania prezentuje wydania w wersjach rozwojowych

(alfa, beta, rc).


118

Drupal. Poznaj go z kadej strony

Rysunek 4.34. Obszary strony z przykadowym projektem utrzymywanym na witrynie drupal.org 6. Odnoniki do stron, z jakimi warto si zapozna . 7. Lista programistów biorcych udzia w rozwoju projektu, wraz z ich aktywnoci

— liczb wysanych do CVS zmian w kodzie (commits), pierwszym i ostatnim zapisem zmian do CVS. 8. Wyszukiwarka zgoszonych spraw w systemie ledzenia bdów oraz

podsumowanie, ile i jakiego typu sprawy byy zgaszane. 9. Lista ostatnio zgoszonych spraw w systemie ledzenia bdów.

Przewinicie strony z moduem w dó uwidoczni kolejny zestaw opcji, który moe róni si nieznacznie dla poszczególnych projektów (rysunek 4.35). Rysunek 4.35. Przykadowe linki, jakie mo na spotka przy ka dym z projektów na drupal.org


Rozdzia 4. i Budowa witryny

119

Powysze linki prowadz do najwaniejszych zasobów dodatkowych, czyli: Resources (zasoby)  Read license (czytaj licencj),  Read complete log of changes (przejrzyj cay dziennik zmian),  Try out a demonstration (wypróbuj wersj demonstracyjn),  Look at screenshots (zobacz ekrany — jak wyglda projekt),  View usage statistics (zobacz statystyki uycia projektu).

Development (rozwój)  View pending patches (przejrzyj oczekujce atki),  Browse the CVS repository (przejrzyj repozytorium CVS),  View CVS messages (zobacz komunikaty CVS),  Report a security issue (zgo problem z bezpieczestwem).

Z punktu widzenia wyboru moduu, szczególnie kiedy odszukamy kilka podobnych do siebie, warto zweryfikowa , czy moduy s obecnie mocno rozwijane, czy moe okres ich wietnoci ju min. Pomocne mog by w tym celu trzy linki: View usage statistics (odnonik widoczny na rysunku 4.35) pokazujcy dla danego moduu dane zbierane co tydzie ze wszystkich stron raportujcych do drupal.org list uywanych moduów. Da nam to ogólne pojcie o wykorzystaniu projektu (z podziaem na wersje) na przestrzeni ostatnich tygodni (rysunek 4.36). Rysunek 4.36. Statystyka iloci stron wykorzystujcych dany projekt

Odnonik View all committers (odnonik widoczny na rysunku 4.34 w obszarze numer 7), który prowadzi do strony z pen list programistów danego projektu. Czsto pozwala zorientowa si, czy projekt jest „ywy” i czy jego rozwój nie zatrzyma si kilka(nacie) miesicy temu (rysunek 4.37).


120

Drupal. Poznaj go z kadej strony

Rysunek 4.37. Wykaz programistów zapisujcych zmiany w kodzie do CVS danego projektu

Issue statistics (odnonik widoczny na rysunku 4.34 w obszarze numer 8), gdzie dowiemy si, ile spraw w systemie ledzenia bdów zgoszono ogóem i w ostatnim miesicu (Issue activity), a take jaki by redni czas obsugi spraw w danej kategorii (Average lifetime). Te dane równie mog by pomocne w oszacowaniu, czy modu jest aktywnie uywany, naprawiany i rozwijany (rysunek 4.38). Rysunek 4.38. Statystyki obsugi zgosze do danego projektu

Wsparcie do moduów Drupal.org, a konkretnie dzia zarzdzajcy projektami, jest przy okazji zaawansowan platform ledzenia bdów, podobn do znanej z projektów fundacji Mozilla — Bugzilla. Moemy z jej pomoc zarówno wyszukiwa rozwizania naszych problemów, jak i pomóc innym, odpowiadajc na ich zapytania. W sytuacji kiedy mamy problem z moduem, powinnimy zacz od kliknicia Advanced search w bloku Issues for… na stronie startowej moduu. Prowadzi on do zaawansowanego formularza, dziki któremu wyszukamy zgoszone sprawy dotyczce projektu — zarówno bdy, propozycje zmian, jak i proby o wsparcie (rysunek 4.39).


Rozdzia 4. i Budowa witryny

121

Rysunek 4.39. Zaawansowane wyszukiwanie w zgoszeniach dotyczcych projektów

Po wyszukaniu zobaczymy list spraw pasujcych do zadanych kryteriów — w wielu z nich znajdziemy wrcz gotowe kawaki kodu PHP, tak zwane atki (patch), które rozwizuj jaki problem. Usprawnienia takie, po sprawdzeniu i ewentualnym poprawieniu kodu, czsto trafiaj do kolejnej wersji moduu.

Przestrze nazw Kady projekt utrzymywany na drupal.org ma przydzielon tak zwan przestrze nazw, czyli unikalny cig znaków stosowany do oznaczenia projektu, który bdzie przewija si w wielu miejscach — na przykad jako nazwa katalogu z rozpakowanym moduem, arkusza stylów skórki czy pliku .info zawierajcego informacje o module. Przykadowo, pobierany w rozdziale 3. „Pierwsze kroki po instalacji” modu Administration Menu ma do swojej dyspozycji cig znaków admin_menu, który odnajdziemy w bardzo wielu miejscach. Pierwszym z nich bdzie ostatnia cz adresu, pod którym znajdziemy stron projektu w ramach witryny drupal.org — http://drupal.org/project/ admin_menu.

Aktualizacja moduów W trakcie rozwijania witryny nieraz bdziemy musieli wykona operacj aktualizacji moduu. Stanie si tak, jeli postanowimy zmieni jego wersj na nowsz — bo zawiera ona nowe funkcje, napraw bdów czy atk bezpieczestwa. Proces aktualizacji moemy podzieli na kilka kroków, które powinny by zawsze wykonane, jeli chcemy unikn kopotów: 1. Ustawiamy stron w tryb przerwy technicznej. 2. Czycimy wszelkie pamici podrczne. 3. Wykonujemy kopi zapasow plików i danych.


122

Drupal. Poznaj go z kadej strony 4. Upewniamy si, e jestemy zalogowani jako administrator (uytkownik o identyfikatorze 1). 5. Czytamy dokumentacj dostarczon do aktualizowanego moduu. Szczególnie

wane jest przeczytanie plików README.txt, INSTALL.txt czy innych, z których nazwy wynika, e mog nie wan informacj (np. READ-THIS-BEFOREUPGRADE!!!.txt). 6. Czytamy not, jak programici zamiecili przy pobranym przez nas wydaniu

(czasem nic tam nie ma, czasem znajdziemy list usunitych bdów, czasem jednak bardzo wane informacje o procesie aktualizacji). 7. Pobieramy pliki z moduem. 8. Nadpisujemy stare pliki moduu nowymi, pobranymi w punkcie 7. 9. Uruchamiamy skrypt …/update.php i wykonujemy proces aktualizacji. 10. Notujemy ewentualne bdy. 11. Sprawdzamy, czy wszystko dziaa. 12. Wyczamy tryb przerwy technicznej.

W 95% przypadków aktualizacja moduu w obrbie danej wersji (np. z wersji 6.x-1.1 na 6.x-1.5) nie niesie adnych zagroe i niespodzianek i trwa, po wykonaniu kroków 1 - 8, kilka sekund. Przy migracji na wysz lini danego moduu (np. z wersji 6.x-1.1 na 6.x-2.0, czy wrcz 7.x-1.0) musimy ju bardzo uwanie przeczyta wszystkie dostarczone dokumenty, wpisy na stronie moduu, noty przy wydaniach. Bardzo czsto proces aktualizacji jest moliwy, ale tylko z ostatniej wersji „starej” linii, tak wic zanim wrzucimy pliki nowej gazi, musimy dostosowa swoj instalacj i wgra najnowsz wersj moduu z linii, któr chcemy porzuci . Czym jest tak naprawd aktualizacja? Proces ten niewiele róni si od instalacji. Jeli jest taka potrzeba, tworzone s nowe kolumny bd tabele w bazie danych, wykonuj si operacje modyfikacji danych w istniejcych tabelach bd zmiany atrybutów pól i tabel — na przykad dodanie indeksu. Dlaczego system aktualizacji jest tak niezawodny? Twórcy moduów s zobowizani do cisego wpasowania si w schemat i utrzymywania cieek aktualizacyjnych, czyli specjalnych funkcji w pliku o rozszerzeniu .install, które wykonuj odpowiednie zmiany w bazie danych, dla kadej nowej wersji. Podczas pracy ze stron …/update.php wykonywane jest sprawdzenie, jak wersj moduu mamy zainstalowan, a jaka jest wgrana na serwer. Jeli okae si, e nasza wersja to 6.x-1.0 (informacje o tym s zapisane w tabeli system), a na serwerze s pliki z wersj 6.x-1.15, zostan wykonane instrukcje z pliku install dla wszystkich porednich wersji, a do obecnej.

Odinstalowywanie moduów Na gównej stronie z list dostpnych moduów jest te niepozorna zakadka Odinstaluj. Po jej klikniciu zostaniemy zabrani na stron z list moduów, które moemy odinstalowa . Jak wspomniano wczeniej, odinstalowanie moduu wie si z wykonaniem


Rozdzia 4. i Budowa witryny

123

specjalnej funkcji z pliku install — najczciej usuniciem zmiennych systemowych oraz stworzonych na potrzeby moduu tabel w bazie danych. Operacja ta jest oczywicie nieodwracalna — chyba e mamy kopie zapasowe naszej bazy danych. Czasem jednak taki krok moe by wymagany i przydatny, szczególnie jeli przestalimy uywa jakiego moduu, a teraz chcemy zacz z niego korzysta , ale zaley nam na zupenie wieym starcie, bez starych ustawie konfiguracyjnych, które mogy przelee w bazie danych nawet po skasowaniu plików moduu z dysku serwera czy wymianie Drupala z wersji 5 na 6.

Skórki …/admin/build/themes Skórki to zestawy plików, dziki którym nasza strona, zachowujc struktur nawigacyjn i zawarto , moe zmienia wygld jak kameleon. Wystrój witryny — pliki graficzne te, logo, ikon, style czcionek, obramowania — mona zmieni za pomoc kilku klikni , ustawiajc inn skórk. Efekt mona porówna do zmiany wystawy sklepowej przy pozostawieniu tych samych produktów. Naszym produktem jest zawarto (tre wpisów, nawigacja, formularze), a wystaw jest projekt graficzny.

Dodawanie skórek Podobnie jak moduy, moemy dodawa do systemu nowe skórki. Operacja ta polega na pobraniu archiwum z plikami skórki i rozpakowaniu go do waciwego folderu — w najprostszej sytuacji bdzie to ./sites/all/themes. Po umieszczeniu plików we waciwym miejscu zobaczymy nowy wpis na wykazie dostpnych skórek. Teraz wystarczy j wczy , zaznaczajc pole w kolumnie Wczony, i wybra jako domyln, aby od razu cieszy si z nowego wygldu.

Konfiguracja skórek System skórek jest w Drupalu bardzo rozbudowany i stwarza projektantom ogromne moliwoci. Na szczcie za pomoc interfejsu administracyjnego jestemy w stanie skonfigurowa wikszo typowych opcji, bez schodzenia w pliki skórki. Przyjrzyjmy si, co to za opcje. Po wywietleniu gównej strony tego dziau zobaczymy dostpne skórki, czyli te, których pliki znajduj si w katalogach ./themes, ./sites/all/themes, ./sites/default/themes i katalogach dedykowanych dla poszczególnych witryn (jeli uywamy trybu multisite, omówionego w rozdziale 14. „Uruchomienie witryny”, w punkcie „Drupal w trybie wielowitrynowym (multisite)”).


124

Drupal. Poznaj go z kadej strony

Wykaz ten prezentuje nam miniaturk, nazw i opis skórki, wersj, moliwo ustawienia atrybutu Wczony, zaznaczenia skórki domylnej i konfiguracji wczonych skórek (rysunek 4.40). Rysunek 4.40. Dzia zarzdzania — lista dostpnych skórek

W danej chwili moemy mie kilka wczonych skórek, ale tylko jedna moe by domylna — wywietlana niezalogowanym i nowym uytkownikom. Po instalacji Drupala jedyn wczon skórk jest Garland. Jeli wczymy kolejne, umoliwimy uytkownikom, którym nadamy uprawnienie „wybieranie skórki”, wybór skórki, jaka im najbardziej odpowiada. Wyboru sporód wczonych skórek bd mogli dokona na stronie edycji swojego profilu (rysunek 4.41). Rysunek 4.41. Wybór skórki przez u ytkownika

Ustawienia globalne skórek …/admin/build/themes/settings Konfiguracj skórek moemy podzieli na ustawienia globalne i ustawienia dla konkretnej skórki. Te pierwsze bd stosowane do wszystkich uruchomionych skórek,


Rozdzia 4. i Budowa witryny

125

dopóki nie zdecydujemy si skonfigurowa której z nich wprost. Ustawienia globalne zawieraj tylko opcje, które implementowane s w kadej zbudowanej wedug standardu skórce Drupala. Moemy wic zdecydowa , czy skórka ma wywietla poszczególne dane:  logo,  nazwa witryny,  haso strony,  misja strony,  portrety uytkowników w treci wpisów,  portrety uytkowników w odpowiedziach,  pole wyszukiwania,  ikona skrótu,  odnoniki podstawowe,  odnoniki dodatkowe.

Ponadto moemy zdecydowa , czy skórka ma wywietla informacje o autorze i dacie dodania wpisu dla poszczególnych rodzajów zawartoci. Przy zaoeniu, e wczylimy wszystkie moduy z podstawowej dystrybucji, bdzie to wykaz, jaki prezentuje rysunek 4.42. Rysunek 4.42. Wywietlanie informacji o autorze i dacie mo na zdefiniowa osobno dla ka dego z rodzajów zawartoci

Powysze opcje bd przeniesione na strony konfiguracji wszystkich aktywnych skórek, pod warunkiem e dana opcja nie bya tam wczeniej konfigurowana. Nieco niej moemy skorzysta z prostego interfejsu do wskazania bd zaadowania na serwer grafiki na logo i ikon skrótu. Oba formularze pozwalaj uy materiaów dostarczonych ze skórk, wskaza ciek do pliku z grafik albo wgra go za pomoc dedykowanego pola (rysunek 4.43).


126

Drupal. Poznaj go z kadej strony

Rysunek 4.43. Konfiguracja logo u ywanego w skórce

Konfiguracja przykadowej skórki — Garland Ustawienia globalne nie s moe imponujce, ale poszczególne wersje wystroju witryny mog zawiera zdecydowanie bogatsze opcje, czego dobrym przykadem jest skórka Garland. Po przejciu na konfiguracj tej wanie skóry widzimy dodatkow sekcj pod tytuem Paleta kolorów. Dziki umieszczonym tam opcjom moemy wybra jeden z dostpnych schematów kolorystycznych albo skomponowa wasny. Co wicej, przed zatwierdzeniem zmian schematu mamy biecy podgld na to, jak bdzie prezentowaa si nasza strona w wybranych kolorach (rysunek 4.44). Rysunek 4.44. Przybornik kolorów, lista predefiniowanych wersji kolorystycznych i podgld zmian na ywo w skórce Garland


Rozdzia 4. i Budowa witryny

127

Poniej sekcji Paleta kolorów znajdziemy standardowe opcje, jakie moglimy skonfigurowa w ustawieniach globalnych. Jeli jednak zmienimy któr z nich (na przykad wyczymy wywietlanie logo), to ustawienia globalne przestan wpywa na t opcj, dopóki nie uyjemy przycisku Przywró domylne wartoci na samym dole strony konfiguracji danej skórki. Po klikniciu tego przycisku wszystkie standardowe opcje s ustawiane tak jak na zakadce Ustawienia globalne i dopóki nie zdecydujemy si ponownie konfigurowa skórki wprost, zmiany ustawie globalnych bd przenoszone do poszczególnych skórek. Warto odnotowa , e opcja Przywró domylne wartoci nie tylko przywróci ustawienia globalne i ich synchronizacj, ale te spowoduje przestawienie konfiguracji skórki do jej wyjciowych parametrów, czyli takich jak wieo po zainstalowaniu skórki.

Skórka dziau zarzdzania Konfiguracja Drupala pozwala nam ustawi inn skórk dla wywietlania stron, które s czci panelu administracyjnego. Takie rozwizanie ma kilka zalet, z których bodaj najwiksz jest taka, e jeli zmienimy skórk domyln na tak, która nie dziaa waciwie i powoduje cakowit niedostpno serwisu, to nie bdziemy mieli kopotu z jej zmian. Wystarczy pamita , e skórk zmienimy pod adresem …/admin/build/themes. Poniewa tej operacji dokonamy na stronie dziau zarzdzania, dla którego wybralimy inn ni uszkodzona skórk, to nie bdzie kopotu z wycofaniem zmiany. Wyboru skórki dziau zarzdzania dokonamy pod adresem …/admin/settings/admin.

Tumaczenie interfejsu …/admin/build/translate Drupal zosta napisany w sposób umoliwiajcy atw zmian jzyka interfejsu. Oznacza to, e wszystkie napisy (etykiety pól, listy wartoci, komunikaty, tekst pomocy), jakie pokazywane s uytkownikowi, moemy przetumaczy . Napisy, jakie pokazywane s w rónych miejscach systemu, s przechowywane w bazie danych, a specjalny mechanizm (obsugiwany przez modu Locale) pozwala zapisa w tym miejscu równie ich tumaczenia. W ramach jednej witryny moemy wic mie kilka wersji jzykowych interfejsu. Nie naley myli interfejsu z zawartoci (treci) wpisów. Tumaczenie napisów nie obejmuje bowiem tumaczenia treci. Ta operacja jest równie moliwa, ale obsugiwana jest przez inny modu (Content translation), który opisany bdzie w rozdziale 6. „Konfiguracja witryny” w punkcie „Jzyki”.


128

Drupal. Poznaj go z kadej strony

Jak sprawdzi, w jakim stopniu nasz interfejs jest zlokalizowany Na stronie gównej (…/admin/build/translate) jest informacja o zainstalowanych jzykach oraz o kompletnoci tumaczenia. Jeli przy jzyku, który nas interesuje, znajduje si warto nisza ni 100%, oznacza to, e istniej w systemie cigi znaków, które nie doczekay si tumaczenia na dany jzyk. Aby uzupeni braki w napisach, moemy posuy si narzdziami na zakadkach Szukaj, Importuj i Eksportuj. Pierwsza opcja pozwala nam wyszuka dowolny napis i doda bd edytowa jego tumaczenie. Drugi z odnoników pozwala na zaimportowanie tumaczenia. Trzeci suy do eksportowania wszystkich napisów do pliku .po, który moemy nastpnie wygodnie edytowa z uyciem notatnika systemowego bd dedykowanego narzdzia, takiego jak POEdit.

Jak zdoby pliki .po Do niedawna proces pozyskiwania plików .po by zagmatwany i niejasny. Szukao si ich albo na stronach z lokalnym wsparciem, albo w katalogach z pobranym moduem, albo wykonywao si samemu. Tumaczenia byy zazwyczaj autorskie i nie podlegay moderacji, która dbaaby o ich wzajemn korelacj i konsekwencj w tumaczeniu terminologii. Problemy te skoczyy si po uruchomieniu serwera http://localize.drupal.org. Jest to centralna platforma dla tumaczy interfejsu Drupala. Umoliwia grupow prac nad lokalizacj moduów i samego rdzenia. Aby skorzysta z umieszczanych tam tumacze, naley zarejestrowa si na drupal.org, a nastpnie wykona instrukcj: 1. Logujemy si do http://localize.drupal.org (z uyciem konta zaoonego na

drupal.org). 2. Przechodzimy na http://localize.drupal.org/translate/languages/pl/export. 3. Wpisujemy cz nazwy moduu (np. View), z podpowiedzi wybieramy

interesujcy nas modu (np. Views). 4. Wybieramy wersj moduu, jaki mamy zainstalowany. 5. Zostawiamy domyln opcj z grupy Type. 6. Zmieniamy Packaging na All in one file, tak aby pobra tumaczenie

w jednym pliku. 7. Reszta opcji bez zmian.

Pobrane pliki moemy od razu zaimportowa do swojego serwisu.


Rozdzia 4. i Budowa witryny

129

Jak zaimportowa plik z tumaczeniem do naszej strony Aby zaimportowa plik tumaczenia, udajemy si na zakadk Importuj (…/admin/build/ translate/import) i w polu Plik jzyka: wskazujemy zbiór z naszego komputera. Wybieramy, do jakiego jzyka chcemy zaimportowa napisy, oraz decydujemy, czy import ma nadpisa ju istniejce tumaczenia, czy tylko doda te, które wystpuj w pliku, a w naszej witrynie figuruj jako zupenie nieprzetumaczone (zalecana jest ta druga opcja, chyba e wiadomie chcemy nadpisa istniejce napisy). Import pliku z tumaczeniem moe by procesem dugotrwaym i w niektórych przypadkach (zalenie od konfiguracji PHP na serwerze) zako czy si niepowodzeniem. Najczstsze komunikaty to bd przekroczenia czasu wykonywania si skryptu bd bd braku pliku. Przypadki te zostan omówione w rozdziale 16. „Typowe problemy”.

Wyszukiwanie i tumaczenie pojedynczych napisów Opcja Szukaj to narzdzie do odnajdywania cigów znaków. Przykadowo, jeli widzimy w systemie nieprzetumaczony tekst, moemy skopiowa go i wpisa w wyszukiwark na tej stronie. System (jeli zostawimy domylne opcje wyszukiwania) znajdzie nam wszystkie wystpienia wpisanego cigu znaków — w kadym jzyku, jaki jest zainstalowany w witrynie. Jeli wyszukiwarka znalaza jakie pasujce do kryteriów cigi znaków, pojawi si nam ich wykaz, wraz z oznaczeniem, czy dany cig zosta przetumaczony. Jeli tak, jego kod w kolumnie Jzyki nie bdzie przekrelony. Dla przykadu, sówko node po wyszukaniu w witrynie z uruchomionymi jzykami polskim i niemieckim i po imporcie polskiego tumaczenia zwraca kilkadziesit wyników z przekrelonym kodem de i nieprzekrelonym pl (rysunek 4.45). Rysunek 4.45. Wyszukany napis i wersje jzykowe, dla których zosta przetumaczony

Jeli zechcemy przetumaczy wyszukany cig znaków (bd edytowa jego istniejce tumaczenie), klikamy Edytuj, co spowoduje wywietlenie formularza z oryginalnym wyraeniem i polami do wprowadzenia bd edycji jego tumacze (rysunek 4.46).


130

Drupal. Poznaj go z kadej strony

Rysunek 4.46. Tumaczenie napisu

Po wprowadzeniu i zapisaniu tumaczenia bdzie ono natychmiast dostpne w systemie i widoczne dla odwiedzajcych witryn, którzy wybrali w konfiguracji swojego profilu odpowiedni wersj jzykow (bd zostaa im ona wywietlona na podstawie adresu, subdomeny czy ustawie przegldarki). Opisane powyej opcje s bardzo przydatne, kiedy chcemy przetumaczy pojedynczy cig znaków bd ich niewielk liczb. Jeli zabieramy si do tumaczenia duego obszaru — na przykad caego moduu — zdecydowanie polecam inne metody, na przykad przez opisane niej pliki .po bd (wedug mnie najwygodniejsze, bo bez odrywania napisów od kontekstu) tumaczenie z wykorzystaniem moduu l10n client (http://drupal.org/project/l10n_client). Jeli interesuje Ci, jak dziaa modu l10n client, zapraszam do obejrzenia pokazu na jego temat na stronie http:// elimu.pl/drupal-6-wygodne-tlumaczenie.

Zmienne w napisach W oryginalnych napisach stosowane s bardzo czsto specjalne cigi znaków, których podczas tumaczenia nie powinno si zmienia . S to zmienne przechowujce jakie dane, które mog zmienia si w czasie. W tabeli 4.2 przedstawiem bardzo typowe przypadki. Umiejtno poprawnego przetumaczenia napisów, bez uszkodzenia zmiennych, jakie zostay uyte w oryginalnej wersji, jest bardzo przydatna, jeli sami tumaczymy interfejs uytkownika. Napisy bez tych zmiennych bd oczywicie dziaa , ale mog utraci swój pierwotny sens (i zazwyczaj tak si dzieje). atwo zauway , e zmienne s poprzedzane rónymi znakami. Czasem jest to %, a czasem &, kiedy indziej !. Nie wynika to z braku konsekwencji czy przypadku. Jeli nie bdziemy tworzy moduów do Drupala, to niekoniecznie musimy zna rónic midzy tymi trzema sposobami umieszczania zmiennych w acuchach tumacze, ale warto wiedzie , e takowe istniej. Nie wchodzc w szczegóy, zmienne s przetwarzane na trzy sposoby:


Rozdzia 4. i Budowa witryny

131

Tabela 4.2. Przykady zmiennych wystpujcych w napisach Oryginalny napis

Tumaczenie polskie

Znaczenie zmiennych

!name cannot be longer than %max characters but is currently %length characters long.

Nazwa !name nie moe si skada z wicej ni %max znaków, a w tej chwili ma %length znaków.

!name — nazwa pola w wypenianym formularzu. %max — maksymalna liczba znaków w polu formularza. %length — liczba wprowadzonych

znaków. Stosowane jako ogólny komunikat bdu w formularzach. Cron has not run. Please visit the <a href="@status">status report</a> for more information.

Zadania cron nie zostay wykonane. Wicej informacji w <ahref="@status">raporcie o stanie witryny</a>.

@status — link (URL) do strony z raportem o statusie witryny.

!datetime — !username

!datetime — !username

Ekstremalny przypadek napisu, który skada si z samych zmiennych poczonych mylnikiem. Wywietlany w segmentach, które maj w skórce ustawione pokazywanie informacji o dacie i autorze wpisu.

!name sent a message using the contact form at !form.

Uytkownik !name wysa wiadomo, korzystajc z formularza kontaktowego na stronie !form.

!name — nazwa uytkownika, który wypeni formularz kontaktowy !form — nieco mylco nazwana zmienna, przechowujca adres strony, na której zosta wypeniony formularz.

Uywane w treci wiadomoci e-mail powiadamiajcej odbiorc o wypenieniu formularza kontaktowego.  Wszystkie zmienne poprzedzone znakiem @ bd przed wywietleniem przekazane do funkcji check_plain celem sprawdzenia, czy tekst skada si

ze znaków zakodowanych utf8, a nastpnie zamiany znaków specjalnych na encje HTML (zgodnie z opisem funkcji na http://api.drupal.org/api/ function/check_plain).  Wszystkie zmienne poprzedzone % s traktowane jak te z @, ale dodatkowo otaczane znacznikami <em>.  Wszystkie zmienne poprzedzone ! s wywietlane bez adnego sprawdzenia,

co jest potencjalnie gronym sposobem, jeli nie mamy 100% pewnoci, e zostay ju na wczeniejszym etapie sprawdzone.

Eksport i obróbka plików .po Jeli chcemy przetumaczy wiksz liczb napisów, wyej opisany sposób (tumaczenie pojedynczych fraz przez interfejs Drupala) nie jest optymalny, jeli chodzi o szybko czy wygod. Majc do zlokalizowania cay modu, na który nierzadko


132

Drupal. Poznaj go z kadej strony

skada si kilkaset napisów, warto sign do metody eksportowania i importowania plików .po lub .pot — w których umieszczone s wszystkie napisy obecne na dany moment w naszej instalacji. Pliki .po s atwe do obróbki zarówno w zwykym edytorze tekstowym, jak i w dedykowanych programach — na przykad dostpnym na platform Windows poEdit. Na stronie Eksport moemy pobra plik w dwóch formatach. Sekcja Eksportowanie tumaczenia zwróci nam napisy w formacie Gettext Portable Object (rozszerzenie .po), a Eksportowanie szablonu w formacie szablonu Gettext Portable Object (rozszerzenie .pot). Jaka jest rónica midzy tymi plikami? Plik .pot to szablon zawierajcy tylko angielskie teksty i miejsce na ich przetumaczenie, nie zawiera jednak samych tumacze. Jest wic idealnym materiaem na cakiem nowe, niezawierajce obcych przekadów tumaczenie. Plik .po dla odmiany bdzie zawiera zarówno angielskie, jak i polskie napisy, o ile oczywicie mamy ju w serwisie jakie tumaczenia, które zaimportowalimy bd wykonalimy samodzielnie. Jeli chcemy przetumaczy jaki modu zewntrzny, warto przeszuka jego katalog CVS w poszukiwaniu szablonu .pot. Link do katalogu CVS kadego moduu znajdziemy na jego stronie startowej. Znajc unikaln nazw moduu (nadan mu przestrze nazewnicz, przykadowo <nazwa>), moemy od razu uda si pod adres http://drupalcode.org/viewvc/drupal/contributions/modules/<nazwa>. Jeli nie znajdziemy pliku .pot (zazwyczaj umieszczany jest w katalogu translations), moemy go wygenerowa sami. Aby to zrobi, naley zainstalowa specjalny modu o nazwie Translation template extractor, który znajdziemy pod adresem http:// drupal.org/project/potx. Z jego pomoc po zainstalowaniu moduu do tumaczenia wyeksportujemy szablon do tumaczenia.

Struktura plików .po Pliki .po i .pot posiadaj prost struktur, dziki czemu tumaczenie moemy wykona nawet za pomoc najprostszego edytora tekstowego obsugujcego kodowanie UTF-8. W plikach tych wyrónia si cz nagówkow — poprzedzon zestawem dwóch pustych fraz: msgid "" msgstr ""

po których znajdziemy definicj atrybutów pliku, takich jak autor tumaczenia, data ostatniej zmiany, kodowanie znaków czy nazwa tumaczonego projektu. Po nagówku nastpuje cz zawierajca waciwe napisy wraz z tumaczeniami, umieszczone w zestawach:  komentarz (poprzedzony znakiem #, w plikach generowanych przez Drupal

bdzie tam informacja, z którego moduu pochodzi napis);


Rozdzia 4. i Budowa witryny

133

 napis oryginalny (umieszczony w cudzysowach poprzedzonych kodem msgid);  napis przetumaczony (umieszczony w cudzysowach poprzedzonych kodem msgstr).

Rzut oka na plik .po powinien wyjani wiele wtpliwoci, zobaczmy wic przykadowe tumaczenia napisów (tabela 4.3). Tabela 4.3. Przykadowe tumaczenia, jakie znajdziemy w plikach .po L.p.

Fragment pliku .po

Komentarz

1

#:

Najprostszy przypadek tumaczenia — zestaw msgid i msgstr.

modules/node/node.module:2555

msgid "Remove post from front page" msgstr "Usu ze strony gównej"

2

#:

modules/node/node.module:2635

msgid "Promoted @type %title to front page." msgstr "Wpis %title (@type) umieszczono na stronie gównej."

3

#: modules/poll/poll-bar.tpl.php:25 modules/poll/poll.pages.inc:20 msgid "1 vote"

Tumaczenie zawierajce zmienne @type (rodzaj zawartoci) oraz %title (tytu wpisu). Tumaczenie zawierajce formy mnogie, zalene od liczby, jaka znajduje si w zmiennej @count.

msgid_plural "@count votes" msgstr[0] "1 gos" msgstr[1] "@count gosy" msgstr[2] "@count gosów"

4

#: /drupal/node/add msgid "" "<em>Strona</em>, podobna w formie do <em>artykuu</em>, suy do " "umieszczania informacji, które rzadko s aktualizowane, na przykad "

Przykad zestawu, gdzie po sowie msgid wystpuje kilka wierszy z zawartoci w cudzysowach. Taka sama konstrukcja zachowana jest w tumaczeniu. Wida równie znaki ucieczkowe.

"stron typu \"O nas\". Domylne ustawienia <em>strony</em> nie " "pozwalaj na umieszczanie odpowiedzi ani na publikacj na stronie " "gównej." msgstr ""

W trzecim przykadzie wida tak zwane znaki ucieczki. Stosuje si je, aby w napisie wywietlanym uytkownikowi umieci znak cudzysowu. W tym celu znak cudzysowu musimy poprzedzi znakiem \, tak aby silnik gettext nie uzna cudzysowu za koniec danej frazy. Podobnie rzecz ma si z now lini — aby zawrze w napisie nowy wiersz, musimy wstawi kod sterujcy \n.


134

Drupal. Poznaj go z kadej strony

Formua liczby mnogiej Drupal, a dokadniej mechanizm gettext, który wykorzystano w Drupalu, obsuguje liczby mnogie, których zasady s róne dla rónych jzyków. Dziki temu moemy poprawnie przetumaczy komunikat, w którym wystpuje zmienna przyjmujca posta liczby, na przykad „Oddano 1 gos”, „Oddano 2 gosy”, „Oddano 10 gosów”. Aby moliwe byo obsuenie takich form, w pliku .po musimy przede wszystkim umieci definicj form mnogich waciw dla jzyka, na który tumaczymy. Dla polskiego bdzie to definicja (za http://translate.sourceforge.net/wiki/l10n/pluralforms#p): "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"

Definicj tak umieszczamy w czci nagówkowej pliku, zastpujc t, która znajduje si w wygenerowanym pliku .po lub .pot. Zgodnie z dokumentacj gettext (http://www.gnu.org/software/hello/manual/gettext/ Plural-forms.html) mamy w przypadku naszego jzyka tylko trzy przypadki do obsuenia:  1 plik,  2, 3, 4 pliki,  5 – 21 plików,  22 – 24 pliki,  25 – 31 plików,  …i tak dalej.

Zatem dla kadego napisu majcego „obsuy ” liczby mnogie musimy dostarczy trzy wersje tumaczenia, jak w przykadzie z tabeli 4.3, pozycja 3: #: modules/poll/poll-bar.tpl.php:25 modules/poll/poll.pages.inc:20 msgid "1 vote" msgid_plural "@count votes" msgstr[0] "1 gos" msgstr[1] "@count gosy" msgstr[2] "@count gosów"

Jak wida , Anglicy maj prociej — albo 1 gos, albo wiele gosów. My mamy jeszcze 2 – 4, 22 – 24, 32 – 34 (i tak dalej) gosy, std zamiast jednej formy mnogiej musimy wprowadzi w pliku zawierajcym tumaczenie dwa przypadki.

Wyzwalacze …/admin/build/trigger/node Drupal 6 posiada wbudowany mechanizm wykonywania dziaa (akcji) pod pewnymi warunkami, zwanymi wyzwalaczami.


Rozdzia 4. i Budowa witryny

135

Wyzwalaczem moe by zatem dodanie nowego wpisu, komentarza, terminu (kategorii w sowniku), czy nawet zalogowanie si uytkownika. Mimo i modu trigger.module posiada panel administracyjny, to po instalacji niewiele moemy w nim ustawi . Klikajc po dostpnych zakadkach: Odpowiedzi, Zawarto, Cron, Kategorie, U ytkownicy, zauwaymy szereg zdefiniowanych wyzwalaczy, ale tylko do kilku z nich bdziemy mogli przypisa dziaanie. Z dostpnych zaraz po instalacji dziaa wyzwalanych przez zdarzenia w systemie moemy wyr贸ni te, kt贸re maj zdarzy si po zachowaniu bd aktualizacji nowego wpisu (dostpne na zakadce Zawarto, rysunek 4.47) oraz po zachowaniu, aktualizacji bd usuniciu odpowiedzi do wpisu (dostpne na zakadce Odpowiedzi, rysunek 4.48). Rysunek 4.47. Dziaania, jakie mo emy wyzwoli

Rysunek 4.48. Wyzwalacze dostpne w rdzeniu Drupala

Jak wida , opcji nie mamy za wiele. Przykadowo, moemy zdecydowa , e kady wpis ma zosta po zapisaniu opublikowany, i to na stronie g贸wnej, niezalenie od ustawie, jakie wprowadzilimy na formularzu dodawania zawartoci. Tak zdefiniowane akcje bd wyglday nastpujco (rysunek 4.49). Rysunek 4.49. Dziaania dla konkretnego wyzwalacza


136

Drupal. Poznaj go z kadej strony

Moemy przekona si, e niezalenie od tego, jak ustawimy wpis, zawsze zostanie on umieszczony w statusie „opublikowano” na stronie gównej naszej strony. Na szczcie to, co widzimy, to tylko przykady, a nie koniec moliwoci. Sia tego moduu tkwi bowiem w cisej wspópracy z innym — dziaa zautomatyzowanych. To wanie tam zdefiniujemy dziaania, jakie moemy powiza z danym zdarzeniem systemowym (wyzwalaczem). Aby to zrobi , musimy przej do interfejsu zarzdzania moduem dziaa — pod adres …/admin/settings/actions. Jeli w dziale zarzdzania dziaaniami zautomatyzowanymi dodamy akcj Wylij e-mail po dodaniu wpisu (dodawanie akcji opisano w rozdziale 6. „Konfiguracja witryny”, punkt „Dziaania zautomatyzowane”), to nasza paleta dziaa dostpnych w ramach tego wyzwalacza powikszy si (rysunek 4.50). Rysunek 4.50. Doczenie nowego dziaania

Po dodaniu tej akcji do wyzwalacza Zachowanie nowego wpisu zostanie wysany mail o temacie, treci i adresacie zdefiniowanych w module akcji zautomatyzowanych. Kolejne akcje i wyzwalacze bd pojawia si w miar instalowania nowych moduów, tak wic warto co jaki czas zaglda w ten obszar. Bywa, e moduy suce do wykonywania pewnych czynnoci mogyby z powodzeniem zosta zastpione wygenerowaniem odpowiedniej akcji i zaplanowaniem jej w okrelonych warunkach — tak jak ma to miejsce z powiadomieniem administratora witryny o dodaniu nowego komentarza czy wpisu.

Podsumowanie Budowa witryny jest dziaem podstawowym, jeli chodzi o konfiguracj klocków, z jakich strona jest zbudowana — moduów, skórek, bloków, odnoników w menu i tak dalej. To, co ustawimy w tym miejscu, bdzie miao wpyw na ca witryn.


Drupal - poznaj go z ka dej strony  

Drupal uchodzi bowiem za jeden ze skryptów trudniejszych do opanowania. Aby więc ułatwić sobie to zadanie, podejmij naukę z kompletnym podrę...

Read more
Read more
Similar to
Popular now
Just for you