我在Drupal中使用自定义模块,但它给了我以下两个警告:
Warning: Invalid argument supplied for foreach() in menu_unserialize() (line 377 of /site/includes/menu.inc).
Warning: Invalid argument supplied for foreach() in menu_unserialize() (line 377 of /site/includes/menu.inc).
Run Code Online (Sandbox Code Playgroud)
这是模块的代码:
<?php
function homepage_coords_menu(){
return array(//$items
'homepage_coords/%node/%/%' => array(
'page callback' => 'homepage_coords_ajax_callback',
'page arguments' => array(1,2,3),
'access arguments' => TRUE,
'type' => MENU_CALLBACK,
)
);
}
function homepage_coords_ajax_callback($nid=0,$x=0,$y=0){
return 'nid:'.$nid.' x:'.$x.' y:'.$y;
}
?>
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能修复这些警告?
任何有效的改进也将不胜感激:)
Ber*_*dir 21
要允许访问所有,您需要将"访问回调"设置为TRUE,而不是"访问参数".另外,您确定没有该页面的访问定义吗?
您的编码风格是非典型的,当您习惯于默认的方式时,这很难阅读.有关示例,请参阅node_menu().我最初以为你是用老式的Drupal 5方式做的.
看起来第一个参数是一个节点,我建议你使用%node,然后菜单系统会自动加载节点,如果参数是有效的节点id,则只调用你的页面回调.键看起来像这样:"homepage_cords /%node /%/%".
| 归档时间: |
|
| 查看次数: |
6708 次 |
| 最近记录: |