Új hozzászólás
Szövegdobozzal 6-ról 7-re
Beküldte CSÉCSY László - 2011-04-30, szombat, 18:19
Egy 6-os Drupalhoz készült modul egyik űrlapján olyan szövegdoboz található, melynek beviteli formáját a felhasználó választhatja ki. Feladat: a modult portolni 7-es Drupalhoz. A teljes modul helyett csak a konkrét részfeladat portolását ismertetem alább.
Drupal 6 alatt ehhez a szövegdobozunkat egy szülő űrlapelembe kellett tenni, melyben a testvére lett a beviteli forma kiválasztására szolgáló elem:
function mymodule_myform(&$form_state) { $form['szulo']['szoveg'] = array( '#type' => 'textarea', '#title' => t('Textarea with input format selector'), '#default_value' => variable_get('mymodule_szoveg', ''), ); $form['szulo']['format'] = filter_form(variable_get('mymodule_format', FILTER_FORMAT_DEFAULT)); $form['buttons']['submit'] = array( '#type' => 'submit', '#value' => t('Submit'), ); return $form; } function mymodule_myform_submit($form, &$form_state) { variable_set('mymodule_szoveg', $form_state['values']['szoveg']); variable_set('mymodule_format', $form_state['values']['format']); }
Nézzük, hogyan egyszerűsödik ez Drupal 7 esetén:
function mymodule_myform(&$form_state) { $form['szoveg'] = array( '#type' => 'text_format', '#title' => t('Textarea with text format selector'), '#default_value' => variable_get('mymodule_szoveg', ''), '#format' => variable_get('mymodule_szoveg_format', NULL), ); $form['actions']['submit'] = array( '#type' => 'submit', '#value' => t('Submit'), ); return $form; } function mymodule_myform_submit($form, &$form_state) { variable_set('mymodule_szoveg', $form_state['values']['szoveg']['value']); variable_set('mymodule_szoveg_format', $form_state['values']['szoveg']['format']); }
A trükktarisznyánkba tegyünk tehát egy cetlit: az űrlapgeneráló függvény ez esetben jelentősen leegyszerűsödik 6-ról 7-re lépve, cserébe kicsit jobban oda kell figyelni, hogyan kapjuk vissza a beírt, illetve kiválasztott értékeket.
Technológia:
