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

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

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

Читать дальше ➠

Разработка сайта на Drupal. Часть 1. Введение.

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

Все эти задачи решаются с помощью программных комплексов класса «система управления контентом» (Content Management System, CMS). Как правило, CMS предоставляют целый ряд готовых решений стандартных задач: ленты новостей, гостевые книги, форумы, опросы, фотогалереи и т. д. Их достаточно много как коммерческих, так и бесплатных, например Drupal, которая рассматривается в этой статье.

Строго говоря, Drupal иногда классифицируют не как CMS, а как CMF (Content Management Framework, «фреймворк» или «каркас» для сайта). В Drupal удачно сочетаются достоинства CMS (большое количество модулей, расширяющих функционал системы) и CMF (мощный, детально документированный интерфейс, API, позволяющий без затруднений написать новый или доработать существующий модуль для этой системы). В итоге разработчики могут создавать на единой основе Web-комплексы, адаптированные для решения самых разных прикладных задач.

Читать дальше ➠
cover.png

Оригинальный новогодний спецэффект для сайтов

Нашел интересный ява-скриптовый спецэффект, которым под Новый Год можно украсить страницы сайта. Нет, это не доставшие всех снежинки, это ёлочная гирлянда, лампочки которой весело лопаются при наведении на них курсора мыши. Почти что пупырчатый полиэтилен :)

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

Есть, правда, у этого скрипта два недостатка:

  • он принципиально не работает в IE;
  • глючит при одновременной работе с jQuery, так как тоже объявляет функцию с именем $, чтобы исправить этот глюк достаточно в файле christmaslights.js переименовать все строки $ на что-нибудь другое, например $_.

Статья в PC Magazine/RE 11.2009: темизация Drupal

2009-11-small.png

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

Однако все эти упреки не оправданы, к Друпалу, при должном умении, можно прикрутить дизайн и верстку любой сложности. До неузнаваемости можно “темизировать”, то есть изменить внешний вид, любой html-код, создаваемый Друпалом: все стандартные формы, блоки, документы и списки.

В ноябрьском номере журнала PC Magazine/RE опубликована моя статья о “темизации” Друпала, в ней рассказано о трех этапах темизации, которые покрывают собой практически 100% задач, связанных с изменением внешнего вида сайта:

  • разработка общего шаблона для всех страниц сайта и “кастомных” шаблонов для избранных страниц;
  • разработка различных шаблонов для разных типов документов и списков;
  • изменение внешнего вида форм (поиск, авторизация и любые другие стандартные и создаваемые внешними модулями формы).

Кроме того, в последнем разделе рассказано об основах Forms API Друпала.

Google Developer Day 2009

Побывал во вторник на конференции Google Developer Day 2009. Очень понравилось мероприятие, было много интересных докладов, но самое важное на таких конференциях — это общение в кулуарах. В этот раз, кроме того что встретился со старыми друзьями и познакомился с новыми ребятами, удалось немного пообщаться с самим Ларсом Расмуссеном, разработчиком Google Maps и Google Wave. Ларс очень обаятельный дядька, рассказал несколько слов о дальнейших планах развития Гугловолн, а также похвастался тем, что работа в Гугле для него — это настоящее удовольствие. Завидую. По доброму :)

DSC_0922.jpg

DSC_0922.jpg

А вот и отчеты о мероприятии моих друзей друпальщиков. Здесь впечатления Саши “GogA” Гоголева, а здесь Андрея “AndyCEO” Андреева.

Швабрашвабр2

Разработал и выложил в открытый доступ вторую версию своей “социальной” сборки CMS DrupalШвабрашвабр. В новой версии пользователям доступны:

  • персональные и общие фотогалереи,
  • система статусов (в стиле Фейсбука и Твиттера),
  • персональные гостевые книги (в стиле стены во вКонтакте),
  • списки друзей и посетителей,

а также от старой версии сборки остались доступны:

  • система блогов и коллективных блогов,
  • система рейтингования материалов, комментариев и “карма” (репутация) пользователей,
  • система распределения прав доступа к ресурсам сайта на основе кармы.

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

В Политехническом музее

Был сегодня в Политехническом музее, в Москве, там, в одном из залов, у экспонатов вместо табличек с описаниями были вот такие надписи: DSC00819.jpg

DSC00819.jpg

Цена эсэмэски 50 центов, в ответ обещают выслать описание указанного экспоната.

Статья в PC Magazine/RE. Drupal: разработка модуля

2009-09-small.png В сентябрьском номере журнала PC Magazine/RE опубликовали мою статью на тему “Drupal: разработка модуля”. В статье рассмотрены базовые принципы разработки модулей для CMS Drupal и детально разобран пример разработки модуля “Курсы валют”, при реализации которого решены самые часто возникающие перед разработчиком задачи: создание форм (Forms API), работа с базой данных, распределение прав доступа, темизация.

В ближайшем номере будет размещена статья о темизации Друпала.