Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00055 006700 14489030 na godz. na dobę w sumie
Drupal 7. Zaawansowane programowanie - książka
Drupal 7. Zaawansowane programowanie - książka
Autor: , Liczba stron: 528
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-246-3367-8 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> webmasterstwo >> drupal
Porównaj ceny (książka, ebook, audiobook).

Opanuj niesamowite możliwości tego CMS-a i twórz rozbudowane witryny oraz aplikacje internetowe!

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:


Todd Tomlinson - przez piętnaście lat zajmował się projektowaniem, rozwijaniem, wdrażaniem i konserwacją zaawansowanych rozwiązań internetowych. Pracował m.in. w Oracle Corporation jako specjalista od opracowywania planów strategicznych pod kątem najlepszego wykorzystania możliwości Internetu. Todd uwielbia Drupal, który jest przez niego wykorzystywany jako główne narzędzie do tworzenia przyjemnych dla oka i funkcjonalnych witryn. Jest autorem książki 'Drupal 7. Od podstaw'.

John K. VanDyk jest starszym architektem aplikacji webowych w Lullabot - firmie zajmującej się szkoleniami i konsultingiem Drupala. Wcześniej był analitykiem i adiunktem na Stanowym Uniwersytecie Naukowo-Technicznym w Iowa (USA). Na swoim koncie ma już jedną książkę na temat tego CMS-a: 'Pro Drupal Development. Second Edition'.

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

Darmowy fragment publikacji:

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 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: Kontakt Helion SA ul. Kościuszki 1c 44-100 Gliwice tel. 32 230 98 63 e-mail: helion@helion.pl © Helion 1991–2011 • 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 Jak dziaïa Drupal? .................................................................................................25 Rozdziaï 1. 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 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 Rozdziaï 2. 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 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 Rozdziaï 4. 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 SPIS TRE¥CI Rozdziaï 7. Obsïuga 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. Obsïuga 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 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 Rozdziaï 9. 6 SPIS TRE¥CI Przesłanianie plików szablonów ............................................................................................... 194 Dodawanie i modyfikowanie zmiennych szablonu ............................................................... 195 Moduł twórcy skórek ................................................................................................................. 196 Podsumowanie ................................................................................................................................... 196 Rozdziaï 10. Bloki ....................................................................................................................197 Czym jest blok? .................................................................................................................................. 197 Opcje ustawień bloków ..................................................................................................................... 199 Rozmieszczenie bloków .................................................................................................................... 199 Tworzenie bloku ......................................................................................................................... 200 Wykorzystywanie haków bloku ................................................................................................ 202 Tworzenie bloku ................................................................................................................................ 202 Włączanie bloku w zainstalowanych modułach ........................................................................... 207 Przykłady widoczności bloków ........................................................................................................ 208 Wyświetlanie bloku tylko dla użytkowników zalogowanych ............................................... 208 Wyświetlanie bloku tylko dla użytkowników anonimowych ............................................... 208 Podsumowanie ................................................................................................................................... 208 Rozdziaï 11. API formularzy .....................................................................................................209 Przetwarzanie formularzy ................................................................................................................ 209 Rozpoczęcie procesu .................................................................................................................. 211 Określanie tokenu ....................................................................................................................... 211 Określanie ID .............................................................................................................................. 211 Pobieranie dostępnych definicji elementów formularza ...................................................... 211 Poszukiwanie funkcji walidacji ................................................................................................. 212 Poszukiwanie funkcji wysyłania formularza ........................................................................... 212 Modyfikowanie formularzy przed ich utworzeniem ............................................................. 213 Tworzenie formularzy ................................................................................................................ 213 Modyfikowanie formularzy po ich utworzeniu ..................................................................... 213 Sprawdzenie, czy formularz został wysłany ............................................................................ 213 Poszukiwanie funkcji skórki dla formularza .......................................................................... 213 Modyfikowanie formularzy przed renderowaniem ............................................................... 214 Renderowanie formularza ......................................................................................................... 214 Walidacja formularza ................................................................................................................. 214 Wysyłanie formularza ................................................................................................................ 215 Przekierowanie użytkownika .................................................................................................... 215 Tworzenie prostych formularzy ...................................................................................................... 216 Właściwości formularza ............................................................................................................. 218 Identyfikatory formularzy ......................................................................................................... 218 Zbiory pól ..................................................................................................................................... 219 Stosowanie skórek do formularzy ............................................................................................ 221 Wybór funkcji walidacji i przetwarzania za pomocą haka hook_forms() ............................ 224 Porządek wywołań funkcji skórek, walidacji i przetwarzania .............................................. 225 Tworzenie funkcji walidacji ...................................................................................................... 225 Wykorzystywanie zmiennej $form_state do przekazywania danych ................................. 227 Proces odbudowania formularza .............................................................................................. 228 Tworzenie funkcji przetwarzania ............................................................................................. 229 Modyfikowanie formularzy za pomocą haka hook_form_alter() ....................................... 229 Przetwarzanie formularzy z poziomu kodu za pomocą funkcji drupal_form_submit() .........230 Formularze dynamiczne ............................................................................................................. 231 7 SPIS TRE¥CI Właściwości API formularzy ........................................................................................................... 237 Właściwości formularza ............................................................................................................. 237 Właściwości dodawane do wszystkich elementów ................................................................ 237 Właściwości dostępne we wszystkich elementach ................................................................. 238 Elementy formularza .................................................................................................................. 240 Podsumowanie ................................................................................................................................... 252 Rozdziaï 12. System filtrów .....................................................................................................255 Filtry ..................................................................................................................................................... 255 Filtry i formaty tekstu ........................................................................................................................ 256 Instalacja filtru ............................................................................................................................. 258 Zastosowania filtrów .................................................................................................................. 259 Tworzenie własnego filtru ................................................................................................................ 259 Implementacja haka hook_filter_info() .................................................................................. 260 Funkcja przetwarzania ............................................................................................................... 260 Funkcja pomocnicza ................................................................................................................... 261 Podsumowanie ................................................................................................................................... 263 Rozdziaï 13. Wyszukiwanie i indeksowanie informacji ............................................................265 Tworzenie własnej strony wyszukiwarki ........................................................................................ 265 Domyślny formularz wyszukiwarki ......................................................................................... 266 Formularz wyszukiwania zaawansowanego ........................................................................... 266 Dodawanie formularza wyszukiwania ..................................................................................... 267 Wykorzystywanie indeksera HTML ............................................................................................... 269 Zastosowania indeksera ............................................................................................................. 270 Jak działa indekser? .................................................................................................................... 270 Podsumowanie ................................................................................................................................... 277 Rozdziaï 14. Obsïuga plików ...................................................................................................279 Metody udostępniania plików przez Drupal ................................................................................. 279 Zarządzane i niezarządzane API Drupala ...................................................................................... 279 Pliki publiczne ............................................................................................................................. 280 Pliki prywatne .............................................................................................................................. 281 Ustawienia PHP ................................................................................................................................. 281 Obsługa wysyłanych plików ............................................................................................................. 282 Pole wysyłania pliku ................................................................................................................... 282 Wideo i audio .............................................................................................................................. 283 API plików .......................................................................................................................................... 283 Schemat bazy danych ................................................................................................................. 283 Typowe zadania i funkcje .......................................................................................................... 284 Haki uwierzytelniania do pobierania ....................................................................................... 292 Podsumowanie ................................................................................................................................... 293 Rozdziaï 15. Obsïuga kategorii ................................................................................................295 Struktura kategorii ............................................................................................................................. 295 Tworzenie słownika ........................................................................................................................... 295 Tworzenie terminów ......................................................................................................................... 296 Powiązanie słownika z rodzajem zawartości ................................................................................. 296 8 SPIS TRE¥CI Rodzaje kategorii ................................................................................................................................ 296 Płaska ............................................................................................................................................ 296 Hierarchiczna .............................................................................................................................. 297 Wielohierarchiczna .................................................................................................................... 298 Przeglądanie treści przy użyciu terminów ..................................................................................... 299 Wykorzystywanie operatorów AND i OR w adresach URL ................................................ 299 Automatyczne kanały RSS ......................................................................................................... 300 Przechowywanie kategorii ................................................................................................................ 301 Słowniki budowane w modułach .................................................................................................... 302 Tworzenie słownika w obrębie modułu .................................................................................. 302 Informowanie o zmianach w słowniku — haki kategorii ..................................................... 302 Typowe zadania ................................................................................................................................. 304 Wyświetlanie terminów taksonomii związanych z segmentem .......................................... 304 Tworzenie własnych zapytań kategorii .................................................................................... 304 Funkcja taxonomy_select_nodes() ........................................................................................... 304 Funkcje taksonomii ........................................................................................................................... 305 Pozyskiwanie informacji o słownikach ................................................................................... 305 Dodawanie, modyfikacja i usuwanie słowników ................................................................... 305 Pobieranie informacji o terminach .......................................................................................... 306 Dodawanie, modyfikacja i usuwanie terminów ..................................................................... 307 Pobieranie informacji o hierarchii terminów ......................................................................... 307 Wyszukiwanie segmentów oznaczonych wybranymi terminami ....................................... 309 Dodatkowe informacje ...................................................................................................................... 309 Podsumowanie ................................................................................................................................... 310 Rozdziaï 16. Obsïuga pamiÚci podrÚcznej ................................................................................311 Zastosowania pamięci podręcznej ................................................................................................... 311 Sposób działania pamięci podręcznej ............................................................................................. 312 Wykorzystywanie pamięci podręcznej w obrębie rdzenia ........................................................... 313 System menu ............................................................................................................................... 313 Pamięć podręczna a przefiltrowany tekst ................................................................................ 314 Zmienne administracyjne i ustawienia modułów .................................................................. 314 Bloki .............................................................................................................................................. 317 API pamięci podręcznej w praktyce ......................................................................................... 318 Podsumowanie ................................................................................................................................... 321 Rozdziaï 17. Sesje ....................................................................................................................323 Czym są sesje? .................................................................................................................................... 323 Sposób użycia sesji ............................................................................................................................. 323 Ustawienia związane z sesją ............................................................................................................. 325 Plik .htaccess ................................................................................................................................ 325 Plik settings.php .......................................................................................................................... 325 Plik bootstrap.inc ........................................................................................................................ 325 Wymaganie cookies .................................................................................................................... 326 Sposób przechowywania danych w sesji ........................................................................................ 326 Cykl życia sesji .................................................................................................................................... 327 Konwersacje w trakcie sesji .............................................................................................................. 328 Pierwsza wizyta ........................................................................................................................... 328 Druga wizyta ................................................................................................................................ 328 Użytkownik zarejestrowany ...................................................................................................... 328 9 SPIS TRE¥CI Typowe zadania ................................................................................................................................. 329 Zmiana terminu ważności cookie ............................................................................................ 329 Zmiana nazwy sesji ..................................................................................................................... 329 Przechowywanie danych w sesji ............................................................................................... 329 Podsumowanie ................................................................................................................................... 330 Rozdziaï 18. jQuery w Drupalu ................................................................................................331 Czym jest jQuery? .............................................................................................................................. 331 JavaScript po staremu ....................................................................................................................... 332 Jak działa jQuery? .............................................................................................................................. 333 Wykorzystywanie identyfikatorów CSS .................................................................................. 333 Wykorzystywanie selektora klasy CSS ..................................................................................... 333 jQuery + Drupal = ? ........................................................................................................................... 334 Twój pierwszy kod jQuery ......................................................................................................... 334 Określanie elementu za pomocą ID ......................................................................................... 336 Łańcuchy wywołań ..................................................................................................................... 337 Dodawanie i usuwanie klas ....................................................................................................... 337 Opakowywanie istniejących elementów .................................................................................. 337 Zmiana wartości elementów CSS ............................................................................................. 338 Umieszczanie kodu JavaScript .................................................................................................. 338 Przesłanialny kod JavaScript ..................................................................................................... 341 Tworzymy kontrolkę do głosowania w jQuery ............................................................................. 343 Tworzenie modułu ..................................................................................................................... 345 Wykorzystywanie zachowań Drupala ..................................................................................... 351 Możliwości rozszerzenia modułu ............................................................................................. 351 Zgodność ...................................................................................................................................... 352 Co dalej? .............................................................................................................................................. 352 Podsumowanie ................................................................................................................................... 352 Rozdziaï 19. Lokalizacja i tïumaczenie .....................................................................................353 Włączanie modułu locale ................................................................................................................. 353 Tłumaczenie interfejsu użytkownika .............................................................................................. 353 Łańcuchy znaków ....................................................................................................................... 353 Tłumaczenie łańcuchów znaków za pomocą funkcji t() ....................................................... 354 Zamiana wbudowanych łańcuchów znaków na własne ....................................................... 354 Tworzenie nowego tłumaczenia ...................................................................................................... 362 Generowanie plików .pot za pomocą modułu translation template extractor .................. 362 Tworzenie pliku .pot dla Twojego modułu ............................................................................. 362 Tworzenie plików .pot dla całej witryny ................................................................................. 364 Instalacja pełnego tłumaczenia dla języka ..................................................................................... 364 Ustawianie tłumaczenia w trakcie instalacji ........................................................................... 364 Instalacja tłumaczenia w istniejącej witrynie .......................................................................... 365 Obsługa języków z pisownią od prawej do lewej .......................................................................... 366 Wybór języka ...................................................................................................................................... 367 Domyślny ..................................................................................................................................... 368 URL ............................................................................................................................................... 369 Przeglądarka ................................................................................................................................ 370 Tylko URL .................................................................................................................................... 370 10 SPIS TRE¥CI Tłumaczenie treści ............................................................................................................................. 370 Wprowadzenie do modułu tłumaczenia treści ....................................................................... 371 Obsługa wersji językowych ........................................................................................................ 371 Obsługa wersji językowych dla tłumaczenia ........................................................................... 371 Pliki związane z lokalizacją i tłumaczeniem .................................................................................. 375 Dodatkowe informacje ...................................................................................................................... 375 Podsumowanie ................................................................................................................................... 375 Rozdziaï 20. XML-RPC ..............................................................................................................377 XML-RPC — co i jak? ....................................................................................................................... 377 Wymagania wstępne dla XML-RPC ............................................................................................... 377 Klienci XML-RPC .............................................................................................................................. 378 Przykład klienta XML-RPC — pobieramy czas ..................................................................... 378 Przykład klienta XML-RPC — pobieramy nazwę stanu ....................................................... 379 Obsługa błędów u klienta XML-RPC ...................................................................................... 380 Prosty serwer XML-RPC .................................................................................................................. 382 Przypisywanie nazw metod za pomocą haka hook_xmlrpc() .............................................. 383 Automatyczna walidacja typów parametrów za pomocą haka hook_xmlrpc() ................ 383 Wbudowane metody XML-RPC ..................................................................................................... 384 system.listMethods ..................................................................................................................... 384 system.methodSignature ........................................................................................................... 386 system.methodHelp .................................................................................................................... 386 system.getCapabilities ................................................................................................................ 386 system.multiCall ......................................................................................................................... 387 Podsumowanie ................................................................................................................................... 387 Rozdziaï 21. Tworzenie bezpiecznego kodu .............................................................................389 Obsługa danych przesyłanych przez użytkownika ....................................................................... 389 Typy danych ................................................................................................................................ 390 check_plain() i t() — metody na oczyszczenie danych ......................................................... 391 Wykorzystywanie funkcji filter_xss() do zapobiegania atakom typu cross-site scripting .......393 Wykorzystywanie haka filter_xss_admin() .............................................................................. 395 Bezpieczna obsługa adresów URL ................................................................................................... 395 Tworzenie bezpiecznych zapytań za pomocą funkcji db_query() ............................................. 396 Kontrola dostępu do danych prywatnych — hak hook_query_alter() ...................................... 398 Zapytania dynamiczne ...................................................................................................................... 399 Uprawnienia i wywołania zwrotne strony ..................................................................................... 399 Ataki typu CSRF (Cross-Site Request Forgery) ............................................................................ 400 Bezpieczeństwo plików ..................................................................................................................... 400 Uprawnienia do plików ............................................................................................................. 400 Pliki chronione ............................................................................................................................ 401 Wysyłanie plików ........................................................................................................................ 401 Nazwy plików i ścieżki ............................................................................................................... 402 Kodowanie nagłówków poczty elektronicznej .............................................................................. 402 Pliki w środowisku produkcyjnym .................................................................................................. 403 Obsługa SSL ........................................................................................................................................ 403 Samodzielne pliki PHP ..................................................................................................................... 403 Bezpieczeństwo i AJAX, czyli atak przez powtórzenie żądania .................................................. 405 11 SPIS TRE¥CI Bezpieczeństwo formularzy API ...................................................................................................... 405 Ochrona konta superużytkownika .................................................................................................. 406 Podsumowanie ................................................................................................................................... 406 Rozdziaï 22. Dobre praktyki programistyczne ..........................................................................407 Standardy kodowania ........................................................................................................................ 407 Wcięcia i białe znaki ................................................................................................................... 407 Operatory ..................................................................................................................................... 407 Rzutowanie ......................................................................................................................................... 408 Instrukcje kontroli przepływu ......................................................................................................... 408 Wywołania funkcji ...................................................................................................................... 408 Deklaracje funkcji ....................................................................................................................... 409 Nazwy funkcji .............................................................................................................................. 409 Wywołania konstruktorów ........................................................................................................ 410 Tablice .......................................................................................................................................... 410 Cudzysłowy .................................................................................................................................. 411 Złączanie łańcuchów znaków ................................................................................................... 411 Komentarze ........................................................................................................................................ 411 Przykłady dokumentacji ............................................................................................................ 412 Dokumentowanie stałych .......................................................................................................... 412 Dokumentowanie funkcji .......................................................................................................... 412 Dokumentowanie implementacji haków ................................................................................ 414 Dołączanie kodu ......................................................................................................................... 414 Znaczniki kodu PHP .................................................................................................................. 414 Średniki ........................................................................................................................................ 415 Przykładowe adresy URL ........................................................................................................... 415 Konwencje nazewnicze ..................................................................................................................... 415 Sprawdzanie stylu kodowania za pomocą modułu coder ............................................................ 415 Szybka nawigacja w kodzie Drupala za pomocą narzędzia grep ................................................ 416 Podsumowanie ................................................................................................................................... 417 Rozdziaï 23. Optymalizacja Drupala ........................................................................................419 Pamięć podręczna — klucz do wydajności Drupala ..................................................................... 419 Optymalizacja PHP ........................................................................................................................... 421 Przekierowanie pliku pamięci podręcznej kodu operacyjnego PHP na /dev/zero ........... 422 Ustawienia puli procesów PHP ................................................................................................ 422 Dostosowywanie serwera Apache ................................................................................................... 423 mod_expires ................................................................................................................................ 423 Przenoszenie dyrektyw z pliku .htaccess do pliku httpd.conf .............................................. 423 Preforkowanie MPM vs. Apache MPM Worker .................................................................... 424 Dopasowywanie rozmiaru puli Apache .................................................................................. 424 Zmniejszanie czasu oczekiwania Apache ................................................................................ 425 Wyłączenie nieużywanych modułów Apache ........................................................................ 425 Nginx zamiast Apache — zmiana serwera WWW ....................................................................... 425 Pressflow ............................................................................................................................................. 425 Varnish ................................................................................................................................................ 425 Normalizacja żądań przychodzących w celu zwiększenia wydajności Varnisha .............. 426 Varnish: znajdywanie dodatkowych cookies .......................................................................... 427 12 SPIS TRE¥CI Boost .................................................................................................................................................... 427 Boost a Varnish .................................................................................................................................. 428 Konfiguracja systemu Linux w serwerach o wysokim natężeniu ............................................... 428 Używanie szybkich systemów plików ............................................................................................. 429 Serwery dedykowane a serwery wirtualne ..................................................................................... 430 Unikanie wywoływania zewnętrznych usług sieciowych ................................................................. 430 Obniżanie czasu oczekiwania serwera ............................................................................................ 430 Optymalizacja bazy danych .............................................................................................................. 431 Włączenie pamięci podręcznej zapytań MySQL .................................................................... 431 Wydajność silnika MySQL InnoDB w systemie Windows .................................................. 431 Wydajność Drupala ........................................................................................................................... 432 Pozbycie się błędów 404 ............................................................................................................. 432 Wyłączenie niewykorzystywanych modułów ......................................................................... 432 Optymalizacje Drupala ..................................................................................................................... 432 Pamięć podręczna dla stron ..........................
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Drupal 7. Zaawansowane programowanie
Autor:
,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


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