我已经使用CCK创建了新的内容类型并添加了新的表单项。我需要自定义表单的布局,我使用css部分管理并移动项目并在form_alter挂钩中添加自定义标记。然而,这仍然是不够的,因为权重似乎并没有完全按照我的要求去做。
有没有办法可以使用theme.tpl.php文件做到这一点?
由于 史蒂夫
答案 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之外的任何其他形式测试过这个,但我想只要模板名称等于表单的名称,它就应该有效。
我希望这会对你有所帮助。
此致
麦克