【问题标题】:How do I theme Form API buttons in Drupal?如何在 Drupal 中为表单 API 按钮设置主题?
【发布时间】:2008-11-06 12:27:54
【问题描述】:

Drupal 表单 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) 但我的尝试到目前为止都没有成功。

【问题讨论】:

    标签: php drupal drupal-fapi drupal-theming


    【解决方案1】:

    如果您使用的是普通的 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

    这方面的文档可在 a.d.o 上找到。 :http://api.drupal.org/api/file/developer/topics/forms_api.html

    【讨论】:

      【解决方案2】:

      我现在有一个类似的功能

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-28
        • 2016-07-23
        相关资源
        最近更新 更多