Drupal / jQuery / CSS :: Обернуть метку переключателя в тег span? - PullRequest
0 голосов
/ 01 августа 2011

Когда переключатель отображается в Drupal, он выглядит как:

<label class="form-radio" for="sample">
  <input type="radio" name="samp" value="1" />Sample
</label>

Я изучал функции тем (а именно, theme_radios и theme_form_element , но не могу понять, как отобразить вывод, например

<label class="form-radio" for="sample">Sample</label>
<input type="radio" name="samp" value="1" />.  

Может ли кто-нибудь указать мне правильное направление? Прочесывал форумы, но не нашел ничего, что могло бы помочь ... Я бы даже был рад решению jquery ...

Ответы [ 3 ]

2 голосов
/ 02 августа 2011

Звучит так, как будто вы были близко & mdash; функция заголовка радиовхода single - это theme_ radio (не theme_radio s , который существует, но отличается)

Для этого создайте функцию переопределения в template.php вашей темы на основе theme_radio , т.е.

<?php
function mytheme_radio($element) {
  _form_set_class($element, array('form-radio'));
  $output = '<input type="radio" ';
  $output .= 'id="' . $element['#id'] . '" ';
  $output .= 'name="' . $element['#name'] . '" ';
  $output .= 'value="' . $element['#return_value'] . '" ';
  $output .= (check_plain($element['#value']) == $element['#return_value']) ? ' checked="checked" ' : ' ';
  $output .= drupal_attributes($element['#attributes']) . ' />';
  if (!is_null($element['#title'])) {
    $output = '<label class="option" for="' . $element['#id'] . '">' . $element['#title']  . '</label>' . $output;
  }

  unset($element['#title']);
  return theme('form_element', $element, $output);
}
?>

(Это работает для любой функции темы, найденной в /include/form.inc; не забудьте назвать функцию переопределения после вашей темы.) Предполагается, что вы используете Drupal 6 на основе отправленной вами ссылки.

1 голос
/ 01 августа 2011

Вы можете попробовать это после загрузки страницы

$(function(){
  $("lable.form-radio").each(function(){
     $(this).after($(this).find("input[name=samp]"));
  });
});
0 голосов
/ 22 апреля 2016

Еще одно решение вопроса "Как стилизовать с помощью css-радио внутри этикетки?" Для Bootstrap тема его проблема)) Мы можем обернуть заголовок радио метки в этот файл:

сайты / все / темы / начальной загрузки / шаблоны / система / элемент формы-label.func.php

В строках с $output добавить к $title строку тега span 70, 80, 89

например. $output .= '<span>' . $title . '</span>';

3 дня на поиск ответа))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...