<div{{ row.attributes.addClass(row_classes) }}> как тут поменять class на id?

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

Аватар пользователя VasyOK VasyOK 28 августа 2021 в 13:42

Приветствую специалистов по высокоурвневому бекенду!

Во ядре есть шаблон, выводящий каждый row вьюхи:
views-view-unformatted.html.twig

В нем
<div{{ row.attributes.addClass(row_classes) }}>

Вопрос: как у этого div поменять class на id ?

Лучший ответ

Аватар пользователя VasyOK VasyOK 28 августа 2021 в 21:26

Вот так работает.

{% for row in rows %}
  {%
    set row_classes = row.attributes.class
  %}  
 
  <div{{ row.attributes.setAttribute('id', row_classes) }}>  
    {{- row.content -}}    
  </div>
 
{% endfor %}

у меня у каждой строки был свой класс, формируемый из поля счетчика. Переделал его в id, чтобы можно было ссылки сделать типа <a href="#идешник_строки">

Комментарии

Аватар пользователя ivnish ivnish 28 августа 2021 в 14:48

По какому принципу этот id должен быть сформирован?

Ты же понимаешь, что это row представления? Их может быть десятки и даже сотни на одной странице. Ты хочешь, чтобы каждый row имел уникальный id?

Аватар пользователя VasyOK VasyOK 28 августа 2021 в 16:08

По тому же принципу, что формируется класс вьюхи.
Да, я хочу, чтобы каждый row имел уникальный id. В рамках одной вьюхи.
Переписать views-view-unformatted.html.twig для вьюхи я могу. А вот заменить class на id - пока нет.

Аватар пользователя VasyOK VasyOK 28 августа 2021 в 21:26

Вот так работает.

{% for row in rows %}
  {%
    set row_classes = row.attributes.class
  %}  
 
  <div{{ row.attributes.setAttribute('id', row_classes) }}>  
    {{- row.content -}}    
  </div>
 
{% endfor %}

у меня у каждой строки был свой класс, формируемый из поля счетчика. Переделал его в id, чтобы можно было ссылки сделать типа <a href="#идешник_строки">