Значения флажков являются булевыми, а не имя компьютера ссылки меню в пользовательском модуле 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,
);