модуль
Разработка модуля для Drupal. Часть3. Cron и темизация
Ромка — Вс, 01/03/2010 - 19:52
Регулярные процедуры
Чтобы Drupal периодически выполнял определенные действия, в планировщике задач операционной системы необходимо настроить запуск файла cron.php, который находится в корне каждого Drupal-сайта. При выполнении этого файла будет вызываться хук hook_cron, и в нашем модуле мы напишем его реализацию.
Разработка модуля для Drupal. Часть2
Ромка — Вс, 01/03/2010 - 19:31
currencies.info
В .info-файлах модулей содержится служебная информация, без которой модуль не будет виден в системе. Начинаться любой .info-файл должен со строки
- ; $Id$
В файлах с PHP-кодом после открывающего тега <?php необходимо добавить строку
<?php
// $Id$
?>
Разработка модуля для Drupal. Часть1. Введение
Ромка — Вс, 01/03/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. Часть 3. Модули Drupal.
Ромка — Вс, 01/03/2010 - 02:44
Кроме программных интерфейсов, в Drupal имеется несколько мощных модулей, благодаря которым даже без навыков программирования можно создавать проекты с довольно сложной структурой:
- CCK — Content Construction Kit, визуальный редактор, позволяющий расширить любой тип контента с помощью любого количества дополнительный полей: картинки, файлы, видео-ролики с бесплатных видео-хостингов, ссылки на внешние и внутренние ресурсы и так далее. С технической точки зрения этот модуль представляет собой визуальный редактор для Node API, о котором уже говорилось.
- Views — инструмент, позволяющий создавать списки документов, отфильтрованные по большому количеству различных параметров, например, по рейтингу, автору, дате публикации или последнего комментария, наличию или отсутствию определенных тэгов и другим параметрам. Фактически, этот модуль является графическим интерфейсом, с помощью которого пользователь создает сложный SQL-запрос к базе данных.
- Panels — модуль, позволяющий без знания html, создать страницы разделенные на районы, данные для которых будут предоставляться различными модулями Друпала. Этот модуль, обычно, используется для создания главной страницы сайта, на которой выводятся блоки с последними новостями, форумными обсуждениями, комментариями и так далее.
- Webforms — визуальный интерфейс для создания форм обратной связи и обработки данных, переданных через эти формы.
- Еще один важный модуль — ImageCache. Он обеспечивает функции автоматической обработки изображений на основе пользовательских сценариев правил обработки (preset). Например, при публикации документа на сайте можно настроить ImageCache таким образом, чтобы сразу изменить масштаб картинки, вырезать фрагмент нужного размера, изменить палитру, повернуть и т. п. Иными словами, из одной картинки автоматически могут быть получены, например, пиктограмма, миниатюра для предварительного просмотра и полноразмерное изображение. Все эти модули интегрированы с системой темизации Drupal и позволяют изменять внешний вид создаваемых ими документов и списков.
Swftools и модуль Pdf2SWfField для Друпала
Ромка — Чт, 08/20/2009 - 23:55
Заказчику захотелось просматривать на сайте PDF-документы через flash-проигрыватель. Adobe Reader есть не у всех, да и выглядит он скучно, а к флешовому проигрывателю можно, при желании, прикрутить множество красивых эффектов. Ну и, разумеется, руками конвертировать файлы из формата PDF в SWF заказчик не захотел. Поиски готового решения ничего не дали, по этому я написал свой модуль для Друпала, который, используя бесплатный набор утилит swftools, конвертирует закачанный PDF в SWF и выводит его в самописном вьюере.
Модуль представляет из себя плагин к CCK, зависит от FileField и использует для вывода просмотрщика возможности модуля SWFTools (он не имеет никакого отношения к проекту swftools.org). Иными словами, для работы моего модуля нужны все три перечисленных выше модуля. Кроме того, на сервере должна быть установлена последняя версия swftools, я тестировал модуль с swftools 0.9 и глюков с конвертированием данных не обнаружил, за другие версии не ручаюсь. Последнее ограничение означает, что модуль не будет работать на 99,99% виртуальных хостингов. Установка swftools не должна вызвать проблем, особенно если воспользоваться вот этой инструкцией.
Демонстрация работы модуля доступна здесь: http://romka.eu/article/testovyy-dokument-demonstriruyushchiy-vozmozhnos....
Тестирование модуля "Inner poll"
Ромка — Втр, 09/16/2008 - 21:05
Разработал очередной модуль для шестого Друпала. Inner poll — модуль позволяющий прикреплять опросы к любому документу (в стандартной поставке Друпала опрос является отдельным типом документа).
Особенности модуля
- Все действия пользователей сохраняются без перезагрузки страницы (хмм, возможно, пора уже перестать считать AJAX фишкой);
- автор опроса может разрешить (или не разрешить) пользователям отменять свои голоса голоса;
- автор опроса может открывать/закрывать опрос, а так же устанавливать дату автоматического закрытия опроса;
Register or login to poll
Results:
Ква!: 0 голосов
Ква-ква!: 4 голоса
Не ква!: 0 голосов
Разработал модуль "Адаптивное меню" для Drupal 6
Ромка — Чт, 08/28/2008 - 23:20
Модуль позволяет пользователям формировать меню, состоящее из любых ссылок, как внешних, так и внутренних.
Фичи модуля
- достаточно добавить URL, заголовок страницы будет получен автоматически;
- сортировка элементов меню осуществляется простым перетаскиванием;
- все действия пользователя обрабатываются при помощи технологии AJAX, по этому интерфейс не усложнен лишними вопросами или перезагрузками страницы. Все изменения сохраняются "на лету".
В продолжении небольшая демонстрация возможностей модуля.
Проверка имени пользователя на наличие букв из разных алфавитов
Ромка — Сб, 08/23/2008 - 10:59
Иногда при работе сайта может возникнуть неприятная ситуация, в которой некоторые ушлые юзеры регистрируют себе логин, похожий на имя уже существующего пользователя, при этом одна или несколько букв в имени заменяется аналогичной буквой из другого алфавита. Например, в моем нике русскую букву "о" можно заменить английской, для системы ник Рoмка с английской "о" будет уникальным и он будет без проблем зарегистрирован, а для обычных читателей эти два ника могут показаться идентичными, особенно если хулиган скопирует себе еще и данные из оригинального профиля пользователя.
Специально для борьбы с таким хулиганством я сделал небольшой (буквально 20 строчек) модуль для шестого Друпала, который запрещает регистрировать имена, в которых используются буквы более чем из одного алфавита.
Последние комментарии