Hostingi.net.ua
Логотип сайта
Каталог украинских хостингов

CMS Drupal (Друпал)

Drupal LogoDrupal — это бесплатная и открытая система управления контентом (CMS), написанная на PHP. Она была создана в 2000 году бельгийским студентом Дрисом Байтарттом, который искал способ создать простой и функциональный веб-сайт для общения с другими студентами.

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

История создания и основные аспекты CMS Drupal

Drupal начал разрабатываться в 2000 году, когда Дрис Байтарт был студентом факультета информатики Университета Антверпена. Он хотел создать простой и функциональный веб-сайт для общения с другими студентами.

Первоначально Drupal был написан на Perl, но позже Дрис переписал его на PHP. В 2001 году он опубликовал исходный код Drupal на сайте drop.org. Drupal 8 вышел уже на Symphony.

Рост популярности

Drupal быстро набирал популярность. В 2003 году он был использован для создания сайта «DeanSpace» Говарда Дина, одного из кандидатов от Демократической партии на праймериз Президентских выборов США в 2004 году.

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

Современность

Сегодня Drupal является одной из самых популярных CMS в мире. Актуальная версия — Drupal 10 (9 версия не поддерживается с 1 ноября 2023, хотя многие до сих пор используют не только 9ю, но даже 8ю и более ранние версии). CMS используется для создания различных типов веб-сайтов, хотя, в-основном используется для продвинутых проектов. Считается, что новичкам для создания простых сайтов использовать данную CMS не совсем актуально из-за её сложности и многогранности. С другой стороны, тот кто уже имеет опыт может создавать проекты различных уровней сложности. Ныне Drupal используется по всему миру, и имеет огромное комьюнити. Сложно найти хостинг-провайдеров, которые не предоставляют своим клиентам взаимодействие с Drupal, а многие создают специальные тарифные планы хостинга под самые популярные CMS. В список, конечно же, всегда входит и Drupal.

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

Главные составляющие

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

  • Ядро — это основной набор функций и возможностей, необходимых для работы Drupal. Оно включает в себя такие компоненты, как модульная система, система управления пользователями и ролями, система управления контентом и система шаблонов.
  • Модули — это подключаемые модули, которые расширяют функциональность ядра. Существует более 40 000 модулей, которые добавляют новые функции, такие как поддержка социальных сетей, e-commerce, форумов и т. д.
  • Темы — это наборы стилей, которые определяют внешний вид веб-сайта. Существует более 10 000 тем, которые позволяют изменить внешний вид Drupal в соответствии с любыми требованиями.

Также, еще есть ноды и некоторые другие компоненты; теперь рассмотрим все это подробнее:

Ядро

Ядро Drupal — это основа системы. Оно включает в себя следующие компоненты:

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

Модули

Модули — это основной способ расширения функциональности Drupal. Существует более 40 000 модулей, которые добавляют новые функции, такие как поддержка социальных сетей, e-commerce, форумов, обеспечение безопасности и т. д. Именно модули Drupal делают систему очень разнообразной и дарят ей такие широкие возможности, которые, собственно, и являются одной из причин популярности Друпал. Строго говоря, модуль представляет собой надстройку, или расширение, которое устанавливается поверх основной системы.

Модули можно разделить на следующие категории:

  • Основные модули являются обязательными для работы Drupal. Они включают в себя такие модули, как модуль управления пользователями, модуль управления контентом и модуль шаблонов.
  • Расширенные модули добавляют новые функции к Drupal. Они могут быть разделены на следующие категории:
    • Модули для повышения безопасности
    • Модули для повышения производительности
    • Модули для добавления новых функций
  • Тематические модули изменяют внешний вид Drupal.

Темы

Темы — это наборы стилей, которые определяют внешний вид веб-сайта. Существует несколько тысяч бесплатных тем, которые позволяют изменить внешний вид Drupal в соответствии с любыми требованиями. Движок — PHPTemplate, хотя при желании можно пользоваться Twig, Smarty и др.

Темы можно разделить на следующие категории:

  • Основные темы являются предустановленными темами, которые поставляются с Drupal. Они могут быть использованы для создания базового веб-сайта.
  • Тематические модули добавляют новые темы к Drupal.
  • Пользовательские темы создаются пользователями.

Ноды

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

Каждая нода имеет уникальный идентификатор (nid), который используется для ее идентификации. Ноды также имеют тип (bundle), который определяет их назначение. Например, тип «page» используется для страниц, тип «article» используется для статей, тип «blog» используется для блогов и т. д.

Ноды состоят из полей, которые определяют их содержимое. Поля могут быть текстовыми, числовыми, медиафайлами, ссылками и т. д. Например, поле «title» определяет заголовок ноды, поле «body» определяет ее содержимое, поле «image» определяет ее изображение и т. д.

Ноды можно создавать, редактировать и удалять в административной панели Drupal. Для этого используется модуль «node».

Примеры нод

  • Страница «О нас»
  • Статья «Как создать сайт на Drupal»
  • Блог о путешествиях
  • Форум поддержки пользователей
  • Галерея изображений

Таксономия

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

Файловая система

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

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

Файловая система в Drupal организована по следующему принципу:

  • Директория sites/default — это основная рабочая директория сайта, которая содержит все файлы, созданные пользователем.
  • Директория files — это директория для хранения пользовательских файлов.
  • Директория modules — это директория для хранения модулей системы.

Файлы в файловой системе Drupal могут быть организованы в иерархию каталогов. Для доступа к файлам системы используется префикс sites/default/files. Например, для доступа к файлу image.jpg, расположенному в каталоге images, можно использовать следующий URL:

/sites/default/files/images/image.jpg

Файлы в файловой системе Drupal могут быть защищены от доступа посторонних пользователей. Для этого используется механизм ACL (Access Control List). ACL позволяет настроить права доступа к файлам для различных групп пользователей.

Говоря о файловой системе нельзя также не коснуться следующих моментов:

  • page.tpl.php — место, где находится шаблон. В нем лежит html разметка сайта.
  • template.php — php код сайта, а также «логика» шаблона. Здесь мы можем редактировать данные, определять функции для работы с ними.

Активное комьюнити Drupal

Огромное комьюнити разработчиков и пользователей постоянно создает и улучшает уже созданные модули, за счёт непрерывного, естественного поиска ошибок и недоработок. Иными словами, сформированная система самодостаточна и способна исправлять себя без внешних вмешательств, просто благодаря активности комьюнити. Существует официальное хранилище модулей — drupal.org, однако, многие разработчики модулей создают собственные веб сайты, со временем превращаясь в профильные студии. Впрочем, модули распространяются и через тот же GitHub.

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

Версии Друпал и соответствие модулей

Как вы, наверное, знаете, каждая СMS имеет определённые версии, как и любое другое программное обеспечение. Drupal здесь не исключение. Современные модули рассчитаны на Drupal 9, тогда как более ранние версии — Drupal 7 и 8, с 22 года более не поддерживаются. Соответственно, все модули выпущенные ранее, ориентированы на более поздние версии, для чего выпускаются соответствующие обновления. С другой стороны, множество модулей изначально разрабатывалось под Drupal 9 и 10 версий.

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

Главные виды модулей Drupal

Модули для Drupal бывают двух основных видов:

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

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

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

Модули Drupal на любой вкус и под любые нужды

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

  • Модули работы с контентом. Нужны для создания страниц различных типов, с разными видами контента.
  • Графические модули. На самом деле, графические модули также можно отнести к модулям работы с контентом, но мы их разделили для большего понимания и удобства. Сюда относятся модули, которые позволяют нам работать с картинками и видео на сайте (например, создавать слайд-шоу).
  • Администрирование сайта (включая e-commerce). Различные инструменты для более эффективного управления содержимым сайта, подключение различных платёжных систем и т.д.
  • Social. Аналитика, отслеживание аудитории, инструменты взаимодействия.
  • SEO оптимизация. Здесь мы найдём модули, которые помогут максимально оптимизировать наш сайт для поисковых систем.
  • Модули безопасности. Инструменты для обеспечения безопасности сайта на всех уровнях.
  • Языковые модули. Позволяют создавать мультиязычные версии сайта.

Каждая из данных категорий очень обширна и каждую из них можно разбить на десяток подкатегорий, и написать отдельную статью. Более того – отдельные статьи можно написать под множество модулей, настолько они глубоки и многообразны. Иногда для установки модуля необходимо установить… модуль. Иными словами, некоторые из них работают только в связке, иначе никак.

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

  • Pathauto. Поможет создать адекватные адреса страниц, которые соответствуют изложенному контенту, используя заданный шаблон.
  • Security kit. Модуль, направленный на усиление безопасности. Включает в себя защиту от cross-site скриптинга, предотвращение перехвата контента, управление внутренним XSS фильтром, защиту от кликджекинга и другие функции.
  • E-Commerce. Несколько модулей, необходимых для успешного создания и работы интернет магазинов различного масштаба. Кстати, в рамках E-Commerce есть также модуль для подключения оплаты через Монобанк, созданный украинским разработчиком. Вообще, в Drupal есть специальное ядро — Drupal Commerce, но это отдельная тема.
  • Webform. Данный модуль можно отнести к социальному взаимодействию, так как он обеспечивает удобное и быстрое создание разнообразных форм, таких как обратная связь, комментарии, тикеты и т.д.
  • Redirect 404. Если на сайте появляется несуществующая страница, данный модуль автоматически выполняет редирект, при этом, регистрируя статистику подобных переходов.
  • Drupal Layout Builder. Очень удобный и обширный, комплексный модуль для создания страниц различной сложности, встраивания различных типов контента, и т.д.
  • Bootstrap Layout Builder. Используется для создания адаптивного дизайна под мобильные устройства, в связке с предыдущим модулем.
  • Boost. Позволяет увеличить быстродействие страниц за счёт кеширования, что положительно сказывается на времени открытия сайта, внутренних переходах и т.д.
  • Multilingual modules. Здесь мы имеем четыре базовых модуля: “языковой модуль”, “перевод контента”, “перевод интерфейса” и “перевод конфигурации”. Позволяет в несколько кликов создавать версии сайта на других языках, и не зависеть от функции перевода в браузере. Которая, кстати, не в каждом браузере имеется.

В заключение…

Использование модулей Drupal, на самом деле, процесс не такой простой, как кажется на первый взгляд. Иногда, требуется потратить немало времени на освоение, в особенности, учитывая тот факт, что для некоторых из них требуется знать основы программирования. Однако, дорогу осилит идущий. Если у вас есть желание совершенствовать собственные навыки – вы обязательно найдёте возможность, а мы постараемся оказать посильную помощь в рамках наших статей. Мы ещё не раз коснёмся вопросов модулей для Drupal и WordPress, потому, следите за обновлениями в блоге.