Обзор CMS DRUPAL 9 | Trinion

CMS *Drupal *

В этой статье я решил поговорить о создании сайтов на базе CMS Drupal. Работаю я с этой системой давно и считаю ее одной из лучших среди существующих «движков» сайтов. За исключением случаев, когда действительно необходимы какие-то узкоспециализированные решения эту CMS я рекомендую и своим клиентам.

Я понимаю, что у моих коллег могут быть другие предпочтения. Но даже если вы — программист, использующий в работе другие CMS, эта статья сэкономит вам время знакомство с Drupal и поможет понять, в каких случаях стоит обратить внимание на эту систему.

В этом обзоре я хочу поговорить об актуальной на сегодня версии DRUPAL 9. О возможностях системы, ее плюсах и ограничениях. И этот текст адресован, в первую очередь, будущим пользователям и владельцам сайтов. Потому здесь не будет сложных технических нюансов, их специалисты и без того уже не один раз обсудили в профессиональных сообществах.

Я постараюсь максимально простым языком объяснить потенциальным владельцам Drupal-сайтов, что можно ожидать от этой CMS, что требовать от веб-разработчиков в процессе создания сайта, и что можно реально получить для последующей самостоятельной работы с проектом.

Небольшое разъяснение:

  1. Я намеренно не сравниваю версии Drupal, так как на данный момент это уже не важно и вот почему:

     

    Для Drupal 7 разработка новых модулей практически не ведется. Для уже выпущенных модулей в приоритете DRUPAL 9. Думаю это связано не только с тем что Drupal 9 новее, но и потому что официальная поддержка Drupal 7 и Drupal 8 закончиться в ноябре 2022 года.

  2. Все скриншоты я делаю на работающем личном сайте (ссылку сможете найти в моем профиле).

  3. На некоторых скриншотах вы увидите вот такое предупреждение.
    Все в порядке, я специально оставил эти предупреждения, для тех кто будет переходить с 8 ки, что если даже ваша тема и/или модуль не обновлены, то сайт все равно будет работать. Это же я считаю заботой разработчиков CMS об пользователях. То есть если обновление выходит, то обычно проблем c ним не бывает.

  4. В каждом скриншоте, за редким исключением, вы сможете найти адрес страницы сайта, и при желании подставив свой домен вместо моего, вы сможете перейти к странице настроек как в статье.

Из чего состоит CMS

CMS (Content Management System) переводится как это компьютерная информационная система для управления контентом, т.е. содержимым сайта.Нередко можно встретить упрощенное название – «движок сайта», что по сути упрощение. Появились такие системы как ответ на решение одновременно двух проблем:

 

  1. Снижение трудоемкости работы программистов. CMS формирует страницы «на лету» на основе шаблонов и непосредственно контента (текста, картинок, видео и других материалов, хранящихся в базах данных).
  2. Предоставление возможности пользователям заниматься наполнением сайта. При помощи CMS даже человек, далекий от программирования, может добавлять или удалять страницы, изменять их содержимое и т.д.

 

До появления первых CMS каждая страница сайта формировалась вручную при помощи написания HTML-кода с добавлением программных вставок для реализации интерактивности (обратная связь, комментарии) и различных динамических элементов (красивые кнопки, выпадающие меню и пр. ).

 

В случае небольшого сайта такой подход и сейчас вполне возможен, некоторые одностраничники, например, именно так и реализуют. Но если сайт насчитывает десятки или сотни страниц, даже добавление одного пункта в меню потребует огромной работы специалиста. Просто представьте, что необходимо зайти в код каждой страницы и добавить туда несколько однотипных строк. Работа слишком простая для разработчика, но ее приходилось оплачивать по цене рабочего времени программиста, так как пользователи с ней не справляются.

 

Появление CMS-систем решило все эти проблемы, теперь все выглядит так:

 

  1. Есть шаблоны с дизайном сайта или его отдельных разделов.
  2. Есть сама система управления с удобным для пользователей разделом администратора.
  3. Есть базы данных и папки для хранения графики, документации, видео.

 

Веб-разработчик выполняет все необходимые настройки и доработки, после чего его участие в проекте минимально и обычно сводится к редким доработкам (нововведениям) или исправлению выявленных в процессе эксплуатации ошибок.

 

Владелец сайта или его сотрудники с допуском в административную панель самостоятельно работают с материалами. В результате информация актуализируется своевременно, а работа с сайтом не требует существенных затрат.

 

Управление данными в DRUPAL 9

 

Одно из важных преимуществ Drupal заключается в том, что при желании пользователь, не обладающий знаниями веб-программиста, может самостоятельно справиться со многими настройками, в том числе, создать структуру и шаблоны для разных типов материалов. В этой системе уже на уровне «коробочного решения», т.е. без доработок и надстроек, уже существует обширный функционал.

 

Для сравнения в популярном движке WordPress добавление отдельных информационных полей или различных вариантов отображения информации на странице реализуется при помощи внешних плагинов. Т.е. вам необходимо понять, что именно вы хотите получить, после чего найти и установить подходящий плагин (отдельную «надстройку» к движку, которую покупают или скачивают у сторонних разработчиков). И то не факт что все заработает как надо, так как разрабатывают такие плагины не разработчики ядра, а совершенно другие люди.

 

В Drupal эти возможности имеются по умолчанию. Т.е. вы можете самостоятельно при желании добавить страницу или целый информационный блог с определенным вариантом отображения информации даже в том случае, если такая потребность появилась в процессе работы сайта.

 

 

Для работы с данными вам понадобятся 3 основные сущности:

 

  • Ноды;
  • Таксономия;
  • Представление.

 

О каждой из них поговорим подробнее.

 

Ноды (Типы материалов)

 

В CMS Drupal все материалы на сайте традиционно называют нодами (от англ. Node), хотя в административной панели русскоязычной версии Drupal 9 вы это название уже не встретите, здесь вместо него вы увидите более понятный пункт меню – «Типы материалов». Но традиции есть традиции, потому для простоты понимания документации и других публикаций по системе Drupal лучше запомнить это название.

 

В разделе Типы материалов доступны:

 

  1. Все уже существующие типы. При желании в них можно добавлять или убирать поля, редактировать описание или удалить. Но не забывайте, что в случае некорректной работы с полями или удалением типа вы можете потерять связанные с ним материалы. Т.е. сам контент в базе данных останется, но он либо вообще исчезнет с сайта, либо будет отображаться некорректно.

  2. Добавить новый тип. В этом случае вы придумываете ему имя, описание, настраиваете публичность информации, добавление пункта в меню или анонса на главную. Далее на следующем этапе появляется возможность создать нужное количество полей с текстовым или графическим содержимым, а также настроить их отображение.

  3. Добавляете контент на сайт. 

 

С учетом многочисленных подсказок и русскоязычного интерфейса опытные пользователи интуитивно разберутся, как работать с настройкой нод. В случае возникновения проблем, на сайте Drupal есть подробная документация, инструкции, а также сообщество, где можно задать вопрос.

 

В рамках обзора у нас задача – познакомиться с возможностями системы. Потому давайте разберемся, как можно использовать типы данных на практике.

 

Например, у вас есть основные страницы сайта, выполненные в виде нескольких информационных блоков, состоящих из текстов, списков, инфографики, т.е. вам нужны продающие страницы определенного типа. Для них вы создаете ноды и указываете все важные настройки.

 

Далее, ваш проект развивается, и вы понимаете, что вам нужен блог. А это совсем другой тип подачи информации. Здесь нужна страница самого блога, содержащая анонсы статей. И отдельно – страницы текстовых материалов. Вы просто заходите в раздел «Типы материалов» и создаете еще два нода – под страницу самого блога (не забудьте добавить отображение пункта меню), и под страницы текстовых материалов.

 

Примеры типов материалов: статья, базовая страница, запись блога, отзыв и т.д.

 

Таксономия (Taxonomy)

 

В Drupal под термином таксономия скрывается все, что касается структуры сайта. Для пользователей, привычным к другим CMS, структура немного необычная. Дело в том, что таксономия – это может быть связано с меню сайта с любым количеством подпунктов ( для вывода категорий блогов выпадающем меню например), и привычные любителям WordPress метки (тэги), рубрики и возможность связывать между собой материалы из разных разделов.

 

Основные сущности:

 

  • Словарь – используется для объединения терминов ( например словарь категории или тэги)
  • Термины – основные сущности (метки, разделы) для объединения материалов по какому-то признаку. При этом термины могут иметь неограниченное количество вложений.

 

Например, вы хотите создать магазин по продаже овощей и фруктов. Основные словари – «Овощи», «Фрукты», Ягоды». В словаре «Фрукты» могут быть «Яблоки», «Апельсины», «Бананы» и т.д. Но, если вам нужна дальнейшая детализация – без проблем. В термине «Яблоки» создаете, например, подпункты с названиями сортов. При этом вы можете одновременно использовать словарь сортировки, скажем, по цвету. И тогда ваши яблоки будут отображаться и при выборе покупателям раздела с яблоками, и при поиске по красным или зеленым фруктам.

 

Еще один классический пример – это категории блога. Создаем словарь «Категория услуг», в словаре создаем термины, например CRM, ERP методология и т.

 

 

На собственном сайте я использовал таксономию для создания организации блога (словарь этого раздела вы видите на скриншоте), а также для связи между обучающими материалами и статьями из блога по той же тематике.

 

 

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

 

К слову, изменять порядок терминов в словаре или их подчиненность друг другу очень просто. Достаточно «потянуть» мышью нужный термин в нужное место, и он легко переместится в соответствии с той структурой, которую вы создаете.

 

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

 

Представление (Views)

 

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

 

 

Вы создаете представление, в котором указываете стиль – страница или блог, какие типы контента на ней будут отображаться, какие информационные поля должны быть видны, в каком формате. Т.е. по сути, создаете отдельный шаблон для этого типа страниц.

 

Аналогично можно создать представление, например, для страницы отзывов, именно так они реализованы на моем сайте.

 

Вот так выглядит представление страницы отзывов в административном разделе:

 

 

А вот результат на странице сайта – отзывы отделены друг от друга, выбран стиль отображения, все поля выглядят одинаково:

 

 

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

 

По сути модуль Views – это конструктор страницы сайта для заполнения его записями. Вы можете его темизировать как сами внутри конструктора, так и используя шаблоны темы.

 

Управление Пользователями

 

Пользователи (People) с точки зрения системы Drupal – это все посетители вашего сайта, начиная от случайных читателей и заканчивая редакторами и администраторами.

 

 

Работать с этим разделом просто:

 

В меню Роли (Roles) вы создаете все необходимые виды пользователей. Количество ролей может быть столько, сколько вам нужно. Обычно это:

 

 

  1. «анонимный», т.е. посетитель без регистрации,
  2. «зарегистрированный», т.е. пользователь с авторизацией, но без доступа к административному разделу;
  3. «автор» или «контент-менеджер» — человек, который может добавлять материалы в выбранные вами разделы;
  4. «администратор» — полные права доступа и т.д.
  5. В меню «Права доступа» для каждой роли вы прописываете доступ, просто выставляя флаг «галочка» в выбранном поле. При добавлении каждой ноты или таксономии они автоматически попадают в этот список. И добавить право просматривать или как-то работать с ними вы можете при помощи редактирования прав доступа.

 

 

Всех активных пользователей вы видите на основной странице (Список), здесь же можно изменить для них права доступа, удалить или добавить нового пользователя.

 

Работать с этим разделом просто, он понятен интуитивно и редко вызывает вопросов.

 

Шаблонизация в Drupal 9

 

В Drupal 9 заметно упростили разработку шаблонов для отображения различных типов страниц. Теперь для этого нет необходимости знать язык программирования PHP. Шаблоны можно формировать в простом HTML-коде, в том числе, при помощи конструктора. Далее они дополняются некоторыми командами специального языка Twig 2.x.

 

Но учтите: если вы хотите заниматься шаблонизацией самостоятельно, как минимум, html и понимание того, что такое шаблоны и зачем они нужны в принципе, понадобятся обязательно. Потому лучше оставьте эту часть работы программисту, верстальщику либо опытному контент-менеджеру.

 

Для примера вот код верстки на сайте из шаблона отвечающие за вывод отзывов.

 

 

Расширения

 

Расширения (модули) – это различные инструменты, из которых как раз таки состоит функционал CMS-системы. Часто их также называют расширениями. Такие надстройки создают сами разработчики системы, сторонние программисты, в том числе, создатели CRM, онлайн-чатов и других программных решений, для которых может быть полезна интеграция с веб-сайтом.

 

Система Drupal 9 поддерживает огромное количество модулей. Значительная часть из них уже установлена «в коробке». Остается только решить, что с ними сделать – включить и применять, отложить до лучших времен или удалить. Другие вы можете найти на сайтах, посвященных CMS Drupal, скачать и установить.

 

 

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

 

Из числа расширений хотелось бы выделить:

 

  • Набор модулей Commerce для организации интернет-магазина. Благодаря гибкой настройке и широкому перечную функций позволяют организовать практически любой тип электронной торговли.
  • Pathauto. Автоматически создает по шаблону осмысленные адреса страниц, соответствующие материалу.
  • Redirect 404. Регистрирует ошибки 404, позволяет анализировать статистику переходов на несуществующие страницы, создает редирект в случае попытки перехода на отсутствующую страницу.
  • Webform – набор модулей для создания различных типов форм, в том числе, комментарии, обратная связь, работа с тикетами и т.д.

 

При желании вы можете найти для CMS Drupal самые разные модули – от организации обратной связи, различных вариантов комментирования и отзывов до интернет-магазинов и других элементов электронной коммерции. И, еще раз повторюсь, все они бесплатны, а основные модули регулярно обновляются.

 

Локализация

 

CMS Drupal отлично локализована. Вы можете выбрать из широкого перечня язык раздела администратора, а также настроить все необходимые языки сайта, отображение даты и времени, указать важные региональные настройки.

 

 

 

Если вы по тем или иным причинам выбрали расширение на иностранном языке, его всегда можно локализовать, т.е. перевести для удобного использования. Для этого в системе существует раздел «Перевод пользовательского интерфейса», а в нем – словарь иностранных слов с переводом на ваш родной язык (в нашем случае – русский).

 

 

Значительное количество терминов вы получите прямо после установки «коробочного решения»» с выбранной заранее локализацией. Если какие-то из них покажутся вам неправильными или будут отсутствовать, всегда можно добавить или изменить перевод. Также в случае необходимости вы можете добавить словарь для второго или третьего языка. Готовые словари локализации импортируются в несколько кликов.

 

Интеграция

 

Система Drupal легко интегрируется с различными информационными системами. Мы интегрировали Drupal-сайты с Zoho CRM и другими продуктами линейки, с учетными системами, в том числе, 1С, с различными платежными системами, онлайн-чатами поддержки и т.д.

 

В релизе 9.0.0 организация обмена данными стала еще проще. Теперь есть инструмент, позволяющий получить из Drupal по API данные с сайта. Теперь для этого не нужно даже подключаться, например, к базам данных или писать свой модуль для обмена. Теперь по API из коробки. Теперь можно использовать Drupal в качестве headless CMS.

 

Программист просто подключается к сайту и получает нужные данные, даже не зная Drupal. Он будет работать, например, над мобильным приложением или какой-либо системой обработки информации. И ему для получения информации с сайта понадобятся знание JSON, методов и запросов, которые широко используются при организации API.

 

Поисковая оптимизация

 

С точки зрения SEO-продвижения, сайты Drupal можно смело называть одними из самых настраиваемых. Больше возможностей дает разве что прямая работа с php-кодом. Расширений для SEO существует огромное количество. Расскажу про некоторые из них.

 

О модуле Pathauto, который создает осмысленные адреса страниц, я уже рассказывал выше. В случае необходимости вы также можете вручную менять синонимы URL для любых страниц.

 

 

 

Вторая строка выдачи.

 

 

Существуют в Drupal также встроенные поля для различных сео-тегов, не забывайте подключать их при настройке нодов, а после – заполнять. Есть расширения для генерации карты сайта. В разделе расширений вы их найдете в разделе XML КАРТА САЙТА. А если не понравятся имеющиеся в «коробке», всегда можно найти и установить альтернативные.

 

Скорость работы

 

По времени отзыва, т.е. формирования страницы, скорость Drupal считается стандартной. На практике сайты получаются сравнительно легкими, загружаются быстро. А если у вас на страницах предполагается большой объем информации, много графики или видео файлов, всегда можно настроить кеширование. В этом случае скорость загрузки страниц заметно возрастает.
Админ-раздел сайта также работает быстро. Страницы не перегружены информацией, потому загружаются и сохраняются все изменения без задержек. Нареканий работа системы с этой точки зрения не вызывает.

 

Для примера прикладываю замер с сервиса PageSpeed Insights

 

Кеширование

 

Кеширование есть из коробки и к нему нареканий нет. Если к вашему сайту есть какие то особенные требования к кешированию, то вы можете всегда настроить кеш посредством кода ( такая возможноcть есть).

 

Работа с картинками

 

Также в Drupal 9 появилась возможность хранить для определенного разрешения устройства определенный размер картинки. То есть загружаете вы картинку размера 1200*1600, и можно указать что разрешения экрана в 800 пикселей максимальная ширина картинки будет 800 и CMS сама сделаем соответствующую копию картинки. За это отвечает модуль Responsive Image.

 

E- Commerce

 

Интернет-магазины на базе Drupal – решение популярное. За организацию электронной коммерции отвечает соответствующий модуль Commerce. В базовой версии он выглядит так:

 

 

 

 

Как видите, возможностей для организации торговли в «коробочном» решении вполне достаточно для реализации работы стандартного магазина. А для особых потребностей существует целый ряд расширений, которые вы можете найти и добавить сами.

 

Вы можете:

 

  • Создать каталог товаров с разделением по категориям;
  • Организовать поиск по товарам;
  • Создать карточку товара с нужными полями;
  • Добавить товар в корзину;
  • Подключить различные платежные системы;
  • Настроить обмен данными с учетными, CRM и другими программными системами и т.д.

 

Еще один плюс – большое число готовых шаблонов для настройки отображения товаров и других целевых страниц интернет-магазина.

 

Безопасность данных

 

Система Drupal 9, как и любая большая CMS с широким перечнем модулей, поэтому иногда в нем находят уязвимости. Важно знать что при обнаружении уязвимости разработчики в течении короткого промежутка времени выпускаю патч и владельцу сайта выводиться соответствующая надпись на сайте и приходит оповещение на почту. Впрочем, процент «взломов» Drupal-сайтов значительно ниже, чем, например, аналогичная статистика для WordPress.

 

При грамотных настройках вы можете быть уверены в достаточном уровне защиты своих данных. Тем более, что введение темизации, т.е. отделение шаблонов от самих данных в Drupal 9, значительно повышает степень защищенности сайта. Впрочем, забывать о правилах безопасности работы в сети Интернет нельзя ни в коем случае, независимо от выбранного движка сайта.

 

Почему я перешел на Drupal 9

 

Я много лет проработал с CMS Drupal 7, но в последние годы после внимательного изучения полностью перешел на Drupal 8, а затем как только вышла 9 версия, сразу на нее.

 

В чем преимущества системы:

 

  • Для работы с шаблонами не требуется знания PHP. Работать с ними теперь проще и быстрее, даже для опытного программиста.
  • Интеграция стала проще. О преимуществах модуля интеграции, который появился в Drupal 9, я подробно писал выше.
  • Большое количество модулей в Drupal 9 уже есть «в коробке». В прошлой версии многие расширения приходилось искать и устанавливать вручную.
  • Открытость и бесплатность

 

Кроме того, многие возможности Drupal 7, в том числе, написанные под эту версию «движка» расширения, уже перестали обновляться. А новые решения уже ориентированы на Drupal 9.

 

Для каких сайтов подходит Drupal

 

Если вы создаете небольшой сайт-визитку и вам предлагают воспользоваться Drupal 9, стоит хорошо подумать и, скорей всего, отказаться. Здесь скорее будет актуален WordPress или подобные решения. Также не имеет смысла выбирать Drupal для блога или простого статейного проекта. Выбирайте CMS, которые уже позиционируют себя как решения, подходящие под ваш тип сайта.

 

Дело в том, что Drupal 9 – система мощная, но по-своему сложная. И число необходимых для начала работы настроек велико для организации небольшого сайта. Затраты времени на настройку и добавление информации, скорей всего, не окупятся. Впрочем, если к этой визитке в недалеком будущем будут подключаться и другие модули, выбор Drupal может оказаться, наоборот, верным решением.

 

Для создания корпоративного сайта или полноценного интернет-магазина CMS Drupal 9 подойдет наилучшим образом. Для подобных проектов важно:

 

  1. Скорость загрузки и сео-оптимизация;
  2. Возможность автоматизации и настройки обмена данными с другими системами;
  3. Распределение ролей пользователей для разных сотрудников;
  4. Настройка шаблонов для разных разделов и т.д.

 

Также Drupal оптимально подойдет для какого-то авторского проекта, совмещающего в себе большой перечень функций. Например, вам необходимо продать свои товары и услуги, показать готовые работы в портфолио, предложить людям обучающие материалы, делиться информацией в блоге. Т.е. если проект предполагает большое количество страниц и несколько разных вариантов подачи материала, а, может, и прямые продажи, я рекомендую систему Drupal 9.

#lazy_builder (не путать с lazy load) в Drupal 8/9

Продолжая изучать Drupal, мы наткнулись на очень интересную технологию, которая в него встроена. И которая, на наш взгляд, используется неоправданно мало. И совершенно зря. Потому что подход, который использует эта технология, позволяет мгновенно отдать высоконагруженную (или просто долго формирующуюся) страницу пользователю, а потом «доотдать» ему данные, требующие много времени на формирование. И изучая эту технологию, мы столкнулись с тем, что нет ни одного простого объяснения, что это и как это запустить. Нет, объяснения-то есть. Простых нету. Сейчас мы попытаемся восполнить эту неприятность.

Общее описание

Итак, у нас есть страница, которая по каким-то причинам долго формирует часть данных. Причины могут быть разными — большой объём вычислений, большой объём данных, долгие запросы к какой-нибудь медленной базе данных, или вообще надо лезть на сторонний сервис, с которого получить информацию, которую потом ещё и обработать надо. Причины — неважны. Важно, что на нашей странице есть данные, которые мы может отдать сразу — заголовки, подвал, какие-то картинки, ещё кучу обрамления, текста, реклама, в конце концов. А есть данные, которые нам надо «добыть», и на это уйдёт какое-то количество времени.

Так вот. Обычно эту задачу решают через механизм «ленивой загрузки» — грузится облегчённая версия страницы, а потом срабатывает скрипт lazy loading, который с помощью JavaScript сходит на бекенд, заберёт оттуда данные и положит их в нужные места. Но у ленивой загрузки есть куча минусов. Начиная с того, что если, например, наши данные отдаются только авторизованному пользователю, то нам надо дополнительно авторизовать этот ленивый скрипт. Также нам всегда нужен включённый JavaScript. Эта «ленивая вещь» не очень хорошо дружит в поисковыми роботами. Ну и так далее.

А создатели Drupal, оказывается, молодцы. И предлагают нам ещё один механизм, который лишён почти всех минусов lazy loading’а. И называется этот механизм — «ленивый построитель» — lazy builder. Он работает, как всё гениальное — очень просто.
На то место в twig-шаблоне, где нужно вывести «тяжелые» данные, мы кладём обычную (почти) переменную, совершенно обычным способом, вот так: {{ lazy_data }}. А вот в препроцессоре, в котором мы готовим эту переменную, мы должны сказать ей волшебные слова, чтобы она стала lazy builder’ом. Выглядит это так:

$variables['lazy_data'] = [
  '#create_placeholder' => TRUE, // - это необязательно, её Drupal сам умеет включать.
  '#lazy_builder' => [ // - это те самые волшебные слова, из-за которых всё работает.
    //... чуть ниже будет подробнее
    ],
  ],
];

И теперь Drupal, когда будет рендерить страницу, на место этой переменной поставит JavaScript-плейсхолдер, а сами данные формировать в момент рендера не будет. То есть — эта страница сформируется быстро, и так же быстро будет отдана пользователю. А уже потом, когда она будет показана браузером на экране, сработает этот плейсхолдер, который полезет на бэкэнд и скажет ему — «я готов, гони данные». Бэкэнд эти данные спокойно сформирует и отдаст. И они будут вставлены на то место, где они и должны быть.

Вот и всё! И не надо никакой дополнительной авторизации — она уже была произведена на бэкэнде. И не надо подключать никаких дополнительных скриптов — Drupal сам обо всём позаботится. И не нужны никакие дополнительные API точки входа, которые надо дополнительно писать и обслуживать. Не надо никаких уточнений — что за данные вам нужны — всё это уже было сделано на бэкэнде. Мы просто кусок «строительства страницы» отложили на потом. Вот и всё, что мы сделали.

И самое гениальное здесь то, что если у пользователя не включен JavaScript — то Drupal сам это распознает и сформирует эти тяжёлые данные сразу, без использования плейсхолдера. То есть — как будто бы никакой механиз отложенного строительства и не существует. Поисковые роботы будут счастливы, что им не надо разбираться с самописными ленивыми загрузками, они получат обычную страницу. Ну а подождать несколько секунд эту страницу для них не так критично, как для человека.

А теперь немного технических подробностей, как
со всем этим взлететь это сделать.

Повторимся — в twig-шаблоне мы пишем как обычно — просто кладём переменную в нужное нам место. И всё, больше никаких телодвижений предпринимать не нужно.
В препроцессоре шаблона, в котором нам надо сформировать эту переменную, мы пишем «волшебные слова», чтобы она стала «ленивой» и пишем, что она должна вызвать для ленивого рендера нашей переменной:

$variables['lazy_data'] = [
  '#create_placeholder' => TRUE, // - это необязательно, её Drupal сам умеет включать.
  '#lazy_builder' => [ // - это волшебные слова, из-за которых всё работает.
    'имя_модуля.lazy_renderer:renderBigData', [ // - это имя сервиса, который будет вызываться.  Важно, что это именно сервис.
      'info' => 'Важная информация', // - это просто параметры, которые ты отдаёшь в шаблон. См. ниже
      'params' => ['foo' => 'boo'],
        'something_else' => 11
    ],
  ],
];

Теперь нам надо сделать Drupal-овский «сервис», который и будет заниматься формированием наших больших данных. Для этого в файле имя_модуля.service.yml, который лежит в корне нужного модуля (не обязательно самописного), мы должны объявить этот сервис (имя_модуля.lazy_renderer), который будет вызываться для формирования того, что надо вывести в переменную ‘lazy_data’, которая потом пойдёт в ту заглушку

, в дом который построил Джек

.

В этом сервисе делаем функцию renderBigData, которая и будет вызываться. И вот эта функция должна вернуть ссылку на шаблон, который будет отрендерен и будет вставлен в нужное место страницы, в доме который построил Джек.

Но в эту функцию хочется же передать что-нибудь, да? Вот как это делается.
Во-первых, напоминаем, что для того, чтобы продать что-нибудь ненужное, надо сначала купить что-нибудь ненужное, а для того чтобы использовать шаблон для рендера, его надо сначала объявить. То есть — в файле имя_модуля.module, в функции function promotion_theme(…) надо вернуть, вместе с остальными заготовками шаблонов, заготовку нового шаблона:

'my_template_for_lazy_building' => [
  'variables' => [
    'info' => '',
    'params' => [],
    'something_else' => 1
  ],
],

А дальше всё просто — в сервисе, в функции, подготавливается всё, что нужно, и этот свежеобъявленный шаблон возвращается на рендер, передав ему то, что тебе нужно ему передать.
А у этого шаблона, в свою очередь, есть свой препроцессор, который сработает при попытке Drupal отрендерить шаблон. В этот момент препроцессор получит те переменные, которые объявлены и переданы.

То есть, технически это выглядит так:

// Смотрим выше на вызов сервиса из нашей переменной:
// 'имя_модуля. lazy_renderer:renderBigData'
// и сопоставляем класс:
class lazy_renderer {
        public function renderBigData($info, $params, $something_else) {
        //Обрати внимание на переменные функции
    //Что-то тут делаем, готовим данные.
    return [
        '#theme' => 'my_template_for_lazy_building',
      '#info' => $info,
      '#params' => $params,
      '#something_else' => $something_else
    ];
  }
}

Сам twig-шаблон должен лежать в каталоге template модуля, само собой.

Вот и всё.

И ещё раз, чтобы подытожить «кто на ком стоял»:

  • У нас есть переменная «lazy_data». Мы её кладём в twig-шаблон какой-то страницы, как простую переменную.
  • В препроцессоре мы её формируем. И говорим ей — что она «ленивая» и что она должна вызвать сервис (‘имя_модуля.lazy_renderer:renderBigData’), который вернёт шаблон (другой, ‘my_template_for_lazy_building’) на рендер. Этот шаблон отрендерится и вставится на место ‘lazy data’.
  • Не забываем наш шаблон объявить.

Надеемся, что смогли просто, но при этом максимально подробно, рассказать про технологию Lazy Builder.

Спасибо за внимание.

9 лучших шаблонов электронной коммерции Drupal 2023

Возможно, вы обновили свой текущий интернет-магазин или создаете его с нуля. Эта лучшая коллекция шаблонов электронной коммерции Drupal очень поможет вам.

Самое приятное то, что вам не нужны навыки программирования, чтобы использовать любую из тем, перечисленных ниже. Не говоря уже о том, что, выбрав демо-версию премиум-класса, которую предлагает вам каждый шаблон, вам даже не нужно быть волшебником дизайна, чтобы создать потрясающий интернет-магазин. Вы готовы запустить совершенно новый или обновленный веб-сайт с небольшим воображением.

Пришло время наилучшим образом представить товары и услуги, которые вы продаете/предлагаете. Отобранная вручную коллекция самых мощных шаблонов электронной коммерции Drupal удовлетворит любой вкус. Даже самые привередливые найдут то, что удовлетворит их потребности. С чистым, но привлекательным интернет-магазином вы привлечете новых потенциальных покупателей, которые могут стать вашими постоянными и, что наиболее важно, постоянными клиентами.

Вы должны знать, кто ваш конечный покупатель. Создайте отличный пользовательский опыт, дайте им понять, почему они должны выбрать вас, и не забудьте отблагодарить. Вы можете легко добиться всего этого и многого другого, создав впечатляющий клиентский опыт с убедительным веб-сайтом, используя шаблоны Drupal Commerce. Пришло время начать создавать что-то новое в своей нише и удивить каждого посетителя, который попадает на вашу страницу.

1. Wosh

Wosh — превосходное решение для всех идей интернет-магазина, которые вы, возможно, захотите воплотить в жизнь. Это шаблон электронной коммерции Drupal, который предоставляет все необходимое для потрясающего опыта покупок. Как только вы загрузите его, вы получите мгновенный доступ к пяти фантастическим демонстрациям Воша. Помните, что вы можете ожидать появления новых с будущими обновлениями шаблона. Но вы уже можете создать заметное присутствие в Интернете, используя то, что доступно. Не только это, но и настройка веб-дизайна по своему вкусу.

С помощью простого в использовании шаблона, такого как Wosh, любой может создать интернет-магазин. Возможности и готовый материал есть, нужно только применить и сделать что-то неординарное. Wosh поставляется с полной документацией, оптимизирован для поисковых систем и отзывчив. Профессиональное кодирование придает Вошу стабильность и позволяет сделать что-то выдающееся.

Подробнее / Скачать

2. H-Code

Запустите онлайн-бизнес с H-Code и начните продавать товары, которыми вы увлечены. Вы смотрите на многофункциональный шаблон электронной коммерции Drupal с безграничными возможностями. H-Code дает вам более 190 страниц, от одно- и многостраничных макетов до заставок. Конечно, вы также получаете несколько дизайнов индексных страниц, чтобы добавить лицо на свою страницу.

В комплекте с H-Code есть удобный конструктор макетов и визуальные шорткоды, чтобы вы могли свободно изменять внешний вид и наполнять его своим индивидуализмом. Это требует только некоторого перетаскивания, и это все. Что хорошего в H-Code, так это видеоуроки и презентации, которые помогут вам понять суть. Проявите творческий подход с H-Code и используйте все его мощные характеристики.

Дополнительная информация / Загрузка

3. Edupia

Элегантность, функциональность и ценность — вот три слова, которые вы услышите, когда попробуете Edupia для своего бизнеса. Этот шаблон электронной коммерции Drupal — не просто ваш обычный инструмент, несмотря на его простой и удобный интерфейс, с которым вы можете поиграть. Это идеальное решение, если вы запускаете онлайн-курсы или любой другой образовательный веб-сайт, которому требуется расширение электронной коммерции.

Все под вашим контролем, от визуального оформления сайта до его функций. Просто выберите дизайн и добавьте функции на свой вкус. Обновите свои учебные курсы несколькими щелчками мыши и предоставьте своим студентам наилучшие возможности. Вам даже не нужно беспокоиться о продаже их в Интернете, так как Edupia позволяет вам расширяться. Получайте уведомления о заказах немедленно, без необходимости проверять электронную почту. Есть больше возможностей для изучения; Это только начало.

Подробнее / Загрузка

4. Hasta

Hasta — это адаптивный, современный, простой в использовании шаблон для электронной коммерции Drupal с множеством функций. Он предлагает широкий спектр вкусностей, которые вы можете использовать для своего веб-присутствия, чтобы обеспечить плавный и приятный процесс покупок. Благодаря гибкости Hasta ваш результат будет безупречно работать на всех устройствах и в любых браузерах. Наряду с огромной коллекцией из двенадцати стилей для дома, одна полностью посвящена интернет-магазинам.

Воспользуйтесь дизайном верхнего и нижнего колонтитула, поддержкой фонового видео, анимацией, слайдерами премиум-класса и макетом в штучной упаковке. Пакет Hasta ничего не пропускает. Вам даже не нужно создавать что-то самостоятельно, придерживайтесь доступного и достигайте профессионального и заманчивого окончательного веб-дизайна за очень короткое время. Вы также можете завести блог и использовать его для контент-маркетинга, чтобы привлечь еще больше посетителей в свой магазин и начать регулярно принимать новые заказы.

Подробнее / Загрузка

5. Martis

Martis — это гибкий и многоцелевой шаблон электронной коммерции Drupal с набором из восьми различных домашних страниц. Короче говоря, вы можете использовать Martis для любых целей, а также для нишевых и обычных интернет-магазинов. Дизайн Martis очень современный и минималистичный, что гарантирует, что каждый будет пользоваться вашим сайтом электронной коммерции, не отвлекаясь. Конечно, все внимание сосредоточено на ваших товарах.

Кроме того, макет Martis готов к работе с мобильными устройствами и быстро и легко адаптируется ко всем устройствам. Вы можете выбирать между светлым и темным режимами, широкими или коробочными макетами, переводить шаблон и использовать его с любым языком RTL. Другими особенностями являются SEO-оптимизация, мультивалютность, карусель совы, липкая навигация и слайдер. Вы также получаете страницы блога и контактов, интегрированные в дизайн Martis.

Подробнее / Загрузка

6. Stig

Многочисленные одно- и многостраничные демоверсии доступны сразу после загрузки шаблона электронной коммерции Stig Drupal. Множество стилей заголовков страниц, множество шорткодов и разделов параллакса — это лишь некоторые из дополнительных функций Stig. Вы также можете использовать прозрачные, белые и темные строки меню, чтобы создать заманчивый контраст. Короче говоря, есть что-то для всех. Конечно, каждый получает столько удивительного материала, что вам не нужно будет искать что-то еще, черт возьми, вам даже не нужно будет ничего строить с нуля.

Раздел магазина имеет две, три и четыре варианта макета столбца, аккуратную одну страницу и чистую корзину для покупок. Более функциональными особенностями Stig являются значки социальных сетей, кнопка «Вверх», плавная анимация и понятный код с комментариями. Сегодня лучшее время, чтобы начать что-то новое и стать тем проектом, о котором вы всегда мечтали.

Подробнее / Скачать

7. Rhythm

С помощью Rhythm можно создавать множество вещей, включая интернет-магазин. Это универсальный шаблон электронной коммерции Drupal с множеством страниц и других предварительно разработанных элементов. К вашим услугам как одностраничные, так и многостраничные демонстрации с невероятным веб-дизайном для каждого современного пользователя. Каждый, кто впервые заходит на вашу страницу, мгновенно зацепляется. Им будет предложено продолжить просмотр вашей платформы электронной коммерции и, в идеале, совершить покупку, и им также понравится возвращаться снова и снова.

Rhythm прост в использовании и имеет множество коротких кодов для настройки веб-дизайна и работает на Bootstrap. Каждый пользователь получает документацию для помощи и поддержки, но прежде вы можете просмотреть видеоуроки, чтобы ознакомиться с шаблоном. Делайте все правильно с Rhythm.

Узнать больше / Скачать

8. Jango

Тема Jango — идеальное решение, которое поможет вам упорядочить вещи и стильно начать путешествие по интернет-магазинам. Это постоянно расширяющаяся и постоянно развивающаяся многоцелевая тема Drupal, с которой вы сэкономите массу времени. Это означает, что вообще не нужно иметь какие-либо знания в области кодирования. Утомительный процесс постоянной работы за кулисами и изменения HTML-кода окончен. Не нужно гадать, сработает ли изменение в коде, которое вы только что сделали. Верьте поговорке; это работает каждый раз. Jango использует Layout Builder и Visual Shortcodes, что позволяет вам легко создавать профессионально выглядящие веб-сайты.

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

Теперь вы можете создать онлайн-платформу, которая поразит ваших посетителей и превратит их в новых преданных клиентов. Бесконечные варианты, прочная конструкция и широкий выбор компонентов открывают перед вами неограниченные возможности. К вашему сведению: Jango поставляется с более чем 300 компонентами, которые вы можете легко смешивать по своему усмотрению.

Дополнительная информация / Загрузка

9. Помимо

С любым из шаблонов Drupal Commerce, которые вы найдете в этом убедительном списке, вы получите блестящий опыт создания веб-сайта. Это факт, с которым вы все уже знакомы. Выбор темы зависит только от личных/деловых предпочтений. Не говоря уже о том, что некоторые темы лучше подходят для одних ниш, а другие идеально подходят для совершенно другого бизнеса.

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

Как только вы начнете пользоваться всеми его функциями, вы можете на короткое время почувствовать себя подавленным. Вскоре вы понимаете, как много вы можете с ним сделать, и создаете именно тот интернет-магазин, о котором всегда мечтали. Он даже поставляется с темной и светлой версиями, уникальными макетами магазинов, 16 различными стилями домашней страницы и потрясающим вариантом видеофона. Вы можете начать экспериментировать прямо сейчас.

Подробнее / Скачать

Я надеюсь, что эта статья помогла найти лучший шаблон электронной коммерции Drupal для вашего интернет-магазина. Кроме того, вы можете создать веб-сайт с нуля, используя HTML-шаблоны веб-сайтов электронной коммерции. Ни Drupal, ни HTML не являются удобными для пользователя и требуют предварительного опыта для создания успешного интернет-магазина. Поэтому я бы порекомендовал взглянуть на темы WordPress для электронной коммерции. WordPress — гораздо более дружелюбная CMS с огромным онлайн-сообществом.

Была ли эта статья полезной?

ДаНет

4 Бесплатные темы Drupal 8 для электронной коммерции, популярные прямо сейчас | by OPTASY

Только представьте: весь этот мастерски написанный бэкенд, вся эта тяжелая работа, проделанная «за кулисами», все те замечательные функции, которые вы создали с нуля… превратились в бесполезные усилия. И это потому, что вы не вложили столько же времени и усилий в выбор темы вашего сайта электронной коммерции. Итак, возникает вопрос: каковы бесплатные темы Drupal 8 для электронной коммерции стоит попробовать?

Таким образом, вы можете выбрать свой идеально подходящий, который будет: встречать, приветствовать и удерживать ваших посетителей в Интернете и освещать ваши продукты.

Итак, мы прочитали ваши мысли и провели для вас исследование! Мы покопались в «куче» бесплатных тем Drupal 8, разработанных специально для интернет-магазинов, и собрали 4 лучших. эта тема заслуживает своего места в топ-4 адаптивных тем Drupal 8 для сайтов электронной коммерции:

  • он «балует» вас готовым Drupal Commerce
  • его идеально быстро и легко установить
  • он предоставляет вам слайд-шоу домашней страницы множество модулей, которые поддерживает тема SShop)
  • вы получаете многоуровневое отзывчивое меню заголовка из коробки, а также
  • оно позволяет вам добавить столько полей, сколько необходимо для вашего типа продукта по умолчанию
  • и должен ли я также добавить, что вы также получаете типы контента Slider и блог из коробки?

Целое «множество» встроенных функций, предлагаемых вам «на серебряной тарелке», чтобы эта тема не повышалась от « еще одной из тех бесплатных тем электронной коммерции Drupal 8, доступных в Интернете » до … один из тех « определенно стоит проверить »!

Если это полностью адаптивная тема Bootstrap Drupal, удобно «перегруженная» функциями сайта электронной коммерции , которые вам нужны, тогда интернет-магазин — это то, что вам нужно!

Теперь позвольте мне углубиться в эту стандартную «загрузку» и выделить некоторые из ключевых функций и интересных функций, которые вы получите:

  • коллекция макетов продуктов для просмотра и выбора из
  • возможность добавления собственных полей к типу продукта по умолчанию
  • типы контента, включенные в конфигурации
  • готовый блог для интеграции с вашим веб-сайтом электронной коммерции
  • Типы содержимого слайдера

Список функций можно продолжить. Обязательно ознакомьтесь с ним, прежде чем тратить драгоценное время на просмотр множества тем Drupal 8 на основе Bootstrap, доступных в Интернете!

Правильно, это одна из тех бесплатных тем электронной коммерции Drupal 8 — подтема темы Bootstrap — направленная на ускорение всего процесса оформления вашего интернет-магазина.

И как это сделать? Он просто переопределяет шаблоны Drupal Commerce, чтобы они соответствовали как Bootstrap, так и всем другим помощникам.

Таким образом, это практически ваш «козырь», ускоряющий процесс создания тем, автоматически обрабатывая все совпадения — Drupal Commerce и Bootstrap — за вас.

Довольно удобно и, безусловно, стоит взять его для «драйв-теста», не так ли?

Еще одна тема Drupal, подходящая для вашего (будущего) сайта электронной коммерции Drupal 8.

Стандартный вариант, разработанный специально для коммерции Drupal и созданный на основе ранее упомянутой здесь темы Drupal: базовой темы Commerce Bootstrap.

Автор записи

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *