Drupal 6 - 如何使用主题自定义表单布局

时间:2010-06-29 10:25:18

标签: forms drupal-6

我已经使用CCK创建了新的内容类型并添加了新的表单项。我需要自定义表单的布局,我使用css部分管理并移动项目并在form_alter挂钩中添加自定义标记。然而,这仍然是不够的,因为权重似乎并没有完全按照我的要求去做。

有没有办法可以使用theme.tpl.php文件做到这一点?

由于 史蒂夫

1 个答案:

答案 0 :(得分:0)

曾经在同样的情况下我找到了一个非常简单的解决方案。

我需要一个高度自定义的注册表单,form_alter是一团糟。所以我在表单中使用了一个模板,并将每个字段打印到html输出中。

首先在你主题的template.php中为表单注册一个新模板。

<?php
function your-theme-name_theme() {
  return array( 
    'user_register' => array(
      'arguments' => array('form' => NULL),
      'template' => 'user-register',
    ),
  );
}
?>

现在为您的主题添加一个新模板。在我的情况下“user_register.tpl.php”。添加以下行,以便表单仍然有效。

<?php
print drupal_render($form['form_build_id']);
print drupal_render($form['form_id']);
print drupal_render($form['form_token']);
?>

从那里,您可以添加任意数量的html,并将表单字段放在您需要的地方。以下是性别和生日字段的示例。如您所见,您必须使用内部CCK名称。

<?php print drupal_render($form['field_profile_gender']); ?>
<?php print drupal_render($form['field_profile_birthday']); ?>

我没有为user_register之外的任何其他形式测试过这个,但我想只要模板名称等于表单的名称,它就应该有效。

我希望这会对你有所帮助。

此致

麦克