Как мне оформить кнопки API форм в Drupal?
-
06-07-2019 - |
Вопрос
Вывод по умолчанию из 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 заметил и использовал его автоматически.