Приложение 2. Системы быстрой разработки Веб-приложений и CMS

Drupal.Это — система управления сайтом (CMS), написанная на языке PHP и исполь­зующая в качестве хранилища данных реляционные базы данных ( MySQL, PostgreSQL и другие). Drupal является свободным программным обеспечением. Разработку проекта начал в 2000 году бельгиец Дрис Байтаерт, который в 2007 году соз­дал фирму Acquia, направленную на коммерческую поддержку проектов и сервисов. Drupal — мощная система управления контентом, созданная группой энтузиастов со всего мира. В настоящее время активно разрабатывается версия 8.x, в которой упор делается на интернационализацию, мультиплатформенность, HTML5 и сервисы.

Архитектура Drupal позволяет применять его для построения различных типов сайтов — от блогов и форумов до информационных архивов или сайтов новостей. Имеющийся по умолчанию функционал можно увеличивать подключением дополнительных расширений — «модулей». Некоторые важные функции, предоставляемые Drupal:

­ единая категоризация всех видов содержимого (таксономия) — от форумных сооб­щений до блогов и новостных статей;

­ широкий набор свойств при построении рубрикаторов: плоские списки, иерар­хии, иерархии с общими предками, синонимы, родственные категории;

­ вложенность категорий любой глубины;

­ поиск по содержимому сайта, в том числе поиск по таксономии и пользователям;

­ разграничение доступа пользователей к документам (ролевая модель);

­ динамическое построение меню;

­ поддержка XML-форматов;

­ вывод документов в RDF/RSS;

­ агрегация материалов с других сайтов;

­ переводы интерфейса сайта на разные языки, а также поддержка ведения разно­язычного контента;

­ возможность создания сайтов с пересекающимся содержимым (например общей ба­зой пользователей или общими настройками);

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

Drupal имеет модульную архитектуру с компактным ядром, предоставляющим API, к ко­торому могут обращаться модули. Стандартный набор модулей включает такие функции, как новостная лента, блог, форум, загрузка файлов, сборщик новостей, голосования, поиск и другие. Дизайн сайта меняется также посредством специальных модулей — «тем оформления».

Модули Drupal.

Кроме программных интерфейсов, в Drupal имеется несколько мощных модулей, бла­годаря которым даже без навыков программирования можно создавать проекты с до­вольно сложной структурой:

· CCK — Content Construction Kit, визуальный редактор, позволяющий расши­рить любой тип контента с помощью любого количества дополнительный полей: кар­тинки, файлы, видео-ролики с бесплатных видео-хостингов, ссылки на внешние и внут­ренние ресурсы и так далее. С технической точки зрения этот модуль представляет собой визуальный редактор для Node API.

· Views — инструмент, позволяющий создавать списки документов, отфильтро­ванные по большому количеству различных параметров, например, по рей­тингу, автору, дате публикации или последнего комментария, наличию или отсутствию определенных тэгов и другим параметрам. Фактически, этот модуль является графиче­ским интерфейсом, с помощью которого пользователь создает сложный SQL-запрос к базе данных.

· Panels — модуль, позволяющий без знания html, создать страницы разделен­ные на районы, данные для которых будут предоставляться различ­ными модулями Друпала. Этот модуль, обычно, используется для создания глав­ной страницы сайта, на которой выводятся блоки с последними новостями, фо­румными обсуждениями, комментариями и так далее.

· Webforms — визуальный интерфейс для создания форм обратной связи и обработки данных, переданных через эти формы.

· Еще один важный модуль — ImageCache. Он обеспечивает функции автомати­ческой обработки изображений на основе пользовательских сценариев правил обработки (preset). Например, при публикации документа на сайте можно настроить ImageCache таким образом, чтобы сразу изменить масштаб картинки, вырезать фрагмент нужного размера, изменить палитру, повернуть и т. п. Иными словами, из одной картинки автоматически могут быть получены, например, пик­тограмма, миниатюра для предварительного просмотра и полноразмерное изо­бражение. Все эти модули интегрированы с системой темизации Drupal и позво­ляют изменять внешний вид создаваемых ими документов и списков.

· Другие важные модули – это Devel, CTools, Backup & Migrate, Menu block, Rules

· Entity Reference, Pathauto.

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

Другая парадигма появилась с созданием в Drupal расширения Content Construction Kit (CCK). CCK позволяет дополнять документы новыми полями различных типов — от по­лей ввода URL и email, до полей хранения и отображения мультимедийных файлов. Посредством дополнительных модулей к CCK (например Node reference) можно организо­вать связи между документами, не используя механизм таксономии.

Несколько примеров популярных модулей, которые можно скачать в репозитории на drupal.org:

· Banner - баннерная система;

· BBCode - поддержка форматирования BBCode для содержимого сайта;

· Captcha - защитный механизм картинок "captcha" используемый при регистрации;

· Fckeditor - графический редактор для ввода контента;

· Gallery - интеграция с галереей изображений Gallery2;

· LDAP integration - интеграция с LDAP;

· listhandler - интеграция с почтовыми рассылками;

· Project - багтрекер;

· SPAM - блокировка спама на основе алгоритма Байеса;

· Swish - интеграция с системой поиска Swish;

· Textile - поддержка разметки Textile для содержимого сайта.

· Guestbook - модуль гостевой книги, служащий для создания гостевой книги.

· Сontextlinks - модуль, позволяющий заменять или передавать ссылки икон­ками и значками. Модуль позволяет делать маленькое пояснение ссылки, напри­мер, куда она ведёт. Есть также возможность создавать ссылки, которые будут от­крываться в новом окне вашего браузера.

· Taxonomy Multi Editor - модуль для редактирования групп категорий. Модуль Taxonomy Multi Editor позволяет управлять определениями taxonomy связанными с вашими узлами. После его установки появиться новая закладка в панели управле­ния системой Drupal, что увеличивает функциональность данного модуля.

· Postcard - модуль электронных открыток.

· Shamu - модуль, который на этапе создания новости на сайте, отправить его на опре­делённое количество адресов почты. Т.е. модуль просто позволяет распро­странять новости сайта своим посетителям. Особенность модуля в том, что всё ра­ботает автоматически.

· Taxonomy Context - модуль позволяет при помощи определенной taxonomy соз­дать и выводить информацию в стиле - заголовок и статистика по текущему раз­делу, выводя заголовок и описание текущего определения, путь "breadcrumb" те­кущего определения taxonomy.

· Database Administration - модуль, позволяющий просмотреть значения всех строк оп­ределёной таблице базы данных. Также модуль позволяет сделать проверку таблицы базы данных. Имеет минимальные настройки и, по сути, является "мини" phpMyAdmin.

· Simplenews - модуль, служащей для реализации рассылки. Существуют похожие мо­дули: Notify и Subscriptions. Но они делают немного другое.

· Ad — система для управления показом рекламных баннеров

· EFCKeditor, CKEditor, Tinymce — визуальные редакторы для ввода контента

· Gallery — интеграция с галереей изображений Gallery2

· LDAP integration — интеграция с LDAP

· mailhandler, listhandler — возможность публикации материалов сайта через почтовый ин­терфейс и из почтовых рассылок

· Модуль Ubercart как основа Интернет-магазина

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

Выше рассмотренные модули, которые не входят в стандартный дистрибутив Drupal, можно скачать с официального английского сайта Drupal — drupal.org

Дизайн сайта на Drupal строится на основе сменных тем оформления. Как таковой нет единственной схемы построения дизайна. Взамен Drupal даёт возможность использовать различные «движки тем», использующие шаблоны, удобные для редактирования (шаб­лоны XML в движках xtemplate и Smarty или шаблоны на HTML и встроенный PHP в движке phptemplate и т. п.), либо создавать темы оформления напрямую обращающиеся к API Drupal.

Drupal поддерживает технологию Ajax для динамической подгрузки содержимого без полного обновления страниц. Для работы с JavaScript добавлена библиотека JQuery. C версии 6.0 появилась возможность создания форм без полной перезагрузки стра­ниц сайта.

Наши рекомендации