我是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,
);