2

我现在正在阅读 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 中看到的任何功能执行此操作。

在此先感谢您的帮助!

4

3 回答 3

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

其中参数的内容在Parameters$item下明确列出。

于 2009-08-07T17:53:35.503 回答
4

如果您使用的是开发模块,我喜欢抛出一个

dsm($item)

在那里查看 $item 当前包含的内容。它打印了一个很好的交互式数组/对象导航器。

当然,您仍然必须去 API 查找所有可能性,因为这仅显示当前设置的内容。但它通常包含足够的内容来获得我正在寻找的东西。

于 2009-08-07T17:59:12.807 回答
0

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

于 2009-08-07T21:53:50.930 回答