drupal钩子函数及其参数

时间:2009-08-07 17:49:32

标签: php drupal drupal-6 drupal-modules

我现在正在阅读Pro Drupal开发,第82页的示例使用以下函数:

function menufun_menu_link_alter(&$item, $menu){  
  if ($item['link_path'] == 'logout'){  
    $item['link_title'] = 'Sign off';  
  }
}

据我所知,通过查看api.drupal.org,我可以找出“hook_menu_link_alter”的参数。我不明白的是我应该如何找出$ item实际包含的内容。在这个例子中,$ item ['link_path']和$ item ['link_title']都被使用 - 他怎么知道它们存在?

当然,我不仅对这个具体的例子感兴趣。我希望能够为我在drupal中看到的任何函数执行此操作。

提前感谢您的帮助!

3 个答案:

答案 0 :(得分:6)

如果你去了api.drupal.org并查了hook_menu_link_alter,你会看到这个页面:

http://api.drupal.org/api/function/hook_menu_link_alter/6

其中包括以下注释:

$item关联数组,定义传递给menu_link_save()的菜单链接。”

如果您点击menu_link_save页面的链接,就会在这里:

http://api.drupal.org/api/function/menu_link_save/6

$item参数的内容明确列在参数下。

答案 1 :(得分:4)

如果您正在使用Devel模块,我想抛出一个

dsm($item)

在那里查看$ item目前包含的内容。它打印出一个漂亮的交互式数组/对象导航器。

当然,你仍然需要去API查找所有可能性,因为这只显示了当前设置的内容。但它通常包含足以得到我正在寻找的东西。

答案 2 :(得分:0)

使用API​​文档或显示变量都是获取信息的好工具。它们都有它们的优点,使用devel在调试时非常有用,并且想看看发生了什么。成为一个优秀的drupal开发人员的一个重要部分是不知道所有事情,但更多的是能够追踪相关信息。有时,查看其他人的代码或代码也很有用。当你想做类似的事情时,看看别人如何做事有时会有很多帮助。谷歌也可以成为一个好工具或与某个人讨论问题。有许多可能性,您只需要学习如何使用这些工具并使用适合您的工具。在api.drupal.org上花了更多时间之后,你可以更好地提取信息。