Как мне оформить кнопки API форм в Drupal? - PullRequest
2 голосов
/ 06 ноября 2008

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

Ответы [ 2 ]

4 голосов
/ 07 ноября 2008

Основная идея создания темы 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

3 голосов
/ 07 ноября 2008

У меня теперь есть функция, аналогичная

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

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

...