Drupal
Drupal – это название системы CMS/CMF, управляющей этим сайтом. В мире существует множество сайтов Drupal и многие из них делятся регистрацией с другими сайтами, так что пользователи, зарегистрировавшись на одном сайте, могут войти в систему в другом, используя единый идентификатор Drupal.
Поэтому не стесняйтесь заходить на наш сайт , используя имя пользователя от другого Drupal-сайта. Формат идентификатора Drupal схож с адресом электронной почты: логин@сервер. Пример верного идентификатора Drupal: mwlily@www.drupal.org.
CMS Drupal
Drupal позволяет создавать самые разные сайты, при этом сильно сокращая объем разработки и, в конечном счете, повышая качество продукта. Drupal готов к использованию «из коробки», но его истинные преимущества заключаются в большей, по сравнению с другими CMS, гибкости и расширяемости, а также в контентно-ориентированном подходе к организации содержания сайта.
В данной статье предлагается краткий обзор системы управления контентом Drupal в ракурсе её применимости для построения сайтов различного профиля.
По каждой обсуждаемой теме представлены ссылки. К сожалению, далеко не все материалы по ссылкам русскоязычные.
CMS и CMF
Для начала предлагается формальное определение системы управления контентом.
Система управления контентом (англ. Content management system, CMS)Программный комплекс, используемый для управления содержанием сайта или информационной системой с неструктурированным контентом.
Каркас системы управления контентом (англ. Content management framework, CMF)Программный комплекс, используемый для построения CMS с требуемой функциональностью.
Существует множество CMS (по данным CMSMatrix: более 820), в том числе открытых, ориентированных, в основном, на LAMP-платформу.
Примеры CMS: phpNuke, Joomla, WordPress, и пр.
Примеры CMF: Zend Framework, Ruby On Rails, CakePHP и пр.
Drupal — система управления контентом, гибкость и расширяемость которой позволяют получать нетиповые конфигурации, фактически, приравнивая её к CMF.
В роли совмещения концепция CMF и CMS в одном продукте у Drupal есть аналоги (например, TYPO3), но среди них Drupal обладает еще и наименьшей сложностью в освоении.
Краткая история развития CMS
* 2000: Франциско Бурзи создает php-версию phpNuke — одной из самых массовых до недавнего времени CMS, породившей множество форков;
* 2001: Появляется первая открытая версия Drupal;
* 2005: От открытого к тому моменту проекта Mambo, отделяется сообщество разработчиков, решающих независимо развивать CMS Joomla — одну из лучших CMS, построенную в соответствии с модульно-ориентированным подходом.
Краткая история развития Drupal
* 2000: Дрис Байтаерт создает первую версию Drupal для использования в личных целях;
* 2001: Появляется первая открытая версия Drupal;
* 2007: Дрис Байтаерт создает фирму Acquia направленную на коммерческую поддержку проектов и сервисов, основанных на Drupal, вдохновленный успехами Canonical и RedHat.
Проект был начат в 2000 году Дрисом Байтаертом. В 2001 году были открыты исходные коды. Сейчас Drupal распространяется под лицензией GPL v.2 Drupal написан на php, данные система хранит в реляционной БД («из коробки» поддерживаются MySQL и PostgreSQL).
Разработчики поддерживают две версии Drupal: текущую (6.x) и предыдущую (5.x). Обратная совместимость между версиями не гарантируется. В соответствии с заявлением Дриса Байтаерта, более старые версии не поддерживаются даже на уровне исправлений безопасности, чтобы разработчики могли активно применять актуальные технологии в Drupal без оглядки на совместимость со старыми версиями.
Drupal сегодня
* Первое место в номинации Overall на 2007, 2008 Open Source CMS Award;
* Сотни разработчиков и всего 20 тыс. строк кода при функциональности базового дистрибутива вполне соответствующей другим популярным CMS;
* Более 600 тыс. скачиваний дистрибутива в год;
* Более 55 тыс. работающих сайтов на базе Drupal, в том числе сотни популярнейших и авторитетных сайтов :
* популярнейший Linux-дистрибутив Ubuntu: http://ubuntu.com,
* компания Novell: http://www.novell.com/communities/,
* компания Yahoo: http://research.yahoo.com,
* Аврил Лавин:http://www.avrillavigne.com,
* Гарвардский университет: http://harvardscience.harvard.edu,
* Дженифер Лопес: http://jenniferlopez.com,
* Бритни Спирс: http://britney.com,
* http://www.warnerbrosrecords.com студия звукозаписи Warnerbros Records,
* P!nk Пинк,
* Beyonce Beyonce,
* Kelly Clarkson Келли Кларксон,
* Тори Эймос: http://toriamos.com,
* IDE Eclipse: http://live.eclipse.org,
* британское отделение канала MTV: http://www.mtv.co.uk,
* британское отделение Greenpeace: http://www.greenpeace.org.uk,
* немецкое отделение журнала Playboy: http://playboy.de,
* сайт Sony Playstation для азиатского региона: http://asia.playstation.com,
Примеры некоторых русскоязычных сайтов на CMS Drupal:
* Каталог статей – отличная возможность рассказать миру что-то интересное и прорекламировать свой сайт
* Android – современный смартфон на базе системы управления (ОС) Android от компании Google
* Архитектура и история – собрание статей на тему древней архитектуты и истории строительства
* Медицинский портал Aspirin.by – отвечает на вопросы, связанные со здоровьем, профилактикой и лечение заболеваний
* Косметика для автомобиля – рецепты по уходу за вашим автомобилем
* Прокат авто – широкий выбор автомобилей на прокат
* Бег – блог про бег и здоровый образ жизни
* Бизнес – белорусский малый бизнес глазами экспертов и обывателей
* Свадьба – молодой свадебный проект о большом событии в жизни каждой семьи
* Fender.by – проект про гитару Fender и историю рок музыки
* Финансы – экономика и финансы простыми словами
* Iphone – фан-сайт самого знаменитого телефона от компании Apple
* Красота и здоровье – он-лайн проект о том, как сохранить красоту и здоровье (для женщин)
* Форекс – форекс (forex) в Минске на лучших условиях
* Мобильник – самые свежие новости мира мобильных телефонов
* Мой BMW – блог любителя марки BMW и других немецких автомобилей
* МОЗГ – образовательный проект байнета
* Ауди 80 – ремонт и тюнинг автомобиля Audi 80
* Статистика интернета – интернет в цифрах, фактах и мнениях специалистов
* Каталог статей – самый молодой каталог статей байнета
* Пилатес – всё о йоге и пилатесе
* Суши – сайт о японской кухне и суши в Минске
* Ремонт и строительство – советы хозяевам и специалистам
* Спорт зал – как вести здоровый образ жизни?
* Symbian – смартфоны на базе ОС Symbian
* Строительный портал – строительство, ремонт, продажа и покупка строительных материалов, каталог специалистов
* Туризм в Беларуси – путешествие по Беларуси для гостей страны
* TTB – ещё один каталог статей
* Форекс – личный блог про валютный рынок и инвестиции
* Блондинка – самый правильный женский сайт
* Радиофизики – некогда мощное сообщество радиофизиков
* Кредит, финансы, инвестиции – деньги не терпят безответственного отношения
* Работа – работа для студентов и молодых специалистов
* Прокат авто – аренда и прокат автомобилей
* Forex blog – дневник форекс трейдера
* Продвижение сайта – продвижение сайта глазами специалиста
* Зрение – портал про зрение и здоровье глаз
* Копирайтинг – коммерческое написание статей и другие текстовые услуги
* Истории стартапов – как это было и чем стали знаменитые стартапы сегодня
* BMW – фан сайт автомобилей BMW
* Более 1500 готовых модулей;
* Наличие готовых модулей для электронной коммерции, построения сообществ и прочих популярных задач;
* Рекомендации к применению от таких компаний как IBM;
* Ежегодная конференция разработчиков (более 430 участников побывало на конференции в 2007 году, прошедшей в Барселоне);
* Локализация более чем на четыре десятка языков;
* Хорошее быстродействие, обеспечиваемое встроенным механизмом кеширования;
* Работа на популярной LAMP-платформе.
Подходы к организации содержания сайта
Модульно-ориентированный подход
В системе имеются различные функциональные модули (лента новостей, форум, блог, статические страницы и пр.), содержание каждого модуля существует только в его контексте.
В структуре сайта связаны, как правило, материалы порождаемые одним модулем.
Контентно-ориентированный подход
Содержание — первично. Модуль, создающий, обрабатывающий или выводящий материал не определяет положение материала в структуре сайта.
Одни и те же материалы могут обрабатываться разными модулями, относиться к разным типам материалов, но объединяться содержательной тематикой и потому быть связанными.
Drupal пропагандирует контентно-ориентированный подход к организации содержания сайтов.
Таксономия Drupal
В нашем случае таксономию можно понимать как классификацию, применительно к материалам сайта.
Таксономия в Drupal
Механизм, позволяющий создавать произвольное количество категорий (тегов, терминов), ассоциировать с ними материалы сайта (с целью классификации последних).
Категории могут образовывать списки, древовидные иерархии или сложные структуры, где элемент может иметь несколько родителей и несколько дочерних элементов.
Категории объединяются в группы (или словари). Группа определяет виды связей категорий, типы контента к которым они могут применяться и пр. Категории вне групп создаваться не могут.
Принятые синонимы:
* Тег — термин — категория;
* Словарь — группа.
Инструменты Drupal помогают создавать удобную навигацию по сайту произвольной структуры, основываясь на категориях и связями между ними.
Понимание принципов организации контента в Drupal — основной барьер для быстрого и безболезненного освоения системы.
Иллюстрация связей материалов факультетского сайта, возможных в рамках модульно-ориентированного подхода (голубые непрерывные линии) и таксономии (пунктирные линии цветов, соответвующих категориям):
Таксономия против древовидной иерархии
Цветные прямоуголники внизу иллюстрации — представляют категории таксономии, разбитые на два независимых словаря (слева: учебные предметы, справа: категории посетителей сайта). Оба словаря имеют простейшую структуру списков. Категории в данных словарях никак не связаны между собой, но это не мешает какому-то одному материалу сайта относиться сразу к нескольким категориям даже и из одного словаря.
Возможности локализации Drupal
* Использование кодировки UTF-8;
* Локализация с помощью библиотеки gettext (см. http://uneex.cs.msu.su/uneex/LecturesDistro2007/12_Translate);
* Возможность перевода элементов действующего сайта через веб-интерфейс на работающем сайте;
* Удобные средства для локализации модулей сторонней разработки через po-файлы (см., например, http://drupal.org/project/potx и http://www.poedit.net);
* Существующие сообщества переводчиков и готовые переводы ко многим модулям (см. http://drupaler.ru).
Документация Drupal
* Документированный API для разработчиков;
* Локализованные руководства и wiki для пользователей Drupal;
* Встроенная справочная система для администраторов сайта и пользователей.
Расширяемость Drupal
* Установка качественных модулей, не требует особой квалификации (существуют даже модуль для автоматической инсталляции других модулей);
* Встроенные функции API и модулей могут замещаться или расширяться сниппетами;
* Drupal поддерживает технологию Ajax, разработчикам модулей доступна популярная библиотека JQuery;
* Существует обширный набор модулей для интеграции Drupal с другими популярными веб-сервисами и приложениями;
* Зависимости между модулями отслеживаются.
Инсталляционные профили Drupal
* Возможность локализации, предварительной настройки и комплектации нужными модулями с помощью создания инсталляционных профилей — специально подготовленных дистрибутивов Drupal;
* Процесс создания инсталляционных профилей документирован.
Оформление Drupal
* Большое количество готовых бесплатных тем оформления, в том числе, распостраняемых самостоятельными проектами;
* Документированное содержание тем, возможность интеграции сниппетов в темы;
* Темы построенны на основе движка PHPTemplate, но существет возможность применения и других популярных движков;
* Разделение представления, содержания и функциональности.
Управление доступом в Drupal
* Разграничение доступа к различным функциям и материалам всей системы и модулей на основе ролей (аналог групп пользователей в Unix);
* Наличие модулей для автоматического управления ролями;
* Настраиваемые подсистемы регистрации и авторизации пользователей, расширяемые с помощью модулей.
Готовность Drupal к поисковой оптимизации (SEO)
* Поддержка ЧПУ-ссылок в системе и на уровне базовых модулей;
* Модули для управления мета-тегами;
* Модули улучшающие индексацию конкретными поисковыми системами.
Рекомендуемые источники дополнительной информации
* http://drupal.ru — сайт русскоязычного сообщества пользователей;
* http://setegnom.com/booktree — русскоязычное руководство пользователя (рекомендуется в первую очередь для изучения начинающим пользователям системы);
* http://drupaler.ru — сообщество локализации модулей;
* serp.by – Serp и Друпал
* http://drupal.org — официальный сайт;
* http://drupal.ru/node/4195 — руководство по установке русского инсталляционного пакета Drupal.
.
Также имеется готовая форма пользовательского поиска Google, ищущая сразу по большинству сайтов о Drupal`е (включая, в основном, русскоязычные):