Киев, лето 2009










На прошедшем в Киеве Друпал Кемпе я делал доклад, в котором приводил пример разработки плагина для Drupal-модуля CCK. В этой заметке я приведу краткий конспект своего доклада.
Любой создаваемый средствами CMS Drupal тип контента по умолчанию состоит из двух полей — “Тема” и “Тело сообщения”, а также из нескольких полей служебной информации (автор, дата публикации и т.п.). Модуль Content Construction Kit (CCK) представляет из себя графический интерфейс, позволяющий добавить к любому типу контента (в том числе и созданному сторонними модулями) любое количество дополнительных полей, например, поля для размещения картинок, аудио- и видеофайлов и т.п. Каждое из таких полей является плагином для CCK.
Далее в этом тексте пойдет речь о разработке подобного плагина. Материал ориентирован на людей, умеющих программировать на PHP, имеющих представление о модульной системе Друпала и опыт разработки модулей для него. Если вы интересуетесь основами программирования под Друпал, то прочитайте мою статью на эту тему, которая будет опубликована в ближайшем номере журанала PC Magazine/RE.
Заказчику захотелось просматривать на сайте 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-vozmozhnosti-modulya-pdf2swf.
На работе на прошлой неделе закупили всем сотрудникам Макинтоши. Это мой первый опыт полноценной работы за компьютером с Mac OS (пару раз до этого сидел в нете с маков, но это не считается). Классный компьютер: быстрый, мощный (хотя и относительно дорогой), в комплекте идет большое количество нужного софта, кроме того есть несколько очень удобных редакторов, полнофункциональных аналогов которых под виндой не встречал.
Но есть в этой системе для меня ооогромный минус (к слову, маководы со стажем это поведение минусом не считают): кнопки Home и End в текстовом редакторе возвращают курсор к началу и концу документа соответственно, вместо привычных по работе с Windows переходов к началу и концу строки. Кнопки Page Up и Page Down тоже ведут себя непривычно для пользователя винды. Аналог же виндового поведения кнопок Home и End — это комбинации Ctrl + влево и Ctrl + вправо. Да и то аналог это не полноценный — курсор возвращается именно к началу строки, а не к началу текста в строке, а весь программный код, обычно, начинается как минимум с одного-двух символов табуляции.
В общем, неделю провел в попытках привыкнуть к такому поведению, чтобы стать настоящим тру-маководом, но не вышло. Нашел и поставил себе замечательную программу KeyFixer (и ее версию для Firefox), которая возвращает назначает кнопкам Home, End, PgUp, PgDown классическое для винды поведение. Теперь я доволен.
P.S. Остался еще ряд неудобностей, к которым со временем надеюсь привыкнуть или побороть.
Заказал, уже не в первый раз, компакт-диск в зарубежном интернет-магазине, оплатил его кредиткой через PayPal и в очередной раз сталкиваюсь с двумя удивительными вещами:
Никогда не был зарегистрирован ни в каких социальных сетях, а тут по работе пришлось написать и интегрировать во вКонтакте небольшую программку>. Следствием этой работы стало то, что я, после недолгих экспериментов с API, интегрировал во вКонтакте также и свою старую игрушку “Сталкер” (кроме того я прикрутил к геймплею игры пару интересных фич). Приглашаю всех желающих присоединиться к игре и попробовать свои силы.
P.S. Запланировал разработать вторую версию игрушки с тем же геймплеем, но уже с нормальной графикой и кратким туториалом, встроенным в игру, так как, судя по результатам, большинство игроков не понимают основной стратегии, благодаря которой можно набрать максимальное количество очков…
Вспомнил вчера об одном своем старом проекте, реализовать который я задумал еще в 2005 году — сайте flames.ru, который я изначально планировал представить как сборник собственноручно разработанных flash-игр, а затем привлечь к разработке сторонних программистов, дизайнеров и развить проект до уровня сообщества любителей и разработчиков flash-игр.
Выглядело в моих планах будущее проекта примерно так. Каждая существующая игра представляет из себя (выражаясь в современных терминах, тогда таких слов еще не было :)) коллективный блог, в котором общаются и разработчики, и игроки. Общими усилиями, благодаря тесному контакту между игроками, генерирующими десятки фича-реквестов, и разработчиками должны были рождаться они — идеальные мини-игры. Кроме работы над существующими играми, проект должен был стать местом, в котором могли бы найти друг друга программисты, художники, генераторы идей, то есть люди заинтересованные в разработке интересных flash-игр, но неспособные реализовать свои идеи в одиночку.
Все в том же 2005 году я уже начал работу над этим проектом: сделал две мини-игры, в которые, чесслово, до сих пор сам иногда рублюсь по полчаса. Когда дело дошло до реализации серверной части системы стало ясно, что изобретать свой велосипед слишком накладно я и начал изучать CMS Drupal. Со временем Друпал превратился в часть моей профессиональной деятельности, я утонул в других задачах/проектах и про свои фламесы совсем забыл…
И вот вчера опять вспомнил о проекте. Мне интересно мнение читателей этого блога, имеет ли смысл развивать эту идею в том виде, который я описал, с учетом того, что за прошедшие 4 года появились аналогичные сервисы у Яндекса, Рамблера и Мэйл.ру? В принципе, самому мне интересно вернуться к проекту, к тому же есть пара интересных, на мой взгляд лежащих на поверхности, но почему-то никем не реализованных, идей для флэш-игрушек.
P.S. А слабо в “Подводной лодке” проплыть 2000 метров, а в “Сталкере” набрать хотя бы 100 очков?