Size: a a a

2020 January 28

ИЛ

Иван Лещёв in Drupal RU
Comrade Gagarin
А кто-то вообще использует бигпайп на продакшене?
бездумно включают
источник

NM

Nikita Malyshev in Drupal RU
Alexey Korepov
я просто задачу слишком сильно упростил, упустив важные моменты. У ноды есть ещё одно поле, в зависимости от значения которого решается каким юзерам что показывать. Полностью описывать слишком объёмно, попробую упростить снова ;)

У ноды есть ещё одно boolean поле "Запрещено смотреть уборщицам", и если оно true, то именно уборщицам нужно вывести "уборщица сюда не смотри!" вместо значения поля.  Т.е. чтобы сгенерировать значение моего кастомного контекста - нужно знать значение этого поля из текущей ноды.
Это уже задача прав доступа, не контекста
источник

АК

Алексей Кузнецов in Drupal RU
Comrade Gagarin
А кто-то вообще использует бигпайп на продакшене?
Все, кто делают сайты на стандратном профиле)
источник

AP

Andrey Postnikov in Drupal RU
Nikita Malyshev
Это уже задача прав доступа, не контекста
Да, и именно оттуда кеш контексты и всплывут
источник

ИЛ

Иван Лещёв in Drupal RU
Алексей Кузнецов
Все, кто делают сайты на стандратном профиле)
в стандартном профиле есть ui модули
а на проде их лучше отключать
это не аргумент
источник

AP

Andrey Postnikov in Drupal RU
Много чего *лучше* ещё тоже настраивать)
источник

AK

Alexey Korepov in Drupal RU
Nikita Malyshev
Это уже задача прав доступа, не контекста
права доступа могут ответить только "можно/нельзя", а тут "можно / можно но для уборщицы спецответ / нельзя". Сейчас это разруливается через "if node.field_uborshitse_mozhno == true" в twig-шаблоне, но ведь такой вариант будет неправильно кешироваться.
источник

AP

Andrey Postnikov in Drupal RU
Лучше это делать до твига
источник

AA

Artem Anisimov in Drupal RU
Andrey Postnikov
Это тест - там рекурсия
?
источник

АК

Алексей Кузнецов in Drupal RU
Иван Лещёв
в стандартном профиле есть ui модули
а на проде их лучше отключать
это не аргумент
Это для тебя не аргумент. А для тех, кто гуглит, как скруглить картинки в бартике - ещё какой аргумент
источник

NM

Nikita Malyshev in Drupal RU
Alexey Korepov
права доступа могут ответить только "можно/нельзя", а тут "можно / можно но для уборщицы спецответ / нельзя". Сейчас это разруливается через "if node.field_uborshitse_mozhno == true" в twig-шаблоне, но ведь такой вариант будет неправильно кешироваться.
Не понимаю всеравно. Чем https://niklan.net/blog/63 не решает вопрос? В 8-ке по сути также всё.
источник

NM

Nikita Malyshev in Drupal RU
Alexey Korepov
права доступа могут ответить только "можно/нельзя", а тут "можно / можно но для уборщицы спецответ / нельзя". Сейчас это разруливается через "if node.field_uborshitse_mozhno == true" в twig-шаблоне, но ведь такой вариант будет неправильно кешироваться.
А спец ответы выруливать до твига, как выше сказали. Можно разные способы придумать. От разных вью модов, тем суджешенов, до переменной в темплейте по которой также ифы делать.
источник

AP

Andrey Postnikov in Drupal RU
Alexey Korepov
права доступа могут ответить только "можно/нельзя", а тут "можно / можно но для уборщицы спецответ / нельзя". Сейчас это разруливается через "if node.field_uborshitse_mozhno == true" в twig-шаблоне, но ведь такой вариант будет неправильно кешироваться.
Права доступа, а точнее access result - это объект со всей необходимой информацией о кеш метаданных
источник

AK

Alexey Korepov in Drupal RU
Andrey Postnikov
Лучше это делать до твига
до твига - это в hook_preprocess_node? Там тоже могу, но ведь потом это пойдёт в твиг и закешируется без зависимости от того, что я там насчитал в этой функции. Или twig-шаблоны кешируются с привязкой ко всем переданным в него аргументам?
источник

AP

Andrey Postnikov in Drupal RU
По идее ядро само должно решать на основании кеш контекстов какие части кешить, с какие досылать
источник

AP

Andrey Postnikov in Drupal RU
Alexey Korepov
до твига - это в hook_preprocess_node? Там тоже могу, но ведь потом это пойдёт в твиг и закешируется без зависимости от того, что я там насчитал в этой функции. Или twig-шаблоны кешируются с привязкой ко всем переданным в него аргументам?
Нет, в билде
источник

NM

Nikita Malyshev in Drupal RU
Alexey Korepov
до твига - это в hook_preprocess_node? Там тоже могу, но ведь потом это пойдёт в твиг и закешируется без зависимости от того, что я там насчитал в этой функции. Или twig-шаблоны кешируются с привязкой ко всем переданным в него аргументам?
Смотря как производится вывод. Если руками то можно через viewBuilder разные вью моды вызывать в зависимости от данных формы. Можно в препроцессе.

Никто не мешает в препроцессе докинуть нужные кэш данные. Но выше опять же сказали, access result умеет хранить кэш метаданные и сам всё сделает
источник

NM

Nikita Malyshev in Drupal RU
По хорошему, темплейт не должен знать о разных вариантах. Он должен формировать разметку на основе данных, без контекста. Я так считаю.
источник

AP

Andrey Postnikov in Drupal RU
++++
источник

AK

Alexey Korepov in Drupal RU
ну, если упростить, то если я в hook_preprocess_node добавляю:
$vars['uborshitse_mozhno'] = rand (0,1);
а в twig-шаблоне:
{% if uborshitse_mozhno %}можно{% else %}нельзя{% endif %}
то в кеш друпала лягут оба варианта вывода твига, или только один который попался первым?
источник