2012-07-24 60 views
2

我希望你能帮助我,因为我不知道如何在Drupal 7的hook_menu中调用一个节点。如何在钩子菜单中调用节点?

这可能吗?

$items['basketfacile/planning'] = array(
     'type' => MENU_LOCAL_TASK, 
     'title' => 'Test', 
     'description' => "description", 
     'page callback' => 'drupal_get_form', 
     'page arguments' => array('basketfacile_plannings_form'), 
     'access arguments' => array('access content') 
    ); 

这是谁调用一个形式我的项目菜单,但我想叫这在我的Drupal安装媒体链接存在的节点形式。我们可以拿文章举例。

你有什么想法吗?

+0

我可以问你为什么你需要做到这一点? 您可以将现有的$ items [node/add /%]数组复制到您的自定义菜单钩子,或者使用basketfacile/planning更容易地将节点/ add/X路径别名复制。这样,你有实际的许可使用,而不是访问内容的权限.. 如果你想改变形式,使用form_alters。 – 2012-07-24 17:16:02

+0

可能是一个愚蠢的http://stackoverflow.com/questions/5344754/drupal-7-how-to-display-node-add-sometype-form-on-another-page – 2012-07-24 17:18:53

+0

感谢您的帮助,但我发现如何做我想做的事。看到我的回答 – 2012-07-24 17:31:59

回答

3

事实上,它很容易嵌入一个节点在其他页面,你可以这样做:

$items['menu/submenu'] = array(
     'type' => MENU_LOCAL_TASK, 
     'title' => 'YOUR_TITLE', 
     'description' => "YOUR_DESCRIPTION", 
     'page callback' => 'node_add', 
     'page arguments' => array('YOUR_NODE_TYPE_NAME_MACHINE'), 
     'access callback' => 'node_access', 
     'access arguments' => array('create', 'YOUR_NODE_TYPE_NAME_MACHINE'), 
     'file' => 'node.pages.inc', 
     'file path' => drupal_get_path('module', 'node') 
);