Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Все о Drupal для пользователей и разработчиков (API Drupal). Обзор Drupal.


Здравствуйте, наш дорогой читатель

Обзор Drupal

Материал подготовлен в компании IWAWI.

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

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

Сила абстрации Drupal.

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

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

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

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

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

Как Drupal делает это.

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

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

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

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

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

Создание информационного сайта - это то, что обычно большинство CMS делает прямо из коробки. Однако Drupal действительно позволяет сделать больше, чем необходимо.

Быстрое начало работы и широкая настройка.

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

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

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

Потоки Drupal.

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

Схема пяти основных слоев в Drupal.

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

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

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

4. Слой прав пользователей. Далее идет слой с правами доступа пользователей. Здесь определяются какие вещи разрешены или запрещены для различных типов пользователей. Разрешения присваиваются различным группам пользователей.

5. Слой шаблонов. Шаблоны состоят преимущественно из XHTML и CSS, при этом некоторые маркеры PHP пронизывают шаблоны, чтобы вставить содержимое из системы в правильные места. Шаблоны могут быть назначены налету.

Направленный поток от ядра до поверхности показывает, как много вещей в работе Drupal. Есть некоторые новые функции, которые не появляются? Может быть, вы загрузили модуль в систему, но не активировали его еще (например, в "А" на диаграмме выше).

Может быть, этот модуль установлен и активирован, но вы все равно не видите то, что вы хотите на своем сайте. Вы забыли поставить блок на уровне 3, как и в варианте "B"? Или ваши настройки прав пользователей конфликтуют с тем, что вы хотите, и ваши пользователи не могут увидеть вывод информации, как в примере "C"?

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

Источники информации:


В избранное