Jelenlegi hely

Szövegdobozzal 6-ról 7-re

CSÉCSY László képe

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: