Значения флажков являются булевыми, а не имя компьютера ссылки меню в пользовательском модуле drupal

Я новичок в drupal и занимаюсь разработкой пользовательского модуля. На самом деле я перечисляю все меню drupal и их детей, используя fieldset и флажки для каждого меню в цикле.

Вот что я сделал до сих пор.

function hide_menu_item_configuration_form($node, &$form_state){

$form = array();

$form['markup'] = array(
'#type'=>'markup',
'#markup'=>t('<p>Select a menu.</p>'),
);

$menus = menu_get_menus($all = TRUE);
foreach ($menus as $key => $value) {
$form['menus'][$value] = array(
  '#type'=>'fieldset',
  '#title'=>t($value),
  '#collapsible' => TRUE,
  '#collapsed' => TRUE,
);
$menu_items = menu_load_links($key);
 foreach ($menu_items as $key => $values) {
   $form['menus'][$value][$values['link_title']] = array(
    '#type'  => 'checkbox',
    '#title' => t($values['link_title']),
    '#' => t($values['link_title']),
    '#default_value' => 1
    );
 }
}
$form['config_submit'] = array(
'#type'=>'submit',
'#value'=>'Save configuration',
);
return $form;
}

function hide_menu_item_configuration_form_submit(&$form, &$form_state)     { 
 //here i see values
dsm($form_state);
}

Теперь проблема в том, что при отправке формы я получаю логическое значение для каждой ссылки меню, например, 0 или 1. В этом случае я не могу угадать, какая ссылка была проверена или нет. Из-за 0 или 1, который не указывает что угодно. Но я хочу получить имя машины меню и имя машины связи.

Я застрял здесь.

Ребята, не могли бы вы помочь или предложить какой-нибудь другой способ завершить эту вещь?

Пожалуйста помоги.

1 ответ

Решение

Пожалуйста, измените ваш код, сначала соберите массив параметров, используя цикл foreach, который вы выполняете.

$ options = array (); $ menu_items = menu_load_links ($ key);

foreach ($ menu_items как $ key => $ values) {

$ options [$ values ​​['link_title']] = $values ​​['link_title'];

}

$ Форма [ 'имя']= массив (

'#Type' => 'флажок',

'#title' => 'any title',

'#description' => 'any Description',

'#options' => $ options,

);

Другие вопросы по тегам