Drupal 6 为什么在创建新菜单项后出现页面未找到错误?

Drupal 6 为什么在创建新菜单项后出现页面未找到错误?,drupal-6,drupal-routes,Drupal 6,Drupal Routes,在我的模块文件中,我创建了一个新的菜单项 function xmlproject_menu() { $items = array(); //more items here $items['system/xml/cfa/initialize/%/%/%/%/%'] = array( 'page callback' => 'xmlproject_initialize_cf', 'page arguments' => array(4, 5, 6, 7, 8

在我的模块文件中,我创建了一个新的菜单项

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

  //more items here

  $items['system/xml/cfa/initialize/%/%/%/%/%'] = array(
    'page callback' => 'xmlproject_initialize_cf',
    'page arguments' => array(4, 5, 6, 7, 8,),
    'access callback' => TRUE,
    'type' => MENU_CALLBACK,
  );

  return $items;
}

function xmlproject_initialize_cf($session_id, $cart_id, $pid, $rid, $partner_id)
{
  //some code here
}
我已尝试转到admin/build/modules、devel/menu/reset和admin/settings/performance以清除缓存。我可以在数据库中看到菜单项(菜单)。


当我转到时,我得到的是“未找到页面”。

您的代码看起来非常漂亮,但我认为您的页面回调“xmlproject\u initialize\u cf”实际上应该返回一些内容

试试这个:

function xmlproject_initialize_cf($session_id, $cart_id, $pid, $rid, $partner_id)
{
  // Your Code
  return 'Hello world!';
}

模块名是否为“xmlproject”?

您的代码似乎没有任何问题。 奇怪的是,为什么要将数组的最后一个元素保留为“空”(数字8后的逗号)

此外,数组中还有额外的空项(在菜单回调后有额外的逗号)


正如您在数据库
number\u part
列中看到的,该列包含路由器路径中的部件数,设置为7(最大可用部件),但菜单回调的部件数为9。这比drupal 6中的可用部件数还要多。这就是为什么找不到
页面
只要减小菜单项的大小,您就可以开始了。例如:

$items['initialize/%/%/%/%/%'] = array(
    'page callback' => 'xmlproject_initialize_cf',
    'page arguments' => array(4, 5, 6, 7, 8),
    'access callback' => TRUE,
    'type' => MENU_CALLBACK,
 );

这不是问题,如果回调没有返回任何东西,页面应该为空,但找不到OP getting页面
'type' => MENU_CALLBACK,
$items['initialize/%/%/%/%/%'] = array(
    'page callback' => 'xmlproject_initialize_cf',
    'page arguments' => array(4, 5, 6, 7, 8),
    'access callback' => TRUE,
    'type' => MENU_CALLBACK,
 );