Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Веб программирование.Начало пути.doc
Скачиваний:
6
Добавлен:
01.04.2025
Размер:
8 Мб
Скачать
☆

Приложение 2. Быстрая разработка Веб-приложений и cms

Drupal. Это — система управления сайтом (CMS), написанная на языке PHP и использующая для хранения реляционные базы данных MySQL, PostgreSQL или другие. Drupal является свободным программным обеспечением. Разработку проекта начал в 2000 году бельгиец Дрис Байтаерт. В настоящее время разрабатывается версия 8.x, направленная на интернационализацию, мультиплатформенность, HTML5 и сервисы. Архитектура 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 предлагается гибкая схема организации структуры сайта на основе таксономии. Таксономия — механизм, позволяющий создавать произвольное количество тематических категорий для содержимого сайта и ассоциировать их с модулями, обеспечивающими ввод и вывод информации. Категории могут представлять плоские или иерархические списки, либо сложные структуры, где элемент может иметь несколько «родителей» и несколько дочерних элементов.

Другая парадигма используется в CCK, в котором позволяется дополнять документы новыми полями различных типов — от полей ввода URL и email, до полей хранения и отображения мультимедийных файлов. Посредством дополнительных модулей к CCK можно организовать связи между документами, не используя механизм таксономии.

Несколько примеров популярных модулей, которые можно скачать в репозитории на 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 разработано два конкурирующих решения, позволяющих организовать электронный магазин — модули Ubercart и e-Commerce. В Ubercart реализованы интерфейс покупателя и менеджера магазина. Первый включает в себя витрину и корзину для покупок, второй обеспечивает управление товарами и их атрибутами, а также управление магазином в целом. Корзина Ubercart по умолчанию предоставляет возможность оплатить товар.

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

Некоторые важные функции, предоставляемые Drupal:

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

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

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

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

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

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

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

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

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

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

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

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

Дизайн сайта на Drupal строится на основе сменных тем оформления. Взамен единственной схемы построения дизайна. Drupal даёт возможность использовать различные «движки тем», использующие шаблоны, удобные для редактирования Drupal поддерживает технологию Ajax для динамической подгрузки содержимого. Для работы с JavaScript добавлена библиотека JQuery.