Drupal_7_Zaawansowane_programowanie_dru7zp.pdf

(359 KB) Pobierz
Idź do
• Spis treści
• Przykładowy rozdział
• Skorowidz
Katalog książek
• Katalog online
• Zamów drukowany
katalog
Twój koszyk
• Dodaj do koszyka
Cennik i informacje
• Zamów informacje
o nowościach
• Zamów cennik
Czytelnia
• Fragmenty książek
online
Drupal 7. Zaawansowane
programowanie
Autorzy:
Todd Tomlinson, John K. VanDyk
Tłumaczenie: Krzysztof Rychlicki-Kicior
ISBN: 978-83-246-3367-8
Tytuł oryginału:
Pro Drupal 7 Development
Format: 168×237, stron: 528
Kontakt
Helion SA
ul. Kościuszki 1c
44-100 Gliwice
tel. 32 230 98 63
e-mail: helion@helion.pl
© Helion 1991–2011
Opanuj niesamowite możliwości tego CMS-a
i twórz rozbudowane witryny oraz aplikacje internetowe!
• Poznaj architekturę Drupala i sposób jego działania
• Naucz się pracować z bazą danych i API formularzy
• Twórz własne moduły i rozszerzaj możliwości tego systemu
• Zobacz, jak optymalnie wykorzystać jQuery w Drupalu
Drupal to nie tylko kolejny, nieco lepszy od innych CMS. Ten system zarządzania treścią zrobił
ostatnio oszałamiającą karierę jako doskonały framework do tworzenia wszelkiej maści aplikacji
internetowych. Dzięki niezwykłej łatwości i szybkości, z jaką Drupal pozwala programistom
tworzyć rozbudowane blogi, profesjonalne witryny korporacyjne czy serwisy społecznościowe,
zainteresowanie tą technologią zaczęło dynamicznie wzrastać. Co więcej, choć już dziś wydaje się,
że sposoby wykorzystania tego CMS-a ogranicza jedynie ludzka wyobraźnia, system jest wciąż
intensywnie rozwijany przez liczną społeczność entuzjastów na całym świecie. Możliwość
czerpania z ogromnych zasobów wiedzy tysięcy programistów poprawi jakość Twoich nawet
najbardziej wyrafinowanych internetowych projektów.
Jeśli chcesz tworzyć nowoczesne, rozbudowane witryny internetowe z wykorzystaniem Drupala 7,
właśnie znalazłeś idealny podręcznik dla siebie! Omówiono tu wszystko, co będzie Ci potrzebne,
począwszy od podstawowych zagadnień, takich jak architektura i struktura plików systemu, przez
sposoby wykorzystania API formularzy czy dodawania własnych modułów w celu rozszerzania
możliwości, aż po metody tworzenia bezpiecznego, wydajnego kodu. Dowiesz się więcej na temat
pracy z bazą danych, uruchomienia własnej strony wyszukiwarki oraz korzystania z jQuery w
Drupalu. Nauczysz się także sprawnie optymalizować Drupal i przeprowadzać skuteczne testy oraz
poznasz wiele innych praktycznych zagadnień, które sprawią, że bez trudu zrozumiesz zasady
działania tego CMS-a oraz pokonasz wszelkie problemy napotykane w trakcie pracy.
Z tej książki dowiesz się między innymi:
• jak działa Drupal i jaką ma architekturę
• jak tworzyć dodatkowe, funkcjonalne moduły
• jak pracować z bazą danych i API formularzy
• jak wygląda obsługa użytkowników, segmentów i pól
• jak przechowywać dane w sesjach
• jak zapewnić wyszukiwanie i indeksowanie informacji
• jak wykorzystać jQuery w Drupalu
• jak tworzyć czysty, bezpieczny kod
• jak optymalizować działanie Drupala
• jak przeprowadzić efektywny proces testowania
Spis tre ci
Przedmowa ..................................................................................................................................15
O autorach ...................................................................................................................................17
O korektorach merytorycznych ....................................................................................................19
PodziÚkowania ............................................................................................................................21
WstÚp ..........................................................................................................................................23
Rozdziaï 1.
Jak dziaïa Drupal? .................................................................................................25
Czym jest Drupal? ................................................................................................................................ 25
Stos technologii .................................................................................................................................... 25
Rdzeń ..................................................................................................................................................... 26
Interfejs administratora ...................................................................................................................... 26
Moduły .................................................................................................................................................. 27
Haki ........................................................................................................................................................ 27
Skórki ..................................................................................................................................................... 28
Segmenty ............................................................................................................................................... 28
Pola ........................................................................................................................................................ 29
Bloki ....................................................................................................................................................... 29
Układ plików ........................................................................................................................................ 29
Obsługa żądania ................................................................................................................................... 31
Zadania serwera WWW .............................................................................................................. 31
Proces rozruchu (bootstrap) ....................................................................................................... 32
Przetwarzanie żądania .................................................................................................................. 32
Wyświetlanie danych ................................................................................................................... 32
Podsumowanie ..................................................................................................................................... 32
Rozdziaï 2.
Tworzenie moduïów ..............................................................................................33
Tworzenie plików ................................................................................................................................ 33
Implementacja haka ............................................................................................................................ 35
Dodawanie ustawień charakterystycznych dla modułu ................................................................. 36
Tworzenie własnej sekcji administracyjnej ...................................................................................... 42
Wyświetlanie formularza ustawień ................................................................................................... 43
Walidacja ustawień wysłanych przez użytkownika ........................................................................ 44
SPIS TRE¥CI
Przechowywanie ustawień .................................................................................................................. 45
Tabela variables w akcji ................................................................................................................ 45
Wczytywanie wartości za pomocą funkcji variable_get() ....................................................... 46
Co dalej? ................................................................................................................................................ 46
Podsumowanie ..................................................................................................................................... 47
Rozdziaï 3.
Haki, dziaïania i wyzwalacze .................................................................................49
Jak działają zdarzenia i wyzwalacze? ................................................................................................. 49
Działania w praktyce ........................................................................................................................... 51
Interfejs użytkownika wyzwalaczy ............................................................................................. 51
Twoje pierwsze działanie ............................................................................................................. 52
Przypisywanie akcji ...................................................................................................................... 53
Zmiana wyzwalaczy wywołujących działanie ........................................................................... 53
Kontekst a działania ............................................................................................................................ 58
Przygotowanie kontekstu przez moduł wyzwalaczy ............................................................... 58
Modyfikacja działań przy użyciu funkcji action_info_after() ................................................ 59
Określanie kontekstu .................................................................................................................... 59
Metody przechowywania działań ...................................................................................................... 61
Tabela actions ................................................................................................................................ 61
Identyfikatory działań .................................................................................................................. 61
Bezpośrednie wywołanie działania przy użyciu metody actions_do() ........................................ 62
Tworzenie własnych wyzwalaczy przy użyciu hook_trigger_info() ............................................ 62
Dodawanie wyzwalaczy do istniejących haków .............................................................................. 65
Podsumowanie ..................................................................................................................................... 67
Rozdziaï 4.
System menu .........................................................................................................69
Mapowanie wywołań zwrotnych ....................................................................................................... 69
Mapowanie adresów URL na funkcje ............................................................................................... 69
Tworzenie elementu menu ................................................................................................................. 71
Argumenty wywołań zwrotnych strony ........................................................................................... 74
Wywołania zwrotne strony w innych plikach ................................................................................. 75
Dodawanie łącza do bloku Nawigacja .............................................................................................. 76
Zagnieżdżanie menu ........................................................................................................................... 77
Kontrola dostępu ................................................................................................................................. 78
Lokalizacja i dostosowanie ................................................................................................................. 80
Tworzenie wywołania zwrotnego tytułu .......................................................................................... 80
Znaki wieloznaczne w elementach menu ......................................................................................... 81
Podstawowe znaki wieloznaczne ................................................................................................ 81
Znaki wieloznaczne i parametry wywołań zwrotnych strony ................................................ 82
Korzystanie z wartości dopasowanej przez znak wieloznaczny ............................................. 82
Znaki wieloznaczne a zamiana parametrów ............................................................................. 82
Przekazywanie dodatkowych argumentów do funkcji ładowania ........................................ 84
Specjalne argumenty ładowania: %map i %index .................................................................... 84
Tworzenie ścieżek na podstawie znaków wieloznacznych
z wykorzystaniem funkcji to_arg() .......................................................................................... 85
Znaki wieloznaczne i funkcja to_arg(): przypadki specjalne ................................................. 85
Zastępowanie elementów menu w innych modułach .................................................................... 86
Zastępowanie hiperłączy menu w innych modułach ..................................................................... 87
Rodzaje elementów menu .................................................................................................................. 87
4
SPIS TRE¥CI
Typowe zadania ................................................................................................................................... 89
Przypisywanie wywołań zwrotnych bez dodawania hiperłączy do menu ............................... 89
Wyświetlanie elementów menu jako zakładek ......................................................................... 89
Ukrywanie istniejących elementów menu ................................................................................ 91
Korzystanie z menu.module ........................................................................................................ 91
Typowe błędy ................................................................................................................................ 91
Podsumowanie ..................................................................................................................................... 92
Rozdziaï 5.
Praca z bazÈ danych ..............................................................................................93
Określanie parametrów bazy danych ................................................................................................ 93
Jak działa warstwa abstrakcji bazy danych? ..................................................................................... 94
Łączenie się z bazą danych ................................................................................................................. 94
Wykonywanie prostych zapytań ....................................................................................................... 95
Pozyskiwanie wyników zapytań ........................................................................................................ 97
Pobieranie pojedynczej wartości ................................................................................................ 97
Pobieranie wielu wierszy ............................................................................................................. 97
Twórca zapytań i obiekty zapytań .............................................................................................. 97
Pobieranie ograniczonego zbioru wyników .............................................................................. 98
Stronicowanie wyników zapytań ................................................................................................ 98
Przykłady typowych zapytań ....................................................................................................... 99
Modyfikacje rekordów za pomocą funkcji drupal_write_record() ............................................ 100
API schematów .................................................................................................................................. 101
Plik .install a schematy ............................................................................................................... 101
Tworzenie tabel ........................................................................................................................... 101
Wykorzystywanie modułu schema .......................................................................................... 103
Mapowanie typów pól schematów na typy pól bazy danych ............................................... 104
Deklarowanie wybranych typów kolumn za pomocą funkcji mysql_type ........................ 106
Zarządzanie tabelami ................................................................................................................. 108
Usuwanie tabel przy deinstalacji modułu ............................................................................... 108
Zmiana istniejących schematów za pomocą funkcji hook_schema_alter() ............................. 109
Zmiana zapytań istniejących w innych modułach za pomocą haka hook_query_alter() ....... 110
Obsługa wielu baz danych w Drupalu ............................................................................................ 110
Tabele tymczasowe ............................................................................................................................ 112
Tworzenie własnego sterownika bazy danych ............................................................................... 112
Podsumowanie ................................................................................................................................... 113
Rozdziaï 6.
Obsïuga u ytkowników .......................................................................................115
Obiekt $user ........................................................................................................................................ 115
Sprawdzanie stanu logowania użytkownika .................................................................................. 116
Wprowadzenie do haków użytkownika ......................................................................................... 116
Sposób działania funkcji hook_user_view($account, $view_mode) .................................. 118
Proces rejestracji użytkownika ......................................................................................................... 120
Zbieranie informacji o użytkownikach za pomocą modułu profile.module ............................ 122
Proces logowania ............................................................................................................................... 123
Dodawanie danych do obiektu $user w momencie ładowania ............................................ 124
Kategorie informacji o użytkownikach ................................................................................... 125
Logowanie zewnętrzne ...................................................................................................................... 126
Podsumowanie ................................................................................................................................... 129
5
Zgłoś jeśli naruszono regulamin