You are here

关于回调一个页面/表单/menu

smzz 的头像
Submitted by smzz on 星期一, 2008-12-01 23:55

比方说,以前我有个添加某个类型node的页面: node/add/foo,现在我通过hook_menu规划了一些菜单和路径。请问怎样才能在新的路径(mymenu/foo/add)里回调另外一个页面?
btw, 我尝试在mymenu/foo/add对应的函数里返回一个form:
<code>
$node = array('type' => 'foo');
return drupal_get_form('hook_form', $node);
</code>
但在hook_form()总是无法通过node_get_types()获取对应节点,而且打印参数$node,几乎是个空数组:
Array ( [storage] => [submitted] => [post] => Array ( ) )
thx!

论坛:

g089h515r806 的头像

你试试node_form(&$form_state, $node),先不用drupal_get_form.我上周实现你说的功能,从drupal.org上找的代码,不过后来需求变了,把原来的代码删了,找不到具体的代码了。你看看node_form这个函数,我记得它给了我提示。

g089h515r806 的头像

$new_blognode = new stdClass();$new_blognode->type = 'forum';module_load_include('inc', 'node', 'node.pages');$output .= drupal_get_form('forum_node_form', $new_blognode);print $output;
还有,node_add这个函数,还有drupal_render,
另外参考一下从细节看drupal6性能的提升,我曾实现类似的功能,具体的代码被删了。原有的代码没有了,另外代码是拷贝的,用完以后没有印象了,大概还记得这么一点点。希望对你有所提示。

g089h515r806 的头像

我也是前几天遇到过这个问题,当时找了半天,终于解决了。不然也不会,虽然代码删除了,但是还是有点印象的。很少有人遇到这样的问题啊,你的客户一定苛刻了