Добавить свойство CSS для отдельных компонентов в элементах формы - Drupal

У меня есть друпал форма, и мне нужно добавить отдельные классы для компонентов в элементе формы.

То есть мне нужно добавить атрибут class='text' в 'textbox (фактическое поле)' и class='title' в 'textbox title' (#title').

Как мне это сделать?

2 ответа

Решение

Кто-то уже ответил на ваш вопрос Удалите class= "form-item" из форм Drupal.
Эта функция дает возможность добавить class= 'title' к заголовку.
Но для class= 'text' вы должны иметь theme_textfield (или theme_textarea) для собственного template.php
Взять коды от./included/form.inc
Но я рекомендую делать тематику необходимой пользовательской формы, а не всех элементов формы. Где-то это может вызвать конфликты стилей и т. Д. Конечно, если клиент не требует изменения всех элементов формы. В реальном случае изменение элементов по умолчанию не требуется.

В первом случае - добавление класса к самому текстовому полю - используйте #attributes имущество:

$form['foo'] = array(
  '#type' => 'textfield',
  '#title' => t('Textbox title'),
  '#attributes' => array(
    'class' => array('text'), // change to just 'text' for Drupal 6
  ),
);

Во втором случае - добавление класса к метке - вам не повезло с API форм. Вместо этого вы можете настроить таргетинг, используя класс-оболочку для поля и метки:

.form-item-field-foo label {
  /* CSS here */
}
Другие вопросы по тегам