Drupal - окружает определенные элементы веб-формы div - PullRequest
3 голосов
/ 16 января 2012

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

Я поймал форму с hook_form_alter, но понятия не имею, что делать после.

Любая помощь?

Ответы [ 3 ]

1 голос
/ 16 января 2012

В вашем файле theme.php themes вам нужно получить идентификатор формы, а затем вы можете сделать что-то вроде следующего:

function phptemplate_webform_form_FORM_ID ($form) {
  $form['#prefix'] = '<div class="CLASS NAME">';
  $form['#suffix'] = '</div>';
  return _phptemplate_callback('webform_form_FORM_ID', array('form' => $form));
}

Замените FORM_ID на идентификатор вашей формы.

РЕДАКТИРОВАТЬ

Чтобы добавить их для определенных полей, просто сделайте (что-то вроде) это:

$form['ELEMENT_NAME']['#prefix'] = '<div class="CLASS NAME">';
$form['ELEMENT_NAME']['#suffix'] = '</div>';

У меня нет времени, чтобы проверить это, но замените ELEMENT_NAME на элементи это должно решить вашу проблему.Здесь есть хорошая страница - http://drupal.org/node/79086

0 голосов
/ 26 января 2016

Дополнительно: если вы хотите добавить содержащие div'ы к кнопке отправки веб-формы, вот вам подсказка:

function YOURTHEMENAME_form_alter(&$form, &$form_state, $form_id) {

    if ($form['#form_id'] === 'webform_client_form_YOURWEBFORMID') {
        $form_structure = &$form['submitted'];

        $form['actions']['submit']['#prefix'] = '<div class="extra_div">';
        $form['actions']['submit']['#suffix'] = '</div>';
    }

}

Если вы хотите применитьэто для всех веб-форм, вы просто оставляете условное выражение, как это:

function YOURTHEMENAME_form_alter(&$form, &$form_state, $form_id) {

    $form_structure = &$form['submitted'];

    $form['actions']['submit']['#prefix'] = '<div class="extra_div">';
    $form['actions']['submit']['#suffix'] = '</div>';    
}
0 голосов
/ 19 сентября 2014

Вы можете использовать #field_prefix и #field_suffix, чтобы обернуть поле любым элементом HTML. Смотрите пример ниже:

    function auworks_form_alter(&$form, $form_state, $form_id) {
      switch($form_id) {
        case 'webform_client_form_1':
          $form['submitted']['title']['#field_suffix'] = '<span class="field-suffix">#</span>';
          break;
      }
    }

Дайте мне знать, как вы идете ...

...