2010-08-18 66 views
1

我将模块从5升级到6.我只有一个问题: 我可以访问它的设置页面,但无法看到它的内容。 这是我的代码:访问/请参阅自定义模块的设置页面

function agbnagscreen_menu() { 
    global $user; 
    $items = array(); 

    if (agbnagscreen_nag($user)) { 
//  var_dump($_GET['q']); die(); 
     drupal_goto(sprintf('%s/%s', AGBNAGSCREEN_NAGURL, base64_encode($_GET['q']))); 
     die(); 
    } 

    $items['admin/settings/agbnagscreen'] = array(
    // 'path' => 'admin/settings/agbnagscreen', 
     'title' => 'AGB nagscreen', 
     'access callback' => user_access('Einstellungen von AGB aendern'), 
     //'access' => user_access('Einstellungen von AGB aendern'), 
     'page callback' => 'drupal_get_form', 
     'callback arguments' => array('agbnagscreen_settings_fapi'), 
    ); 

    $items[AGBNAGSCREEN_NAGURL] = array(
    // 'path' => AGBNAGSCREEN_NAGURL, 
     'title' => 'Allgemeine Geschaeftsbedingungen', 
     'access' => TRUE, 
     'callback' => 'drupal_get_form', 
     'callback arguments' => array('agbnagscreen_fapi'), 
     'type' => MENU_SUGGESTED_ITEM, 
    ); 

    return $items; 
} 

我认为这个问题是由原因这一行:

'page callback' => 'drupal_get_form', 

是正确的吗?我怎么写它,它的工作原理?

回答

1

您可能需要阅读Drupal menu system (Drupal 6.x)手册页以了解对菜单系统的更改:hook_menu实施中有几个问题。

  1. 顶部永远不会在条件:Drupal的6只要求hook_menu()当菜单重建,而不是在每一页上的负载。
  2. 没有callback:使用page callback
  3. page callback接受page arguments而不是callback arguments
  4. access:使用access callback
  5. access callback总是包含函数名称的字符串,而不是函数,默认为"user_access":您需要提供access arguments

hook_menu实施的修改后的版本可能是:

function agbnagscreen_menu() { 
    $items = array(); 

    $items['admin/settings/agbnagscreen'] = array(
    'title' => 'AGB nagscreen', 
    'access arguments' => array('Einstellungen von AGB aendern'), 
    'page callback' => 'drupal_get_form', 
    'page arguments' => array('agbnagscreen_settings_fapi'), 
); 

    $items[AGBNAGSCREEN_NAGURL] = array(
    'title' => 'Allgemeine Geschaeftsbedingungen', 
    'access arguments' => array('access content'), 
    'page callback' => 'drupal_get_form', 
    'page arguments' => array('agbnagscreen_fapi'), 
    'type' => MENU_SUGGESTED_ITEM, 
); 

    return $items; 
}