Ромка!eu

  • Отдых
  • Работа
  • Штуки-дрюки
Главная — Блоги — Ромка's blog

Разработка сайта на Drupal. Часть 2. Архитектура Drupal.

  • Просмотреть
  • Голоса

Ромка — Вс, 01/03/2010 - 02:35

61
point

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

В ядре Drupal реализован набор функций (API) для работы со всеми необходимыми компонентами: СУБД, формами, кэшем, пользователями и их правами. Для взаимодействия с СУБД используется абстрактный интерфейс DB API, ядро Drupal оперирует ANSI-совместимым SQL для работы с БД, а структуры (таблицы) для БД определяются программистом в массивах специального вида. При этом преобразование определений таблиц и запросов под особенности конкретной СУБД (официально система Drupal совместима с MySQL и PostgreSQL) выполняется специальной библиотекой, и разработчику не приходится заботиться об особенностях работы СУБД. Определив собственную библиотеку функций, можно подключить другие СУБД, — например, существуют библиотеки для IBM DB2, Oracle и MSSQL.

Не менее важная часть Drupal — интерфейс обработки экранных форм (Forms API). С точки зрения разработчика, форма Drupal — это определенным образом подготовленный массив данных, содержащий информацию об элементах формы и их параметрах. На основе этого массива системные функции генерируют HTML-код. Такой подход позволяет модулям модифицировать одну и ту же форму, а также с помощью функций темизации менять оформление отдельных элементов. Разработчики модулей могут добавлять дополнительные поля (например, защиту от автоматических публикаций — CAPTCHA) или заменять существующие (заменить текстовое поле WYSIWYG-редактором).

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

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

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

Важно отметить, что подсистема темизации Drupal не принуждает разработчика применять один тип шаблонов. Drupal позволяет задействовать различные «движки» шаблонов, на базе которых строятся темы оформления. Стандартом де-факто для тем оформления в Drupal стал механизм PHPtemplate, но можно также использовать Smarty, PHPTAL, Easy Template System и др.

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

Ссылки на другие части этой статьи:

  • Часть 1. Введение
  • Часть 2. Архитектура Друпала
  • Часть 3. Модули Drupal
  • Часть 4. Интранет-сайт на Друпале
  • Часть 5. Социальная сеть на Друпале
  • Часть 6. Оптимизация Друпал

Содержание всех статей: http://romka.eu/blog/my-drupal-articles

  • Drupal
  • статья
  • Ромка's blog
  • Quote

Точка в конце заголовка не

Anonymous (не проверено) → Пнд, 01/04/2010 - 16:45

Точка в конце заголовка не ставится, т. к. заголовок предваряет, а не завершает изложение.

  • ответить
  • quote
  • 1 point

простые сети настройка

Anonymous (не проверено) → Ср, 02/17/2010 - 00:37

простые сети настройка интернета индия дельфины обыкновенный дельфин seropol5

  • ответить
  • quote
  • -3 points

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.
  • Вы можете использовать тэг <code></code> для подсветки синтаксиса программного кода. Действие тэга "<foo>" аналогично тэгу "[foo]".
  • You may quote other posts using [quote] tags.

Подробнее о форматировании

CAPTCHA
Если вы человек, а не робот, то введите текст с картинки. Если вы робот, то велкам ту майкрософт.ком.
Image CAPTCHA
Enter the characters (without spaces) shown in the image.

Обо мне

Всем привет!
Меня зовут
Роман Архаров, я профессиональный веб-разработчик, программирую на языках PHP, Python и Action-Script, в работе использую фреймворки Drupal и Django. В этом блоге я размещаю заметки и статьи, связанные с моей работой, отдыхом и другими интересными мне темами.

Похожие заметки

  • Несколько статей о Друпале
  • Пример разработки плагина для модуля CCK
  • Темизация Drupal. Часть 2. Анатомия темы оформления Drupal
  • Темизация Drupal. Часть 1
  • Разработка модуля для Drupal. Часть2

Популярные заметки

  • Разработка сайта на Drupal. Часть 4. Пример разработки корпоративного интранет-сайта на Drupal
  • Перетаскивание строк таблицы. Table drag and drop — плагин для jQuery
  • Cinnamon Chasers - Luv Deluxe (Music Video)
  • Разработка сайта на Drupal. Часть 3. Модули Drupal.
  • Разработка сайта на Drupal. Часть 5. Социальная сеть на Друпале
  • Разработка сайта на Drupal. Часть 6. Оптимизация Друпал
  • Разработка модуля для Drupal. Часть1. Введение
  • Разработка модуля для Drupal. Часть2
  • Куба. Лето 2008. Часть 3
  • Темизация Drupal. Часть 1

Подписка


Последние комментарии

  • Гость → Знак → Явное плоскостопие
  • Anonymous → Swftools и модуль Pdf2SWfField для Друпала → Здравствуйте, Рома! Все
  • Всеволод → Разработка сайта на Drupal. Часть 4. Пример разработки корпоративного интранет-сайта на Drupal → Panels
  • vsevolod → Несколько статей о Друпале → Статьи
  • Looker → Swftools и модуль Pdf2SWfField для Друпала → Привет! Все вроде делаю
  • Feniksss89 → Динамическое добавление элементов к форме → Не получается.
  • Anonymous → Разработка сайта на Drupal. Часть 6. Оптимизация Друпал → У меня на одном из сайтов
  • Anonymous → Модуль "Курсы валют" для Drupal 6 → Модуль
  • Smith → Разработка сайта на Drupal. Часть 4. Пример разработки корпоративного интранет-сайта на Drupal → Thanks for giving out
  • Anonymous → Получение заголовков (headers) страницы при помощи Java-script → индия курсовые по физике

Новые заметки

  • Зима 2010. Поездка в Тайланд, Индонезию и Сингапур. Часть 3 — Бали, Сингапур, Пхукет
  • Зима 2010. Поездка в Тайланд, Индонезию и Сингапур. Часть 2 — Джокьякарта
  • Зима 2010. Поездка в Тайланд, Индонезию и Сингапур. Часть 1 — Пхукет и Джакарта
  • Шпаргалка по командам и хоткеям Unix
  • Семинар по хапкидо в Днепропетровске
  • О планах
  • Несколько статей о Друпале
  • Темизация Drupal. Часть 4. Темизация Views
  • Темизация Drupal. Часть 3. Основы Drupal Forms API и темизация форм
  • Темизация Drupal. Часть 2. Анатомия темы оформления Drupal

Тэги

Индонезия Отдых Работа Штуки-дрюки зима зима 2010 модуль статья темизация dckyiev09 Drupal jquery
еще тэги

Вход для пользователей

Что такое OpenID?
  • Войти по OpenID
  • Скрыть вход по OpenID
  • Зарегистрироваться
  • Запросить новый пароль

Навигация

  • Exchange rate
  • Vote up/down
  • Переход по внешней ссылке
  • Последние сообщения
  • Фотогалереи

Курсы валют

  • 100 Казахских тенге — 20,2044 (-0.06)
  • 10 Украинских гривен — 37,0715 (-0.11)
  • 10 Китайских юаней — 43,5819 (-0.12)
  • 100 Японских иен — 33,0298 (-0.39)
  • 1 Доллар США — 29,7499 (-0.09)
  • 1 Евро — 40,4866 (-0.03)
  • 1000 Белорусских рублей — 10,0984 (-0.05)
  • 1 Турецкая лира — 19,3760 (+0.12)

10 случайных заметок

  • Доставка
  • Google Developer Day 2009
  • Validation — восхитительный короткометражный фильм
  • Получение заголовков (HTTP-headers) страницы при помощи Java-script
  • Куба. Лето 2008. Часть 6
  • Лето 2007. Путешествие в Камбоджу – Таиланд – Малайзию. Часть 2. Камбоджа, Сиануквилль.
  • О планах
  • Баг jQuery в Firefox 3 и WebKit
  • Пример разработки плагина для модуля CCK
  • Оригинальный новогодний спецэффект для сайтов

Случайные фото

Копенгаген, Кристиания, Граффити 5
Норвегия, Нордсетер
Еще одно фото замка
Море
Закат в Гаване
Дорожка
Здание замка Акерхус
В пути
Старая и новая наши машины — пыжик и сузуки джимни
Радуга над футбольным полем в Лужниках
Копенгаген, Кристиания, Граффити 7
Собака
Крым
Опять я
Тринидадские спортсменчики
Это лыжники. В мае. На улице +20.
  • Отдых
  • Работа
  • Штуки-дрюки

При использовании материалов с сайта, пожалуйста, ставьте ссылку на источник. E-mail для связи: mne@romka.eu.