Как поменять местами в webform description и input

Главные вкладки

Аватар пользователя megabait megabait 25 ноября 2011 в 14:30

Как поменять местами в webform description и input т.е. должен идти такой порядок label, description, input (textarea, textfield, checkbox и т.п.) на drupal.org наковырял такой код все отлично работает, меняет местами как надо только одно НО: лейбл в checkbox становится не активным т.е. каждый раз надо кликать на сам checkbox, а не на лейбл. А у меня по дизайну он спрятан, помогите сделать его кликабельным

<?php/**
* Replacement for theme_form_element().
*/
function bmc_zen_form_element($element, $value) {
  $wrapper_classes = array(
   'form-item',
  );
  $output = '<div class="' . implode(' ', $wrapper_classes) . '" id="' . $element['#id'] . '-wrapper">' . "\n";
  $required = !empty($element['#required']) ? '<span class="form-required" title="' . t('This field is required.') . '">*</span>' : '';

  if (!empty($element['#title'])) {
    $title = $element['#title'];
    $output .= ' <label for="' . $element['#id'] . '">' . t('!title: !required', array('!title' => filter_xss_admin($title), '!required' => $required)) . "</label>\n";
  }

//not every element looks right with the description above it.
  If (array_key_exists('#webform_component',$element) && $element['#type']!='checkbox'){
  if (!empty($element['#description'])) {
$output .= ' <div class="description">' . $element['#description'] . "</div>\n";
  }  
  $output .= '<div id="' . $element['#id'] . '">' . $value . '</div>' . "\n";
  } else {
  $output .= '<div id="' . $element['#id'] . '">' . $value . '</div>' . "\n";
  if (!empty($element['#description'])) {
$output .= ' <div class="description">' . $element['#description'] . "</div>\n";
  } 
  }
  $output .= "</div>\n";

  return $output;
}?>

Комментарии

Аватар пользователя megabait megabait 26 ноября 2011 в 19:15

нашел проблему к div добавлялся такой же класс как и к label. Терерь рабочий код

<?php/**
* Replacement for theme_form_element().
*/
function YOURTHEME_form_element($element, $value) {
  $wrapper_classes = array(
   'form-item',
  );
  $output = '<div class="' . implode(' ', $wrapper_classes) . '" id="' . $element['#id'] . '-wrapper">' . "\n";
  $required = !empty($element['#required']) ? '<span class="form-required" title="' . t('This field is required.') . '">*</span>' : '';

  if (!empty($element['#title']) && ($element['#title_display'] != 'none')) {
    $title = $element['#title'];
    $output .= ' <label for="' . $element['#id'] . '">'. t('!title: !required', array('!title' => filter_xss_admin($title), '!required' => $required)) . "</label>\n";
  }

//not every element looks right with the description above it.
  If (array_key_exists('#webform_component',$element) && $element['#type']!='checkbox'){
  if (!empty($element['#description'])) {
$output .= ' <div class="description">' . $element['#description'] . "</div>\n";
  }  
  $output .= '<div id="' . $element['#id'] . '-wrap">' . $value . '</div>' . "\n";
  } else {
  $output .= '<div id="' . $element['#id'] . '-wrap">' . $value . '</div>' . "\n";
  if (!empty($element['#description'])) {
$output .= ' <div class="description">' . $element['#description'] . "</div>\n";
  } 
  }
  $output .= "</div>\n";

  return $output;
}?>