Блоги

Разработка модуля для Drupal. Часть2

Submitted by Ромка on Вс, 03/01/2010 - 19:31

Ромка аватар

currencies.info

В .info-файлах модулей содержится служебная информация, без которой модуль не будет виден в системе. Начинаться любой .info-файл должен со строки

  1. ; $Id$

В файлах с PHP-кодом после открывающего тега <?php необходимо добавить строку
  1. // $Id$

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

Submitted by Ромка on Вс, 03/01/2010 - 19:15

Ромка аватар

Система управления сайтом Drupal построена по модульному принципу: компактный набор служебных функций (ядро) расширяется при помощи модулей — файлов с PHP-кодом. Модули должны содержать «хуки» (hooks) — особым образом именованные функции, которые вызываются ядром Drupal при возникновении каких-либо событий. Каждый модуль имеет системное имя, которое должно состоять из латинских букв, цифр, знака подчеркивания (и начинаться обязательно с буквы). Имя хука должно состоять из двух частей: имени модуля и названия события. При возникновении любого события ядро Drupal в каждом из установленных модулей ищет и выполняет соответствующую функцию, т. е. функцию с именем названиемодуля_названиесобытия. Например, при возникновении событий, связанных с учетной записью пользователя (регистрация, авторизация, изменение роли пользователя и др.), ядро Drupal вызывает функции, реализующие хук hook_user, поэтому, чтобы модуль с именем example мог отреагировать на это событие, в нем необходимо объявить функцию с именем example_user(). Список передаваемых в эту функцию аргументов, пример ее использования и информацию обо всех функциях и хуках, доступных в Drupal, можно найти на странице официальной документации http://api.drupal.org или ее русской версии: http://api.drupal.ru.

Эта статья — продолжение материала, посвященного CMS Drupal (см. PC Magazine/RE, 12/2008). В первой статье подробно рассказано о назначении и возможностях системы, а также приведены примеры сборки сайтов на Drupal с использованием уже существующих модулей. Этот же материал будет больше интересен техническим специалистам, умеющим программировать на языке PHP, знакомых с основами HTML и CSS, и тем, кто хочет познакомиться с методами разработки собственных модулей для этой системы. Перед чтением этого материала рекомендуется освежить в памяти информацию, просмотрев ее первые три раздела.

Разработка сайта на Drupal. Часть 6. Оптимизация Друпал

Submitted by Ромка on Вс, 03/01/2010 - 03:11

Ромка аватар

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

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

Разработка сайта на Drupal. Часть 4. Пример разработки корпоративного интранет-сайта на Drupal

Submitted by Ромка on Вс, 03/01/2010 - 02:51

Ромка аватар

Постановка задачи

Предположим, что имеется компания, которая занимается разработкой и интеграцией ПО. В ней работает несколько независимых групп разработчиков, каждая из которых занимается своим проектом. Задача секретаря компании — распределение входящих звонков между сотрудниками организации. Секретарь может не знать тонкостей работы отделов и технических терминов, а также кто из сотрудников занимается решением вопроса, с которым обращается позвонивший клиент, но при этом она должна направлять звонок в нужный отдел.

Решение

На основе CMS Drupal разрабатываем сайт, интегрированный с Active Directory. Благодаря такой интеграции пользователи могут для авторизации на сайте использовать логины и пароли от своих рабочих компьютеров. Для каждого сотрудника создается персональная страница с полями, частично доступными для редактирования самим сотрудником (краткая информация о себе, фотография), и частично доступными для редактирования сотрудниками отдела кадров (фамилия, имя, отчество, должность, контактный телефон и десяток ключевых слов — тэгов). Аналогичные страницы создаются для каждого отдела, по каждому из них имеется описание, телефоны, список всех сотрудников и информация о руководителе. Страница отдела описывается несколькими тегами, характеризующими его работу. При наличии такой системы секретарю достаточно двух-трех слов в вопросе клиента, после чего с помощью системы поиска он находит человека, который с наибольшей вероятностью сможет ответить на вопросы звонящего. Достаточно простой, но наглядный пример. Возможны более сложные варианты, кроме телефонного справочника, корпоративный сайт может содержать модули CRM, Helpdesk, «Доска объявлений» или «Доска почета», корпоративный чат или форум и др.

Разработка сайта на Drupal. Часть 3. Модули Drupal.

Submitted by Ромка on Вс, 03/01/2010 - 02:44

Ромка аватар

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

  • CCK — Content Construction Kit, визуальный редактор, позволяющий расширить любой тип контента с помощью любого количества дополнительный полей: картинки, файлы, видео-ролики с бесплатных видео-хостингов, ссылки на внешние и внутренние ресурсы и так далее. С технической точки зрения этот модуль представляет собой визуальный редактор для Node API, о котором уже говорилось.
  • Views — инструмент, позволяющий создавать списки документов, отфильтрованные по большому количеству различных параметров, например, по рейтингу, автору, дате публикации или последнего комментария, наличию или отсутствию определенных тэгов и другим параметрам. Фактически, этот модуль является графическим интерфейсом, с помощью которого пользователь создает сложный SQL-запрос к базе данных.
  • Panels — модуль, позволяющий без знания html, создать страницы разделенные на районы, данные для которых будут предоставляться различными модулями Друпала. Этот модуль, обычно, используется для создания главной страницы сайта, на которой выводятся блоки с последними новостями, форумными обсуждениями, комментариями и так далее.
  • Webforms — визуальный интерфейс для создания форм обратной связи и обработки данных, переданных через эти формы.
  • Еще один важный модуль — ImageCache. Он обеспечивает функции автоматической обработки изображений на основе пользовательских сценариев правил обработки (preset). Например, при публикации документа на сайте можно настроить ImageCache таким образом, чтобы сразу изменить масштаб картинки, вырезать фрагмент нужного размера, изменить палитру, повернуть и т. п. Иными словами, из одной картинки автоматически могут быть получены, например, пиктограмма, миниатюра для предварительного просмотра и полноразмерное изображение. Все эти модули интегрированы с системой темизации Drupal и позволяют изменять внешний вид создаваемых ими документов и списков.

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

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

Ромка аватар

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

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

Submitted by Ромка on Вс, 03/01/2010 - 02:06

Ромка аватар

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

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

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

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

Submitted by Ромка on Пнд, 28/12/2009 - 20:00

Ромка аватар

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

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

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

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

Страницы

Subscribe to RSS - блоги