Здраствуйте! Подскажите как вывести checkbox в таблице? Вернее с выводом я разобрался, только где то на косячил(( В общем не хочет в субмите отлавливаться переменная( ее попросту там вобще нет(
<?php
unction module_admin_settings_page() {
$output = '';
$output .= module_admin_settings_page_form();
return $output;
}
/**
* function for form.
*/
function building_module_admin_settings_page_form($form, &$form_state) {
$form['#tree'] = TRUE;
$form['spoiler'] = array(
'#type' => 'fieldset',
'#title' => '<span id="press-spoiler" class="true">Настройки</span>',
'#collapsible' => true,
'#collapsed' => false,
'#weight' => 1,
);
//$header = array('Numbers', 'Letters', 'Mixture');
//$roles = user_roles();
global $user;
$roles = $user->roles;
$header = array();
$header[] = t('Operations');
foreach ($roles as $role) {
$header[] = t($role);
$build['table']['data'][$role]['add_check_img'] = array(
'#type' => 'checkbox',
'#title' => t(''),
'#default_value' => variable_get( 'add_check_img', 0),
//'#checked' => true,
);
}
$row[] = array('data' => 'Добавление в цикле <small>(Field: add_check_img )<small>');
foreach (element_children($build['table']['data']) as $key)
{
$row[] = array('data' => $build['table']['data'][$key]['add_check_img'], 'class' => array('checkbox'));
}
$rows[] = $row;
$form['spoiler']['table'] = array(
'#theme' => 'table',
'#header' => $header,
'#rows' => $rows,
);
$form['spoiler']['submit'] = array(
'#type' => 'submit',
'#value' => t('Save order'),
'#submit' => array('module_admin_settings_page_form_submit'),
);
//drupal_set_message(t('Submitting values: <pre>values</pre>', array('values' => var_export($form, TRUE))));
return $form;
}
/**
*Рисуем форму
*/
function module_admin_settings_page_form() {
$out = drupal_render(drupal_get_form('building_module_admin_settings_page_form'));
return $out;
}
/**
* function for submit form.
*/
function module_admin_settings_page_form_submit($form, &$form_state) {
drupal_set_message(t('Submitting values: <pre>values</pre>', array('values' => var_export($form_state['values'], TRUE))));
}
?>
Если кого не затруднит, натолкните на путь истенный!
Комментарии
tableselect Form API
Вы сами пробовали им пользоваться? читали описание?
Ч/з tableselect создается таблица с крайней левой колонкой опций!
В моем же случае ряд горизонтальных чекбоксов!
Ладно Ладно, Тогда есть ещё один вариант напиши функцию темизации checkboxe's свою по принципу tableselect, и добавьте в #theme => horiztaltableselect
Эх... тот же х.. только в левой руке получается))
В общем проблему решил! некогда расписывать.. если кого заинтересует код:
<?php
$form['#tree'] = TRUE;
global $user;
//$roles = user_roles();
$roles = $user->roles;
$header_massiv_th = array();
$header_massiv_th[] = '<th>'.t('Operations').'</th>';
foreach ($roles as $role) {
$header_massiv_th[] = '<th>'.t($role).'</th>';
}
$header_th ='';
foreach ($header_massiv_th as $array_header_th) {
$header_th .= $array_header_th;
}
$form['check_user_roles_table'] = array(
'#type' => 'container',
'#weight' => 1,
'#prefix' => '<table id="permissions" >
<tbody><tr>'.$header_th.'</tr>',
'#suffix' => '</tbody>
</table>',
);
$fields= array('111111111' => '22222222','3333333333' => '444444444444');
$fields_keys = array_keys( $fields );
$i=1;
foreach ($fields as $fields_keys => $field) {
$form['check_user_roles_table']['data'][$fields_keys] = array(
'#type' => 'container',
'#weight' => $i++,
'#prefix' => '<tr>',
'#suffix' => '</tr>',
);
$form['check_user_roles_table']['data'][$fields_keys]['markup'] = array(
'#markup' => '(Field: '.$fields_keys.' )<span>',
'#prefix' => '<td class="permission">'.$field.'<br />',
'#suffix' => '</td>',
);
foreach ($roles as $role) {
$form['check_user_roles_table']['data'][$fields_keys][$role] = array(
'#type' => 'checkbox',
'#title' => t(''),
'#default_value' => variable_get( $fields_keys, 0),
'#prefix' => '<td class="checkbox">',
'#suffix' => '</td>',
'#weight' => $i++,
);
}
}
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Save permissions'),
'#submit' => array('gallery_banknotes_module_admin_settings_page_form_submit'),
'#weight' => 2,
);
//drupal_set_message(t('Submitting values: <pre>@values</pre>', array('@values' => var_export($form, TRUE))));
return $form;
?>