复选框值是布尔值,而不是自定义模块drupal中菜单链接的机器名



我是drupal新手,我正在开发一个自定义模块。实际上,我列出了所有drupal菜单和他们的孩子使用字段集和复选框对每个菜单在一个循环。

这是我到目前为止所做的。

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没有任何意义。但是我想要得到菜单机名和链接机名。

我被困在这里了。

你们能帮我或者建议我用其他方法来完成这件事吗?

请帮。

请修改您的代码,首先使用foreach循环构建选项数组

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

foreach ($menu_items => $values) {

选择美元(美元值[' link_title ']] = $值("link_title");

}

美元形式['名字']=阵列(

"#类型"=>"复选框",

' #标题' => '任何标题,

'#description' => '任意description',

'#options' => $options,

);

最新更新