Темизация чекбоксов
09.08.2015
Вывод чекбоксов в виде таблицы. В первой колонке будут чекбоксы, а во второй текст:
/**
* Form builder.
*/
function modulename_test_form($form, &$form_state) {
$form['checkboxes'] = array(
'#type' => 'checkboxes',
'#title' => 'Checkboxes',
'#options' => array(
1 => 'value1',
2 => 'value2',
3 => 'value3',
),
// пример дополнительного параметра, который будет доступен в
// функции theme_checkboxes_table()
'#extra_data' => array(
1 => 'extra data 1',
2 => 'extra data 2',
3 => 'extra data 2',
),
'#theme' => 'checkboxes_table', // функция темизации элемента
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'Submit',
);
return $form;
}
/**
* Implements hook_theme().
*/
function modulename_theme() {
return array(
'checkboxes_table' => array(
'render element' => 'element',
),
);
}
/**
* Render checkboxes as table.
*/
function theme_checkboxes_table($vars) {
$element = $vars['element'];
$rows = array();
foreach (element_children($element) as $key) {
unset($element[$key]['#title']);
$rows[] = array(
drupal_render($element[$key]),
$element['#extra_data'][$key],
);
}
return theme('table', array('rows' => $rows));
}
#Drupal
