使用PHPTemplate覆盖表单

时间:2011-03-08 14:38:53

标签: drupal templates forms themes

我想知道如何使用PHPTemplate覆盖表单在Drupal 7中的显示方式。我在显示页面上的所有信息时遇到了一些困难。

我有一个包含表单和一些其他信息的页面。

我试过了:

foo.module

function foo_add_form($form, &$form_state, $foo) {

  ...

  $form['#theme'] = 'foo_add';

  return $form;
}

function foo_theme($existing, $type, $theme, $path) {
  return array(
    'foo_add' => array(
      'template' => 'foo-add',
      'render element' => 'form',
    ),
  );
}

FOO-add.tpl.php

<?php
    // First form
    print drupal_render_children($form);
?>
<!-- Miscellaneous information -->
    <div id="links">
        <ul>...</ul>
        <form action="#" method="post" id="second-form">
            <fieldset id="i-want">
             ...
                </fieldset>
                    ...
            </form>
    </div>

目前正在显示表格和杂项信息。但是,第二种形式(id =“second-form”)正以某种方式被删除。我可以在源代码中看到它,但是当我用chrome / firefox检查元素时,我再也看不到表单元素了。我可以看到div,ul和fieldset标签。

以前是否有人这样做过?

1 个答案:

答案 0 :(得分:0)

通常,您不会在主题图层添加表单。相反,您将使用自定义模块,实现hook_form_alter来修改表单。