Ромка!eu

  • Отдых
  • Работа
Главная

Это старая (Drupal 6) версия сайта romka.eu. Она больше не обновляется, комментирование материалов отключено. Обновленная версия сайта доступна по адресу http://romka.eu.

модуль

warning: Creating default object from empty value in /var/www/d6.romka.eu/modules/taxonomy/taxonomy.pages.inc on line 33.

Разработка модуля для Drupal. Часть3. Cron и темизация

Ромка — Вс, 01/03/2010 - 19:52

Регулярные процедуры

Чтобы Drupal периодически выполнял определенные действия, в планировщике задач операционной системы необходимо настроить запуск файла cron.php, который находится в корне каждого Drupal-сайта. При выполнении этого файла будет вызываться хук hook_cron, и в нашем модуле мы напишем его реализацию.

  • cron
  • Drupal
  • модуль
  • статья
  • темизация
  • Ромка's blog
  • 4 комментария
  • Читать далее

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

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

currencies.info

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

  1. ; $Id$

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

  • Drupal
  • модуль
  • статья
  • Ромка's blog
  • 6 комментариев
  • Читать далее

Разработка модуля для 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
  • модуль
  • статья
  • Ромка's blog
  • 1 комментарий
  • Читать далее

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

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

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

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

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....

  • Drupal
  • flash
  • PHP
  • swftools
  • модуль
  • Работа
  • Ромка's blog
  • 15 комментариев
  • Читать далее

Тестирование модуля "Inner poll"

Ромка — Втр, 09/16/2008 - 21:05

Разработал очередной модуль для шестого Друпала. Inner poll — модуль позволяющий прикреплять опросы к любому документу (в стандартной поставке Друпала опрос является отдельным типом документа).

Особенности модуля

  1. Все действия пользователей сохраняются без перезагрузки страницы (хмм, возможно, пора уже перестать считать AJAX фишкой);
  2. автор опроса может разрешить (или не разрешить) пользователям отменять свои голоса голоса;
  3. автор опроса может открывать/закрывать опрос, а так же устанавливать дату автоматического закрытия опроса;
Attached poll "Ква?".
Register or login to poll
Results:
Ква!: 0 голосов
Ква-ква!: 4 голоса
Не ква!: 0 голосов
  • Drupal
  • модуль
  • Работа
  • Ромка's blog
  • 24 комментария
  • Читать далее

Разработал модуль "Адаптивное меню" для Drupal 6

Ромка — Чт, 08/28/2008 - 23:20

Модуль позволяет пользователям формировать меню, состоящее из любых ссылок, как внешних, так и внутренних.

Фичи модуля

  • достаточно добавить URL, заголовок страницы будет получен автоматически;
  • сортировка элементов меню осуществляется простым перетаскиванием;
  • все действия пользователя обрабатываются при помощи технологии AJAX, по этому интерфейс не усложнен лишними вопросами или перезагрузками страницы. Все изменения сохраняются "на лету".

В продолжении небольшая демонстрация возможностей модуля.

  • Drupal
  • Drupal 6
  • модуль
  • Работа
  • Штуки-дрюки
  • Ромка's blog
  • 5 комментариев
  • Читать далее

Проверка имени пользователя на наличие букв из разных алфавитов

Ромка — Сб, 08/23/2008 - 10:59

Иногда при работе сайта может возникнуть неприятная ситуация, в которой некоторые ушлые юзеры регистрируют себе логин, похожий на имя уже существующего пользователя, при этом одна или несколько букв в имени заменяется аналогичной буквой из другого алфавита. Например, в моем нике русскую букву "о" можно заменить английской, для системы ник Рoмка с английской "о" будет уникальным и он будет без проблем зарегистрирован, а для обычных читателей эти два ника могут показаться идентичными, особенно если хулиган скопирует себе еще и данные из оригинального профиля пользователя.

Специально для борьбы с таким хулиганством я сделал небольшой (буквально 20 строчек) модуль для шестого Друпала, который запрещает регистрировать имена, в которых используются буквы более чем из одного алфавита.

  • Drupal
  • Drupal 6
  • модуль
  • Работа
  • Ромка's blog
  • 3 комментария
  • Читать далее
RSS-материал

Обо мне

Всем привет!
Меня зовут
Роман Архаров, я профессиональный веб-разработчик, программирую на языках PHP, Python и Action-Script, в работе использую фреймворки Drupal и Django. В этом блоге я размещаю заметки и статьи, связанные с моей работой, отдыхом и другими интересными мне темами.

Популярные заметки

  • Авторизация на Drupal-сайте с помощью аккаунта ВКонтакте
  • Перетаскивание строк таблицы. Table drag and drop — плагин для jQuery
  • Темизация Drupal. Часть 3. Основы Drupal Forms API и темизация форм
  • Темизация Drupal. Часть 4. Темизация Views
  • AJAX. Обмен данными между клиентом и сервером, закачка на сервер файлов без перезагрузки страницы при помощи библиотеки jQuery.
  • Кеширование на Drupal-сайте. Сравнение встроенного в Drupal кеша, статического файлового кеша (модуль Boost) и Varnish
  • Тестирование модуля "Inner poll"
  • Несколько панорам из путешествия по Перу и Боливии
  • Arduino + bluetooth, небольшая проблема
  • Пример разработки плагина для модуля CCK

Подписка


Последние комментарии

  • drupal-admin → Кеширование на Drupal-сайте. Сравнение эффективности встроенного в Drupal кеша, статического файлового кеша (модуль Boost) и Var → Отличная статья
  • Меховщиков Руслана → Проверка имени пользователя на наличие букв из разных алфавитов → Re: Читал про это уже на
  • Вероника → Куба. Лето 2008. Часть 3 → По поводу "приветливых жителей" Тринидада
  • Sfero → Статья в PC Magazine/RE. Drupal: разработка модуля → Немного о контенте
  • RemaGe → Статья в PC Magazine/RE. Drupal: разработка модуля → -)
  • Ромка → Статья в PC Magazine/RE. Drupal: разработка модуля → Да, будет сборка, та которую
  • RemaGe → Статья в PC Magazine/RE. Drupal: разработка модуля → -)
  • anatinge → Поездка в Киев → спасибо :)
  • Ромка → Поездка в Киев → Да, в общем-то, ничего
  • GogA → Поездка в Киев → Заинтриговал, что там за

Новые заметки

  • Кеширование на Drupal-сайте. Сравнение встроенного в Drupal кеша, статического файлового кеша (модуль Boost) и Varnish
  • Любопытное поведение модуля syslog в шестом Друпале (баг?)
  • Arduino + bluetooth, небольшая проблема
  • Гугл 1 марта прекратил поддержку сервиса Google Friend Connect
  • Проба пера в HTML5 + canvas. Эффект ластика
  • Шесть рукопожатий
  • Доклад на DrupalConfMoscow 2011
  • Статусы разных сущностей в Друпале 6
  • Футер, прибитый к низу страницы
  • Путешествие по Перу и Боливии. Часть 2

Тэги

Drupal jquery Куба Лето 2007 Лето 2008 Отдых Работа Штуки-дрюки лето модуль статья цитата
еще тэги

Навигация

  • Exchange rate
  • Переход по внешней ссылке
  • Последние сообщения
  • Фотогалереи

Курсы валют

  • 100 Казахстанских тенге — 21,3687 (-0.43)
  • 10 Украинских гривен — 27,2852 (-13.04)
  • 1 Китайский юань — 10,2706 (-40.98)
  • 100 Японских иен — 53,5332 (+12.67)
  • 1 Доллар США — 65,6210 (+33)
  • 1 Евро — 69,8076 (+29.42)
  • 10000 Белорусских рублей — 36,3310 (-2.51)
  • 1 Турецкая лира — 22,9540 (+4.99)

10 случайных заметок

  • Cinnamon Chasers - Luv Deluxe (Music Video)
  • Доклад на DrupalConfMoscow 2011
  • Новый год 2008. Часть 4. Копенгаген, Оденсе.
  • Семинар по хапкидо в Днепропетровске
  • Путешествие по Перу и Боливии. Часть 2
  • Перетаскивание строк таблицы. Table drag and drop — плагин для jQuery
  • Лето 2007. Путешествие в Камбоджу – Таиланд – Малайзию. Часть 2. Камбоджа, Сиануквилль.
  • Швабрашвабр2
  • Куба. Лето 2008. Часть 4
  • Зима 2010. Поездка в Тайланд, Индонезию и Сингапур. Часть 1 — Пхукет и Джакарта

Случайные фото

Просто море
Тринидад. Лошадка держит домик
Парашютист в Варадеро
Замок Акерхус вечером
Автописта
Еще одно фото замка
Друпликон и моя тень
Дерево в Прамбанане
В Сингапурском зоопарке. Леопардовая (бенгальская) кошка.
Вид на Осло-фьерд со стены замка
Тринидадские спортсменчики
Недалеко от Красной поляны
В Сингапурском зоопарке. Будда?
Я с местным рональдом
Пеликан
Я, какой-то дед и местные детишки
  • Отдых
  • Работа

При использовании материалов с сайта, пожалуйста, ставьте ссылку на источник. E-mail для связи: mne@romka.eu.