Привет друзья, возникла забавная задачка над которой уже всю голову сломала. Есть тип материала "объекты" есть дополнительное поле (с множественными значениями) "опции", через тип поля "Список (текст)".
В этом поле забиты ключи и значения типа:
opt01|Есть кондиционер
opt02|Есть кровать
opt03|Есть душевая
Задача:
Нужно при выводе поля в ноде добавить классы к каждому из значений на основе ключа.
Сейчас это выглядит так:
<div class="field-label">Опции:</div>
<div class="field-items">
<div class="field-item even">Есть кондиционер</div>
<div class="field-item odd">Есть кровать</div>
<div class="field-item even">Есть душевая</div>
</div></div>
А нужно так:
<div class="field-label">Опции:</div>
<div class="field-items">
<div class="field-item even opt01">Есть кондиционер</div>
<div class="field-item odd opt02">Есть кровать</div>
<div class="field-item even opt03">Есть душевая</div>
</div></div>
Собственно зачем это всё? Да очень просто, нужно приклеить иконки которые будут выводиться в зависимости от выбранных на странице чекбоксов.
Всю голову поломала, не нашла решения, максимум что мне удалось нарыть, это задать классы типа opt01, opt02...
<?php
if ($vars['element']['#field_name'] == 'FIELD_NAME') {
$classes .= ' row-' . $i;
$i++;
}
?>
Каждому из значений поля задавался порядковый класс, но это не подходит так как не являеться уникальным классом на основе содержимого. Помогите пожалуйста, в какую сторону мне копать?
Идея
По мимо того, что это можно как то решить на уровне API или хуков, до чего моя голова не доходит, возникла идея сделать следующий трюк:
В отображениях полей в качестве значении поля можно отобразить ключи:
И затем в теории их можно на jquery захреначить в классы.
Сразу скажу, я не сильна в jquery и честно пыталась сама это решить таким образом:
Ну и конечно же получила такую красоту:
<div class="field-label">Опции:</div>
<div class="field-items">
<div class="field-item even opt01opt02opt03">opt01</div>
<div class="field-item odd opt01opt02opt03">opt02</div>
<div class="field-item even opt01opt02opt03">opt03</div>
</div></div>
Буду очень благодарна за любую помощь в данной задаче, может вы знаете совершенно инные пути, я лишь попыталась изложить те вещи, до которых догадалась.
Комментарии
https://www.drupal.org/project/field_formatter_css_class
Год назад была трабла https://www.drupal.org/node/2242971, щас не знаю.
Может еще эти помогут:
https://www.drupal.org/project/css_field_formatters
https://www.drupal.org/project/field_formatter_class