drupal-7.-zaawansowane-programowanie full scan, ebooki(1)
[ Pobierz całość w formacie PDF ]
Spis treci
Przedmowa ..................................................................................................................................15
O autorach ...................................................................................................................................17
O korektorach merytorycznych ....................................................................................................19
Podzikowania ............................................................................................................................21
Wstp ..........................................................................................................................................23
Rozdzia 1.
Jak dziaa 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 TRECI
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, dziaania 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 TRECI
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.
Obsuga uytkownikó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
SPIS TRECI
Rozdzia 7.
Obsuga segmentów ............................................................................................131
Segment — co to takiego? ................................................................................................................. 131
Nie wszystko jest segmentem ........................................................................................................... 133
Tworzenie modułu segmentu .......................................................................................................... 133
Tworzenie pliku .install .............................................................................................................. 134
Tworzenie pliku .info ................................................................................................................. 136
Tworzenie pliku .module ........................................................................................................... 136
Udostępnianie informacji o rodzaju zawartości .................................................................... 136
Zmiana wywołań zwrotnych menu .......................................................................................... 137
Tworzenie uprawnień zależnych od typu segmentu za pomocą haka hook_permission() ....138
Ograniczenie dostępu do typu segmentu za pomocą haka hook_node_access() .............. 139
Dostosowywanie formularza segmentów do naszego typu segmentu ................................ 139
Walidacja pól za pomocą haka hook_validate() .................................................................... 140
Zapisywanie danych za pomocą haka hook_insert() ............................................................ 141
Aktualizowanie danych i interakcja z hakiem hook_update() ............................................. 141
Usuwanie segmentów za pomocą haka hook_delete() ......................................................... 142
Modyfikowanie segmentów naszego typu za pomocą haka hook_load() ............................. 142
Hak hook_view() ........................................................................................................................ 142
Modyfikowanie segmentów, które nie należą do naszego typu
za pomocą haków w postaci hook_node_xxxxx() .............................................................. 144
Sposób przechowywania segmentów .............................................................................................. 145
Tworzenie typu segmentu z własnymi typami zawartości .......................................................... 147
Ograniczanie dostępu do segmentów ............................................................................................. 147
Określanie uprawnień do segmentów ..................................................................................... 147
Proces obsługi dostępu segmentów ......................................................................................... 149
Podsumowanie ................................................................................................................................... 149
Rozdzia 8.
Obsuga pól .........................................................................................................151
Tworzenie rodzajów zawartości ...................................................................................................... 151
Dodawanie pól do rodzaju zawartości ............................................................................................ 153
Tworzenie własnego pola ................................................................................................................. 156
Dodawanie pól z poziomu kodu ...................................................................................................... 164
Podsumowanie ................................................................................................................................... 167
Rozdzia 9.
System skórek ......................................................................................................169
Skórki ................................................................................................................................................... 169
Instalacja gotowej skórki ............................................................................................................ 169
Tworzenie skórki ........................................................................................................................ 170
Plik .info .............................................................................................................................................. 176
Dodawanie obszarów do skórki ................................................................................................ 176
Dodawanie do skórki plików CSS ............................................................................................ 176
Dodawanie skryptów języka JavaScript ................................................................................... 177
Dodawanie ustawień do skórki ................................................................................................. 177
Pliki szablonów — co, gdzie, jak ...................................................................................................... 179
Zarys ogólny ................................................................................................................................ 179
Plik html.tpl.php ......................................................................................................................... 181
Przesłanianie plików szablonów ............................................................................................... 188
Pozostałe pliki szablonów .......................................................................................................... 191
Przesłanianie skórkowalnych elementów ............................................................................... 192
6
[ Pobierz całość w formacie PDF ]