Вопрос

Вывод по умолчанию из 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, но мои попытки пока не увенчались успехом.

Это было полезно?

Решение

Основная идея создания темы 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 заметил и использовал его автоматически.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top