2015-09-17 72 views
0

我在Drupal的新手,我正在開發一個定製module.Actually我完全Drupal的菜單的和他們的孩子在使用字段集和複選框對每個菜單列表循環。複選框值bolean代替菜單鏈接的機器名稱中的自定義模塊的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的每個菜單鏈接bolean價值,我不能客串哪個環節被檢查或0 not.Because或1不表示任何東西。但我想獲得菜單機器名稱和鏈接機器名稱。

我被困在這裏。

可以請你幫傢伙或建議我一些其他的方式來完成這件事情?

請幫忙。

回答

0

請改變你的代碼首先使用foreach循環建立的選項排列您正在運行

$選項=陣列(); $ menu_items = menu_load_links($鍵);

的foreach($ menu_items爲$密鑰=> $值){

$選項[$值[ 'LINK_TITLE']] = $值[ 'LINK_TITLE'];

}

$形式[ '名稱'] =陣列(

'#TYPE'=> '複選框',

'#title'=> '任何標題',

'#description'=> '任何說明',

'#options'=> $選項,

);

相關問題