1

我有一个模块,其中包括多步表单。我决定让这些步骤之一像这样工作:每个员工的空闲时间呈现为 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 甚至能够处理复杂的表单和表单布局吗?

4

0 回答 0