【发布时间】:2011-10-15 00:17:09
【问题描述】:
我正在创建一个自定义模块。我想实现一个可以用作块的表单,并在查询对话框中使用(加载了 ajax 请求)。我已经创建了块没问题。我也创建了页面回调函数没问题。
所以,我可以在一个块中加载表单,然后我可以打开 jquery 对话框,它会通过 ajax 请求获取表单。但是,它会加载表单和完整的页面模板以及页眉和页脚等......
我想要做的是在获取 ajax 调用时使用不同的页面模板,这样我得到的只是表单。但是,我在网上看到的一切似乎都是 drupal 6 和 7 之间的混合体,我还没有得到任何工作。
这是我最近的尝试:
在菜单挂钩中
$items['mymodule/get_form_ajax'] = array(
'title' => 'Ajax Form',
'type' => MENU_CALLBACK,
'page callback' => 'get_form_ajax',
'access arguments' => array('access content'),
);
然后我有回调:
function get_form_ajax() {
$form = drupal_get_form('request_form');
$build['items'] = array(
'#theme' => 'request_form',
'#items' => $form,
);
return $build;
}
然后我以这种方式注册了主题:
function mymodule_theme($existing, $type, $theme, $path){
return array(
'request_form' => array(
'template' => 'request_form',
'render element' => 'form',
)
);
}
无论如何,这完全行不通。它只是在对话框中呈现一个空页面。任何帮助将不胜感激。
【问题讨论】:
标签: drupal drupal-7 drupal-modules drupal-theming