Для Drupal 7 вам придется покопаться немного глубже, чтобы это исправить.
Начните с создания MY_THEME_form_element()
в вашем template.php , скопируйтевсе коды в theme_form_element()
- вы можете получить это из api.drupal.org .Добавьте условие, чтобы проверить, является ли элемент переключателем перед оператором switch($element['#element_display')
.Затем создайте новую функцию для обработки переключателя по-другому.
if ($element['#type'] == 'radio') {
$variables['rendered_element'] = ' ' . $prefix . $element['#children'] . $suffix . "\n";
$output .= theme('form_element_label', $variables);
} else {
switch ($element['#title_display']) {
Исходя из вышеизложенного, мы передаем отображение переключателя функции form_element_label()
, поэтому создаем MY_THEME_form_element_label()
и содержимое form_element_label()
в это.Отредактируйте эту новую функцию, заменив оператор return следующим образом:
if (!empty($variables['rendered_element'])) {
return ' <label' . drupal_attributes($attributes) . '>' . $variables['rendered_element'] . $t('!title !required', array('!title' => $title, '!required' => $required)) . "</label>\n";
} else {
return ' <label' . drupal_attributes($attributes) . '>' . $t('!title !required', array('!title' => $title, '!required' => $required)) . "</label>\n";
}
Это даст вам переключатель, размещенный внутри метки, а не под или над ней.
И, наконец, вы можетеподключитесь к theme_radios , чтобы добавить дополнительное форматирование к способу отображения списка радиокнопок.
Этот ответ был найден на этой ссылке. Он описывает решение с использованиемфлажок.
NB Вы также можете применить это при форматировании любого элемента.