2

Drupal 的 Form API 的默认输出是:

<input id="edit-submit" class="form-submit" type="submit" value="Save" name="op"/>

我如何主题,所以我得到:

<button id="edit-submit" class="form-submit" type="submit">
  <span>Save</span>
</button>

我需要内部跨度标签,所以我可以使用滑动门 CSS 技术。

我想我需要从 form.inc 覆盖 theme_button($element) 但到目前为止我的尝试没有成功。

4

2 回答 2

4

如果您使用的是普通的 PHP 主题(如 Chameleon),主题化 form_foo 的基本思想是编写一个名为 theme_form_foo() 的函数。

您还可以专门为一个元素(如此按钮)指定主题,方法是为它声明一个主题函数。见https://api.drupal.org/api/drupal/developer%21topics%21forms_api_reference.html/7

请注意,对于 D6,在这两种情况下,您都需要在主题注册表中声明该函数,否则 Drupal 不会注意到此覆盖。这在 D5 中不是必需的。如果您使用的是 phptemplate,那么您也将需要它,尽管 PHPtemplate 会处理表单案例之外的注册表:http: //drupal.org/node/132442#theme-registry

ado 上提供了这方面的文档:http: //api.drupal.org/api/file/developer/topics/forms_api.html

于 2008-11-07T07:49:47.230 回答
3

我现在有一个功能

function mytheme_button($element) {
  return "<button><span></span></button>"; # lots of code missing here for clarity
}

为了让它工作,我简单地清除了缓存,Drupal 注意到并自动使用它。

于 2008-11-07T09:42:47.080 回答