Drupal просто песня

Аватар пользователя dimonium dimonium 11 ноября 2012 в 16:53

Чем больше знаешь Друпал изнутри, тем он прекрасней снаружи"
Заслуженный друпаловед

В настоящее время существует несколько систем управления контентом(cms) с открытым исходным кодом, с помощью которых можно создать сайт, наиболее популярные из них: Drupal, Wordpress, Joomla, но в данной статье речь пойдет о cms Drupal (хотя Drupal правильно назвать не только cms, но и cmf - content management framework).
Предлагаю рассмотреть детальнее все возможности "капельки".

Drupal выиграл множество наград. Он занял 1-е место в Packt Publishing Open Source CMS Awards в 2007, 2008 и 2009 годах. Drupal был также Webware 100 победителем в 2007, 2008 и 2009 годах. Совсем недавно он выиграл Bossie Awards в 2010 и 2011 годах, за лучшее приложение с открытым исходным кодом. Для авторитета все эти награды является выдающимся достижением, и это демонстрирует стандарт, который установил Drupal.
Drupal доверяют некоторые из крупнейших брендов в мире. Drupal является CMS для веб-сайтов США Whitehouse, McDonalds, Австралии, FIFA World Cup 2010 и бельгийский премьер-министр. Это показывает, что Drupal является самым надежным CMS для некоторых из самых популярных брендов.
Drupal сохраняет свое содержимое в базе данных (БД). В самой БД содержимое хранится в виде узлов (nodes) и других объектов высокого уровня, таких как пользователи и комментарии. Существует много различных, предопределенных типов узлов, включая тексты (stories), блоги (blogs) и голосования (polls).
Drupal формирует страницу, содержащую один или несколько фрагментов информации в форме узлов, блоков и других элементов. Каждая страница обычно состоит из центрального столбца содержимого с левой и правой боковыми панелями (side-bars), а также имеет верхнюю панель, или заголовок (header), и нижнюю панель, или сноску (footer). За исключением центрального столбца остальные области являются необязательными.
Центральный столбец используется для отображения основного содержимого сайта, а необязательные области предназначены для дополнительного содержимого. Для заполнения необязательных областей небольшими фрагментами информации Drupal использует блоки. Необязательные области обычно содержат навигационные ссылки (например, наиболее популярные узлы) и другое сокращенное содержимое. Аналогично любому содержимому, блоки могут быть зависимыми от роли пользователя, обеспечивая, таким образом, специализированный вид информации.
Одной из самых важных функциональных возможностей Drupal является способность расширять типы доступных узлов (например, для специфического содержимого вашего приложения) путем написания специализированных модулей узла. Модули являются расширениями Drupal, реализующими одну или больше ловушек предопределенного интерфейса. Ловушки определяют пользовательские полномочия, взаимодействие с БД и обеспечивают интерфейс для редактирования содержимого.
Система меню управляет навигацией по Web-сайту и является полностью настраиваемой через пользовательский интерфейс. В отличие от этого ловушка menu управляет формированием URL, преобразованием URL и тем, какую функцию будет вызывать конкретный URL. Новички в Drupal часто путаются из-за названия этой функции, поскольку оно не относится к меню.
Отделение содержимого от представления осуществляется системой, которая формирует темы страниц на основе шаблонов. Большая часть содержимого легко может быть структурирована и оформлена путем определения шаблонов (или tpl), файлов и функций темы.
Узлы могут быть организованы в категории или таксономии . Примером иерархического содержимого внутри таксономии являются форумы.
Обращение к любому содержимому производится через систему полномочий для управления доступом и изменения содержимого Web-сайта.

Узлы

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

Страницы (Pages)
Простые узлы для отображения содержимого (используя PHP, содержимое можно обновлять динамически; любая часть содержимого может быть динамической при использовании PHP).
Запись в блоге (Blog entry)
Узел для обслуживания Web-журнала.
Форумы (Forums)
Набор узлов и их комментариев (эти узлы группируются путем назначения элемента таксономии).
Текст (Story)
Стандартные страницы, срок действия которых истекает после определенной даты (они аналогичны нормальным страницам, но могут быть оформлены по-другому).
Комментарий (Comment)
Специальный тип содержимого, который позволяет пользователям делать комментарии к содержимому, определяемому другими узлами (комментарии не являются типом узла и хранятся в отдельной таблице БД).

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

В Drupal реализована система управления редакциями (revision) для отслеживания изменений содержимого узлов. Это позволяет разработчику модуля выделить новую запись БД для каждого узла в таблице, специально выделенной для редакций узла. Дополнительная информация приведена в подробном описании редакций Drupal.

Таксономия

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

Комментарии

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

Блоки

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

Модули

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

Аутентификация
Обеспечивают дополнительные механизмы аутентификации пользователя
Ядро
Должны реагировать и взаимодействовать с кодом ядра Drupal
Узел
Обеспечивают новый тип узла в системе

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

Дизайн URL

Drupal использует систему меню для определения навигации по Web-сайту. При создании специализированных модулей вы можете указать, как ваш модуль должен обслуживать содержимое, основываясь на URL. При получении запроса страницы система находит наилучшее совпадение, основанное на иерархической структуре путей. Если путь зарегистрирован, она использует определенную функцию как обратный вызов для формирования представляемого содержимого. Любой фрагмент пути можно использовать для выбора того, как представлять содержимое.Функции обратного вызова определяются в ловушке _menu.

Drupal имеет также механизм для определения использования интерфейса с закладками. Эти закладки определяются в системе меню как "local tasks" (локальные задачи). При определении локальных задач вы можете назначить одну в качестве задачи по умолчанию. Локальная задача по умолчанию является первой задачей, представляемой пользователю, когда он просматривает фрагмент содержимого. Мы рекомендуем всегда назначать локальную задачу по умолчанию при использовании этой функциональной возможности.

Пользователи

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

Настройка внешнего вида вашего Web-сайта

Drupal отделяет содержимое от представления, используя систему поддержки тем. Вы можете оформить тему для вашего содержимого, используя в Drupal различные механизмы поддержки тем. Хотя вы можете запрограммировать тему полностью в PHP (либо использовать готовые шаблоны Drupal), механизм поддержки тем предоставляет интегрированную среду для разработки, что может сэкономить время. В настоящее время на сайте Drupal доступны механизмы поддержки тем PHPTemplate, XTemplate и Smarty. Механизмом по умолчанию является PHPTemplate и предлагает последовательное использование PHP на уровне логики, в модулях и на уровне представления.

Резюме

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

Комментарии

Аватар пользователя ogrrr ogrrr 10 сентября 2013 в 12:07

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