我有一个模块,其中包括多步表单。我决定让这些步骤之一像这样工作:每个员工的空闲时间呈现为 html 元素,当单击元素时,Javascript 会将值应用于隐藏的输入字段。
所以我找到了这个教程:http ://drupal.org/node/1092122但它对我不起作用,也许我犯了一个错误,也许不是。
我的模块名称是预订。我的模板文件名为reservation_select_time_week_page.tpl.php,它位于reservation/theme 文件夹中。
我有这些功能:
function reservation_theme() {
// basic things
$module_path = drupal_get_path('module', 'reservation');
$base = array(
'path' => "$module_path/theme",
);
// define themes
return array(
'reservation_select_time_form' => $base + array(
'render element' => 'form',
'template' => 'reservation_select_time_week_page',
),
);
}
function template_preprocess_reservation_select_time_week_page(&$variables) {
echo "this works!";
}
function template_preprocess_select_time_form(&$variables) {
echo "this works!";
}
我不知道哪些预处理函数是正确的(应该根据模板名称还是表单 ID 命名?
无论如何,自定义模板不适用。
我也尝试过使用:
$form['start_time'] => array('#theme' => 'reservation_select_time_week_page');
我得到了它的工作,以便在模板文件中呈现静态 html,但我不知道如何在模板文件中呈现表单元素。使用:
drupal_render($form)
我认为导致表单进入无限循环。
Drupal 甚至能够处理复杂的表单和表单布局吗?