Скрыть поле комментария
Добрый день!
Возникла необходимость скрыть определённое поле комментария от всех пользователей кроме автора ноды.
Идея такова: User1 создаёт определённый тип материала Article, для этого типа материала создан отдельный тип комментариев с набором полей. Другие User'ы пишут комментарии к этому материалу, заполняя несколько полей. При просмотре комментариев к материалу, созданному User1, все поля комментариев видит только User1, в то время как остальные User'ы видят все поля кроме "field_example"
Переопределил шаблон comment.html.twig.
Пытаюсь добавить цикл
{% if node.author_name = user.username %}
{{ content }}
{% else %}
{{ content|without('field_example')}}
{% endif %}
вылетает ошибка
Подскажите пожалуйста что делаю не так!
Заранее преогромно благодарен!
Здравствуйте, вам нужно проверить что находится в сравниваемых вами полях.
{% dump(node.field_author) %} {% dump(user.username) %}
Но лучше конечно это вынести в препроцесс ноды и проверку делать на PHP там, в twig уже выводить одну переменную.
А по поводу ошибки, нужно как минимум писать
{{ node.field_author.value }}
https://drupal.stackexchange.com/questions/228388/how-to-get-the-raw-field-value-in-a-twig-template
Добрый день!
Спасибо за ответ!
С препроцессом для меня всё ещё запутанней получится...
Неужели нельзя такое условие прям в шаблоне прописать?
Логика ведь довольно проста:
{% if имя автора ноды == имя текущего пользователя %}
{{ content печатается полностью }}
{% else %}
{{ content|without('field_example')}}
{% endif %}
Не совсем понятно какие переменные нужно вставлять вместо имён? Перепробовал различные варианты, результата нет. И вообще возможно ли это, ведь в файле comment.html.twig довольно скудный набор доступных переменных.
В twig'e нужно избегать любой логике, лучше чистить поля в препроцесе, потому что появится другое условие и получится что в twig'e куча кода.
Попробуйте через node.field_author.value использовать.
Спасибо за Ваши советы!
К сожалению пока не получилось реализовать эту затею (десять тысч миллионов вариантов перепробовал)...
Подскажите прожалуйста где можно почитать\посмотреть про создание препроцессов и как потом их использовать в twig.
Вот серия уроков по темизации в Drupal 8:
https://drupalbook.org/ru/drupal/9-prodvinutaya-temizaciya-drupal-8