| 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".
Ładowanie






Browser: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.11) Gecko/2009060309 Ubuntu/8.04 (hardy) Firefox/3.0.11
Jan Koprowski
Browser: 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
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6
Jan Koprowski
Browser: 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)