Как мне оформить кнопки Form API в Drupal?

По умолчанию API форм Drupal выводит:

<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>

Мне нужен внутренний тег span, чтобы я мог использовать технику CSS раздвижных дверей.

Думаю, мне нужно переопределить theme_button ($ element) из form.inc, но мои попытки пока не увенчались успехом.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
7 126
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Основная идея оформления form_foo, если вы используете простую тему PHP (например, Chameleon), - это написать функцию с именем 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

Теперь у меня есть функция вроде

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

Чтобы заставить его работать, я просто очистил кеш, и Drupal это заметил и использовал автоматически.

Другие вопросы по теме