Введение в Drupal

Что такое Drupal?

Трудно дать краткое определение Drupal, так как многие люди используют его для различных  целей:

  • как веб-приложение для управления базами данных;
  • как систему управления контентом (Content Management System, CMS) с открытым исходным кодом, свободно распространяемую на основе лицензии GNU General Public License (GPL);
  • как платформу для создания различных сообществ;

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

Drupal – краткий исторический обзор

Drupal был запущен в 2000 году студентом Антверпенского Университета Дрисом Бёйтартом. Дрис, как и некоторые его друзья по университету, хотел поделиться  различными деталями своей жизни. Чтобы удовлетворить эту потребность, он написал веб-приложение, которое позволяло людям публиковать в сети свои заметки. В январе 2001 года, Д.Бёйтарт решил выпустить исходный код. Так родился Drupal-проект.

Более подробно с историей Drupal вы можете познакомиться на его официальном сайте в разделе About Drupal, History  (http://drupal.org/about/history).

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

Терминология Drupal

Drupal, как и большинство программных приложений, имеет специфический лексикон. Здесь приведены только те термины и определения, которые понадобятся нам для освоения нашего курса. Полный глоссарий Drupal вы можете  увидеть на официальном сайте в разделе   Community Documentation (http://drupal.org/glossary).

  • Entity (сущность): Сущность – это новое понятие в Drupal 7 и она описывает  один экземпляр типа сущности.
  • Entity type (тип сущности): Тип сущности группирует поля и используется для хранения и отображения данных. Примером типов сущностей являются ноды (узлы), пользователи, комментарии, термины таксономии.
  • Field (поле): Поле – это многоразовый способ ввода, хранения и отображения информации на сайте, такой как текст, даты, числа.
  • Bundle (пучок): Пучок – это определенный вид типа сущности.
  • Node (нода, узел): Нода – это часть контента, который  был создан на вашем сайте. Например, если вы создали страницу – вы создали ноду. Нода – тип сущности. Создавая ноду, вы создаете сущность.
  • Content type or node type (тип контента или тип ноды): На вашем сайте будут различные типы нод или контента. По умолчанию система поставляется с двумя типами контента: статьями и страницами. По мере продвижения по этому курсу вы будете создавать различные типы контента, такие как закладки, блоги, аудио-узлы и т.д. Различные типы контента могут иметь различные функции на вашем сайте.
  • Post (пост, сообщение): Пост – это часть контента любого типа. Например, если пользователь создает статью, то он создает пост.
  • Core (ядро): Ядро относится к базовой установке Drupal. Установочное ядро состоит из основных модулей и нескольких основных тем. Хотя любой человек, который имеет аккаунт на drupal.org можете предложить изменение к коду, большинство изменений ядра тщательно проверяются разработчиками в сообществе и только небольшое количество людей имеют право на внесение изменений в ядро. Как результат, ядро Drupal является стабильным и безопасным. Ядро может быть загружено с http://drupal.org/project/drupal. Никогда не пытайтесь вносить собственные изменения в ядро! Это может негативно сказаться на работоспособности системы. Для внесения изменений существуют специальные методы, которые не затрагивают ядро.
  • Contributed modules (дополнительные модули): Модули – это расширения, они написаны и предоставлены членами сообщества Drupal. В отличие от ядра, которое является плодом деятельности сотен участников, основное количество модулей создано небольшими группами или отдельными лицами. Нужно быть острожным при установке дополнительных модулей, так они не проверяются так тщательно как ядро. Список всех модулей можно найти http://drupal.org/project/modules.
  • Theme (тема): Темы контролируют внешний вид вашего сайта. В установочный пакет входит несколько базовых тем. Другие темы вы можете скачать с http://drupal.org/project/themes.
  • Menu (меню): Меню представляет собой список ссылок и может быть использовано для создания организационных и навигационных структур сайта. Доступ к списку меню осуществляется по ссылке  admin/structure/menu. Все меню создают свои блоки.
  • Block (блок): Блок отображает контент в определенном месте страницы. В блоки можно вставлять HTML-код. Доступ к списку блоков через admin/structure/block.
  • Region (регион): У каждой темы определены свои регионы. В каждый регион можно поместить один или несколько блоков, или не помещать ничего. Расположение регионов можно увидеть по ссылке admin/structure/block/demo/имя_темы (например bartik).
  • Taxonomy (таксономия, систематика, классификация):Таксономия может быть использована для организации контента на сайте. Администраторы могут создавать различные таксономические категории, чтобы организовывать публикации.
  • Term (термин, понятие, тег, метка): Термины или теги (метки)  - это определенные элементы внутри таксономии. Например, учитель биологии создает два словаря таксономии: первый – тип задания, второй – тема. Если ученик получает задание «прочитать теорию эволюции Дарвина», то можно поставить тег «чтение» из словаря Тип задания и тег «эволюция» из второго словаря.
  • User (пользователь): Это технический термин для обозначения человека использующего сайт
  • Role (роль): Все пользователи сайта, принадлежат к одной или нескольким ролям. Администраторы могут назначить разные полномочия для разных ролей.
  • Anonymus user (анонимный пользователь): Любой человек, который посещает ваш сайт, и не является зарегистрированным пользователем сайта рассматривается как анонимный пользователь. Роль «анонимный пользователь» позволяет указать, как люди, не авторизованные на сайте, могут взаимодействовать с контентом и зарегистрированными пользователями сайта. Можно отключить все права для анонимных пользователей, тогда сайт станет полностью приватным, его контент будет доступен только зарегистрированным пользователям.
  • Authenticated user (аутентифицированный / зарегистрированный пользователь): Все зарегистрированные пользователи проходят проверку подлинности и принадлежат по умолчанию к роли «Аутентифицированный пользователь». Эту роль удобно использовать для назначения базового уровня прав для всех зарегистрированных пользователей.
  • UID1 (User ID 1) (пользователь с идентификационным номером 1 / пользователь 1): Это первый пользователь на Drupal-сайте. UID1, имеет полные права на весь сайт. А с учетом передовой практики и безопасности, UID1 должны использоваться только в качестве резервного учетной записи администратора. Часто, проблемы с вашей конфигурацией не будут видны при входе в качестве UID1, потому что UID1 имеет больше прав, чем другие пользователи, даже администраторы.

Заметки

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

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

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

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

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

01.04.2015    

admin/people/permissions/2     

добавлено право удалять любые комментарии

пользователю с этой ролью нужно такое право для выполнения его задач.