Скрыть поле комментария

Раздел форума: 

Добрый день!

Возникла необходимость скрыть определённое поле комментария от всех пользователей кроме автора ноды.

Идея такова: User1 создаёт определённый тип материала Article, для этого типа материала создан отдельный тип комментариев с набором полей. Другие User'ы пишут комментарии к этому материалу, заполняя несколько полей. При просмотре комментариев к материалу, созданному User1, все поля комментариев видит только User1, в то время как остальные User'ы видят все поля кроме "field_example"

Переопределил шаблон comment.html.twig.

Пытаюсь добавить цикл 

{% if node.author_name = user.username %}
    {{ content }}
      {% else %}
      {{ content|without('field_example')}}
      {% endif %}

вылетает ошибка

Подскажите пожалуйста что делаю не так!

Заранее преогромно благодарен!

Версия Drupal: 

Добавить комментарий

Войти, используя Loginza Google Account Yandex Mail.ru Vkontakte Facebook

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
Прикрепить
Максимальный размер файла: 128 МБ.
Разрешённые типы файлов: txt doc docx rar zip xls xlsx pdf odf odt jpg jpeg gif png psd rtf.

Здравствуйте, вам нужно

Здравствуйте, вам нужно проверить что находится в сравниваемых вами полях.
 

{% dump(node.field_author) %}
{% dump(user.username) %}

Но лучше конечно это вынести в препроцесс ноды и проверку делать на PHP там, в twig уже выводить одну переменную.

Добрый день!

Добрый день!

Спасибо за ответ!

С препроцессом для меня всё ещё запутанней получится...

Неужели нельзя такое условие прям в шаблоне прописать?

Логика ведь довольно проста: 

{% if имя автора ноды == имя текущего пользователя %}
    {{ content печатается полностью }}
  {% else %}
      {{ content|without('field_example')}}
 {% endif %}

Не совсем понятно какие переменные нужно вставлять вместо имён? Перепробовал различные варианты, результата нет. И вообще возможно ли это, ведь в файле comment.html.twig довольно скудный набор доступных переменных.

В twig'e нужно избегать любой

В twig'e нужно избегать любой логике, лучше чистить поля в препроцесе, потому что появится другое условие и получится что в twig'e куча кода.
Попробуйте через node.field_author.value использовать.

Спасибо за Ваши советы!

Спасибо за Ваши советы!

К сожалению пока не получилось реализовать эту затею (десять тысч миллионов вариантов перепробовал)...

Подскажите прожалуйста где можно почитать\посмотреть про создание препроцессов и как потом их использовать в twig.