Комментарии

Узнайте какие публикации сейчас обсуждаются.

Хотите обсудить в реальном времени? Вступайте в Discord чат.

Drupal 8, 9: Placeholder Strategy Niklan сб, 19/12/2020 - 16:59

Плейсхолдеры - это HTML элементы. В данном примере (это просто <div>) он генерируется в методе ::createAjaxPlaceholder(). Вы можете добавлять классы и прочие аттрибуты на данном этапе и использовать их для невилирования возможных проблем с CLS. Например, добавлять HTML класс равный названию лейзи билдера.

Подобные решения - это явно про кастом реализацию под конкретные задачи, с заранее ожидаемым результатом. Можно спокойно задать высоту плейсхолдеру и никаких CLS проблем не будет.

Drupal 8, 9: Placeholder Strategy Александр пт, 18/12/2020 - 22:29

Спасибо! Классный материал, но есть 1 важный вопрос. Google рассказал об оценке качества сайтов в 2021 году. И один из ключевых критериев это Cumulative Layout Shift (CLS). Можете ли замерить этот показатель https://developers.google.com/speed/pagespeed/insights/?hl=ru на одном из сайтов, где вы используете Placeholder Strategy с ним и без него. Спасибо!

Почему стоит попробовать Drupal 9 Сергей чт, 03/12/2020 - 00:48

Layout Builder хорошая вещь, уже делал несколько проектов на нем. Хоть лендинг, хоть все типы материалов. Тем более сейчас он работает стабильно и без глюков, глюки были полгода назад примерно. Попробуйте, скажете спасибо.

Drupal 8: #cache — cache tags, context и max-age Niklan ср, 02/12/2020 - 06:31

Да, требуется создать кэш контекст и добавить его для данной страницы (если только тут и нужно):

function pc_preprocess_html(&$vars) {
  if($mobile_detect->isMobile()) {
    $vars['is_mobile'] = TRUE;
  }
  $vars['#cache']['contexts'] = 'device_type';
}

Ну или как вы его там назовёте. Иначе друпал не знает что страница может иметь разные варианты в зависимости от типа устройства и не будет создавать разные результаты.

Drupal 8: #cache — cache tags, context и max-age Kostarh вт, 01/12/2020 - 22:09

Если я для юзера, который с телефона хочу выводить один шаблон, а для юзера с пк другой. Я mytheme.theme в хуке

function pc_preprocess_html(&$vars) {
  if($mobile_detect->isMobile()) {
    $vars['is_mobile'] = TRUE;
  }
}

в html.html.twig делаю проверку {% if (is_mobile is defined) %} и делаю инклуд одних файлов иначе других. Это бы все работало, если бы не крутой кеш в Drupal 9? Можете подсказать что в моей логике не верно? Нужно добавить Cache contexts ? Спасибо!

Drupal 8: Работа с Composer Niklan пт, 27/11/2020 - 12:18

Я не знаком с командой composer outdated и подсказать ничего не смогу. Возможно для него любая новая версия является приоритетом, включая новые мажорные версии. Вполне возможно есть настройка влияющая на это, но я не знаю.

Drupal 8: Работа с Composer Ivan Proshechkin пт, 27/11/2020 - 09:43

Упс, проверил, и правда удаляет - все ок, тогда ) Попутно еще один вопрос возник. Composer outdated как-то смотрит на указатели версий в composer.json? Иначе как объяснить что для того же drupal/core-recommended в .json указано ^8.8, реально стоит пакет 8.9.9, а outdated мне показывает наличие версии 9.х, хотя мне важнее было бы видеть что вышла 8.9.10. Только из админки и увидел про 8.9.10