Вывести checkbox в таблице

Главные вкладки

Аватар пользователя fil.diesel fil.diesel 11 февраля 2012 в 19:58

Здраствуйте! Подскажите как вывести 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))));
}
?>

Если кого не затруднит, натолкните на путь истенный!

Комментарии

Аватар пользователя fil.diesel fil.diesel 12 февраля 2012 в 6:55

"Shok211" wrote:
tableselect Form API

Вы сами пробовали им пользоваться? читали описание?
Ч/з tableselect создается таблица с крайней левой колонкой опций!
В моем же случае ряд горизонтальных чекбоксов!

Аватар пользователя Shok211 Shok211 12 февраля 2012 в 9:31

Ладно Ладно, Тогда есть ещё один вариант напиши функцию темизации checkboxe's свою по принципу tableselect, и добавьте в #theme => horiztaltableselect

Аватар пользователя fil.diesel fil.diesel 12 февраля 2012 в 12:22

Эх... тот же х.. только в левой руке получается))
В общем проблему решил! некогда расписывать.. если кого заинтересует код:

<?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_keys0),
       
'#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;
?>