добавить title каждой кнопке типа radio button

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

Аватар пользователя mozh mozh 27 августа 2015 в 15:41

как добавить title каждому пункту radio button? а не только всему полю
можно Jquery впилить, но может это как-то через alter делается

пытался добавить title, но не понятно куда

Комментарии

Аватар пользователя Nikit Nikit 27 августа 2015 в 15:57

Не совсем title, попробуй:

$form['field_type'][LANGUAGE_NONE]['Text'] = array(
  '#description' => t('Текст описания текст'),
);
$form['field_type'][LANGUAGE_NONE]['Image'] = array(
  '#description' => t('Текст описания рисунка'),
);
// ...
Аватар пользователя mozh mozh 27 августа 2015 в 16:52

Спасибо за ответ
получилось зацепиться за input так
<?php$element['field_type']['und']['Text']['#attributes']['title'] = t('Текст описания текст');?>
вывод

<div class="form-item form-type-radio form-item-field-collection-und-0-field-type-und">
<input title="Текст описания текст" type="radio" id="edit-field-collection-und-0-field-type-und-text" name="field_collection[und][0][field_type][und]" value="Text" class="form-radio">
<label class="option" for="edit-field-collection-und-0-field-type-und-text">&rlm;Text &rlm;</label>
</div>

но мне бы label или родительский div

такая строка меняет содержимое label
<?php$element['field_type']['und']['Text']['#title'] = t('Текст описания текст');?>
<label class="option" for="edit-field-collection-und-0-field-type-und-text">&rlm;Текст описания текст &rlm;</label>

Аватар пользователя mozh mozh 28 августа 2015 в 10:39

это немного не то, нужно темизировать форму именно добавления ноды, а указанный шаблон темизирует вывод поля в ноде. (Попробовал на одном из полей)

Аватар пользователя mozh mozh 28 августа 2015 в 12:03

это ужас какой-то.
в template.php добавил

<?php
/**
 * Implements hook_preprocess_field().
 */
function themename_preprocess_field(&$variables) {
    
dpm($variables);
}
?>

ничего не выводит, потом нашел такую инфу https://gist.github.com/jacine/1184302
создал шаблон поля в шаблоне сайта, добавил туда хук выше с именем шаблона темы и ничего(

Аватар пользователя mozh mozh 28 августа 2015 в 13:24

Спасибо вам за помощь. Как посмотреть данные в переменной &$vars ? dpm ничего не показывает, добавил все в template.php
В общем пока что зацепил с помощью jQuery

var video_add_node = $('#edit-field-collection-und-0-field-type-und-video');
if(video_add_node.length > 0){
        video_add_node.next('label').attr('data-toggle','tooltip').attr('data-original-title','Add video').attr('title','Add video');
}

результат

<?php
<div class="form-item form-type-radio form-item-field-collection-und-0-field-type-und" title="Add Video">
    <
input type="radio" id="edit-field-collection-und-0-field-type-und-video" name="field_collection[und][0][field_type][und]" value="Video" class="form-radio">
    <
label class="option" for="edit-field-collection-und-0-field-type-und-video">&rlm;Video &rlm;</label>
</
div>
?>

но вопрос остался в силе, как это сделать средствами drupal

Аватар пользователя mozh mozh 10 ноября 2015 в 11:50

Да
devel дал права для всех ролей
чищу кеш
захожу в форму добавления ноды под пользоветелем - нету
захожу админом в форму добавления ноды - нету
чищу кеш, обновляю пару раз страницу - нету

Аватар пользователя mozh mozh 28 августа 2015 в 14:26

"Nikit" wrote:
введи неправильный код, сайт дохнет?

нет, хм почему-то не отрабатывает вся функция

<?phpfunction firji_preprocess_form_element(&$vars) {
  dpm($vars);
  asdasd asd asd asd asd
}?>

из под админа при добавлении через админ интерфес не дохнет
а вот из под пользователя
Parse error: syntax error, unexpected 'asd' (T_STRING) in /var/www/vhosts/..../drupal...../sites/all/themes/..../template.php on line 160

UPD
получил инфу dpm из под авторизованного пользователя, поиграл с permissions devel для роли
но когда делал с помощью JQuery выяснил что инфу нужно добавлять в label
а тут в массиве нет ничего похожего, в children есть input только

<pre>Array
(
    [#type] =&gt; radio
    [#title] =&gt; Video
    [#return_value] =&gt; Video
    [#default_value] =&gt; Image
    [#attributes] =&gt; Array
        (
        )

    [#parents] =&gt; Array
        (
            [0] =&gt; field_collection
            [1] =&gt; und
            [2] =&gt; 0
            [3] =&gt; field_type
            [4] =&gt; und
        )

    [#id] =&gt; edit-field-collection-und-0-field-type-und-video
    [#ajax] =&gt;
    [#weight] =&gt; 0.003
    [#input] =&gt; 1
    [#process] =&gt; Array
        (
            [0] =&gt; ajax_process_form
        )

    [#theme] =&gt; radio
    [#theme_wrappers] =&gt; Array
        (
            [0] =&gt; form_element
        )

    [#title_display] =&gt; after
    [#pre_render] =&gt; Array
        (
            [0] =&gt; ctools_dependent_pre_render
        )

    [#after_build] =&gt; Array
        (
            [0] =&gt; conditional_fields_element_after_build
        )

    [#defaults_loaded] =&gt; 1
    [#tree] =&gt; 1
    [#array_parents] =&gt; Array
        (
            [0] =&gt; field_collection
            [1] =&gt; und
            [2] =&gt; 0
            [3] =&gt; field_type
            [4] =&gt; und
            [5] =&gt; Video
        )

    [#processed] =&gt; 1
    [#required] =&gt;
    [#name] =&gt; field_collection[und][0][field_type][und]
    [#value] =&gt; Image
    [#ajax_processed] =&gt;
    [#sorted] =&gt; 1
    [#after_build_done] =&gt; 1
    [#children] =&gt; <input type="radio" id="edit-field-collection-und-0-field-type-und-video" name="field_collection[und][0][field_type][und]" value="Video" class="form-radio">
)
</pre>

хочу получить так

<div class="form-item form-type-radio form-item-field-collection-und-0-field-type-und">
    <input type="radio" id="edit-field-collection-und-0-field-type-und-text" name="field_collection[und][0][field_type][und]" value="Text" class="form-radio">
    <label class="option" for="edit-field-collection-und-0-field-type-und-text" data-toggle="tooltip" data-original-title="Add simple text" title="Add simple text">&rlm;Text &rlm;</label>
</div>

data-toggle="tooltip" data-original-title="Add simple text" title="Add simple text"

по сути я пришел к тому же, что и делал через _form_alter. в нём я мог добавить атрибуты для input