В Drupal, оказывает список таксономических-элементы в шаблоне узла, используяКак применить дополнительный класс к таксономии ul?
print render($content['field_my_taxonomy']);
Он отображает список, как:
<ul class="links">
<li class="taxonomy-term-reference-0">
<a property="rdfs:label skos:prefLabel" typeof="skos:Concept" href="somewhere">
Tomaten
</a>
</li>
(...)
До сих пор, так хорошо. Теперь я хотел бы применить некоторые из моих собственных классов как к li -tags, так и к ul -tag.
Я сумел добавить класс к каждому Li через в тег theme_preprocess_node:
$vars['content']['field_my_taxonomy'][$i]['#options']['attributes']['class'] = "my-li-class";
(где $ я содержу индекс Li-элемент).
Однако, я не могу найти подобную процедуру, чтобы добавить класс к UL
Я нашел soultions, связанные с созданием шаблоны-файлов для конкретных полей, или с их участием переопределения функции темы для таксономических элементов ALLtogether. Мне не нравятся эти решения, потому что вовлекайте добавление немного «раздувания» к моей теме. Я хотел бы просто добавить новый элемент в массив и позволить Drupal позаботиться об рендеринге. Наверняка, должно быть возможно добавить ['attributes'] ['class'] = 'my-ul-class в массив?
Спасибо! Это, несомненно, будет работать, но это также потребует от меня создать список «из skratch». Я ищу «чистое» решение, где я только изменяю значение массива и позволяю Drupal заботиться обо всем остальном. Я просто хотел бы сохранить тему максимально чистой. – Ideogram
Вам просто нужно скопировать и вставить исходную функцию темы и добавить то, что вам нужно. Не нужно ничего делать «с нуля». – 2pha
Я понимаю. Спасибо за Ваш ответ. Это просто не так просто, как просто добавление класса в массив. Я буду отмечать его как «отчужденный», хотя я считаю, что фактический ответ просто ❝_no, это невозможно сделать. – Ideogram