Szkoła deweloperów Drupala. Część II: wpinanie się w formularz
W poprzedniej części poznałeś podstawową strukturę modułu Drupala. Dodałeś też z użyciem hooka pomoc dotyczącą swojej wtyczki. W tym odcinku dowiesz się, jak modyfikować istniejące formularze Drupala.
| Przed przystąpieniem do pracy zainstaluj najnowszą developerską wersję Drupala 7. |
Plan działania
Interesuje nas formularz dodawania artykułów. Znajdziesz go pod adresem http://localhost/drupal7/node/add/article. Przyjrzyjmy się mu przez chwilę.
Dwa pierwsze pola pozwalają podać nam tytuł i przypisać obrazek. Później tekst, tagi itd. Zauważ, że większość pól w formularzu posiada nagłówek oraz krótki opis, umieszczony pod spodem.
Każde pole posiada swój tytuł oraz krótki opis definiujący jego przeznaczenie.
Naszym zadaniem jest dodanie do oglądanego formularza pola typu select "Stopień zmęczenia" i wprowadzimy cztery wartości do wyboru: Wypoczęty, Niewypoczęty, Zmęczony oraz Wykończony. Pole będzie znajdowało się tuż pod "Tags" w osobnej sekcji "Stan psychofizyczny".
Teoria budowania formularzy w Drupalu
Na początku zapoznajmy się z teorią budowania formularzy w Drupalu. Formularze w Drupalu to zwykłe tablice (ang. array). Zawarte w nich informacje przekazywane są do funkcji drupal_get_form(), która na ich podstawie buduje odpowiedni kod HTML.
Sekcja dotycząca naszej wtyczki składać się będzie z pola typu fieldset i zawartego w nim selecta.
$form['disposition'] = array(
'#type' => 'fieldset','#title' => 'Stan psychofizyczny',
'#weight' => 10,
'feeling' => array(
'#type' => 'select',
'#title' => 'Stopień zmęczenia',
'#description' => 'Określ swój poziom zmęczenia
na podstawie cztero-stopniowej skali','#default_value' => 'Wypoczęty',
'#options' => array(
'Wypoczęty' => 'Wypoczęty',
'Niewypoczęty' => 'Niewypoczęty',
'Zmęczony' => 'Zmęczony',
'Wykończony' => 'Wykończony'
)
)
);
| Dokładny opis wszystkich opcji można znaleźć w dziale Forms API Reference. Istnieje również tutorial pokazujący krok po kroku etapy tworzenia formularzy i korzystania z dostępnych wraz z nimi mechanizmów: Form API Quickstart Guide. |
Co oznacza powyższy kod? Zaczynamy od dodania elementu "disposition". Podajemy jego typ (#type) "fieldset" oraz tytuł (#title). Wewnątrz tworzymy nowe pole "feeling" - tym razem typu (#type) "select".
Tytuł i opis pola (#title, #description) to kolejno "Stopień zmęczenia" i "Określ swój poziom zmęczenia na podstawie cztero-stopniowej skali".
«poprzednia 1 2 3 następna »
Polecamy
Reklama
Komentarze
Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka
(słowa muszą być rozdzielone spacją).
W treści komentarza można używać języka formatowania BBcode.
Popularne
Firefox 10 już jest. Wiele atrakcji dla programistów, użytkownicy raczej nic nie zauważą
9
Źle się dzieje z Chrome, ze stabilnością coraz gorzej. Gdzie się podziała słynna izolacja procesów?
26
MSWiA zamówiło narzędzia do „złamania” Tora i podsłuchiwania internautów. Czy złamało przy tym prawo?
89
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Debata w sprawie ACTA: internauci spodziewali się chyba czegoś innego
13
Nowa polityka prywatności Google'a już za miesiąc wejdzie w życie. Mamy się czego bać?
16
PHP 5.3.9 nie pozwoli hakerom zawiesić serwera. Pozwoli za to przejąć nad nim kontrolę
28
MSWiA zamówiło narzędzia do „złamania” Tora i podsłuchiwania internautów. Czy złamało przy tym prawo?
89
[Aktualizacja] Facebook zablokował Demotywatory.pl. W czym zawiniły?
36
FBI zamknęło Megaupload. Anonimowi dali się sprowokować. Teraz ich akcja uzasadni potrzebę SOPA?
17
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
Rząd Tuska zablokował dostęp do tańszych leków z internetowych aptek
61
„Donald matole, twój rząd dopadną kibole” – hakerska elita przyłącza się do walki z ACTA
23
Społeczność
BartekBb Już wiem skąd kopiujecie artykuły, bo zrobiliście ten sam błąd co na...
Marr moglibyście się zdecydować. W newsach podajecie, że systemy wymiany (czyli...
setXYZ I jeszcze warto poczytać co o tym myśli sam MS http://webhosting.pl/Koniec...
setXYZ IE7 to archaiczny gniot. Z jednej strony chcemy HTML5 i grafiki 3D, a z...
sLn Wow, ale odkrycie, witamy w gronie oświeconych :)
Ole Tak, wycięte.Oleole, okazje.info.pl, opineo. Pierwsza strona wyników...
Psychiczna <33 jak zmienić myszkę?
- gardius: Dobra hurtownia sportowa (1)
- gardius: Tanie książki gdzie warto kupować? (1)
- Najdmen.pl: PROMOCJA, 500 DOMEN .EU ZA 1 PLN NETTO ! (1)
- VMLine: [Oferta] Serwery VPS Xen-HVM/OpenVZ z darmową administracją (2)
- Marek: Generowanie PDFa (2)
- Marek: problem z menu (2)
- Marek: Własne checkboxy w HTML,CSS (1)
Polecane książki
Praca
Czytaj Webhosting
Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.
Zarejestruj domenę
Sprawdź dostępność swojej domeny:
| .pl: | 0 zł | .com: | 19.90 zł | |
|---|---|---|---|---|
| .com.pl: | 0 zł | .eu: | 19.90 zł |










#1 obi 2009-12-23 17:18:02 0
IP: 87.205.15.[...] Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.11) Gecko/2009060309 Ubuntu/8.04 (hardy) Firefox/3.0.11
#2 Jan Koprowski® 2009-12-24 08:11:36 0
IP: 77.91.24.[...] Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.38 Safari/532.0
#3 kenobi 2010-01-01 22:26:53 0
IP: 79.191.62.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6
#4 Jan Koprowski® 2010-01-04 08:14:40 0
IP: 153.19.42.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.4) Gecko/20091016 Firefox/3.5.4 (.NET CLR 3.5.30729)