VladSavitsky: Блог

Главные вкладки

Исправление ошибок в сontrib-модулях Drupal

7 июля 2011 в 19:11

napilnik.png

На DrupalCamp Kyiv 2011 я рассказывал о наших разработчиках, которые публикуют свои модули на drupal.org.

«Наших» модулей оказалось довольно много и, даже просто рассказывая в одном предложении про каждый из модулей, мы бы потратили не один час. Очень порадовало то, что были вопросы о том, как опубликовать свой модуль? какие преимущества? и др.

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

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

Contrib-модулями называются модули, которые были созданы и опубликованы на drupal.org сторонними разработчиками. Любой желающий может их использовать (contribution).

Contrib-модули и вклад в развитие Drupal

Эти contrib-модули являются вкладом drupal-разработчиков по всему миру в развитие Drupal.

Создай свое расписание DrupalCamp Kyiv 2011

31 мая 2011 в 19:45

В этом году расписание докладов на DrupalCamp Kyiv 2011 мы сделали заранее.
В этом отличие от прошлых кемпов - расписание докладов формируется не во время проведения конференции, а до начала кемпа.

Заранее составленное расписание докладов решает несколько важных задач:

Доклад для кемпа в Киеве "Парад модулей нашего сообщества"

26 мая 2011 в 18:17

Парад!Нужна ваша помощь!

На кемпе в Киеве планируем представить наших русскоговорящих разработчиков и их модули, которые выложены на drupal.org.
То есть сделать слайды, где будет представлен человек и его модули. И кратко расскзать что модуль делает.
Я думал, что зайду на друпал.орг отфильтрую по странам пользователей и посмотрю их модули!...

Но я понял, что это нереально сделать.

Поэтому прошу вас любым образом скинуть мне ссылки на ваши модули на друпал.орг.
Можно тут в комментах, можно скайпом, можно почтой!

Очень будет хорошо, если вы сможете скинуть вашу фотку (не аватар) - страна должна знать своих героев (в лицо)!
Спасибо.

ICQ: 205535814
Skype: vlad_savitsky
vlad.savitsky@gmail.com

Update
"Наши разработчики" - это русскоязычные друпал-разработчики. Сюда спокойно входят все с друпал.ру, друпал.уа, СНГ и стран Балтии.
А также Паша, ныне проживающий в Тайланде, Егор, проживающий в Канаде, и остальные друпалеры, кто ещё помнит русский язык Smile

DrupalCafé X — 19.05.2011

16 мая 2011 в 21:10

Drupal Cafe X В следующий четверг, 19 мая , в 19:00, в Киеве, в помещении i-klass, по адресу Лаврская, 16 (бывшая Ивана Мазепы, 34), пройдет десятая (X) встреча DrupalCafé.

Это последняя встреча перед DrupalCampKyiv 2011 - поэтому эта встреча имеет номер "Х".

На этот раз у нас будет 3 (!) презентации:

  • Автоматическое тестирование интерфейса с помощью Selenium Юрий Герасiмов (Madcap)
  • Drupal commerce + Panels + Views = Готовый интернет магазин Вячеслав Рысь (FocusArt)
  • Drupal 7 и социальные сети. Модуль Social Connect. Dmitry Olaresko (Madcap)

Напоминаем, DrupalCafé - формат локальных встреч пользователей и разработчиков CMS Drupal. Вход свободный, но исключительно по регистрации, так как количество мест ограничено размерами аудитории (если вы были прошлый раз, вам все равно необходимо зарегистрироваться на события).

За справками можно обращаться к Александру Швецу по телефону +380976833155 или отправив письмо на neochief@drupal.ua

Подробности: http://drupal.ua/groups/drupalcafe/x

Самые популярные темы докладов на DrupalCampKyiv2011

4 мая 2011 в 0:47

По состоянию на 1 мая 2011 года и по данным на странице http://camp11.drupal.ua/ru/program я получил очень интересную информацию о том, чего желают люди, которые будут на Drupal-кемпе в Киеве 3-4 июня 2011 года.

Готовим доклады для DrupalCamp Kyiv 2010

22 апреля 2010 в 20:18

Drupal-весна в Киеве!
Я понимаю, что весна таки пришла и жизнь не стоит на месте, но если вы хотите порадовать друпалеров в Киеве докладом, то стоит сделать это уже сейчас, потому что дальше будет ещё веснее!

Не обновляйте Internationalization 6.x-1.2 до 1.3

4 марта 2010 в 21:29

Вышло обновление безопасности для модуля Internationalization - версия 6.x-1.3 (2010-Мар-03):
http://drupal.org/node/731590

Обновление критическое, но в нём поломана работа с модулем Views - хэндлеры отсутствуют.
В описании к версии 1.3 на странице модулей сказано, что модулю требуется Views 3.x.
Я поставил свежую версию (альфу) Views, но это ничего не дало.

Вот описание бага на .орг: http://drupal.org/node/732536

Патч к модулю Date - показываем месяцы в родительном падеже

28 февраля 2010 в 17:58

Вывод даты в виде "27 февраль 2010" это уродливо. Ни в русском, ни в украинском, ни в польском - и, я думаю, что это касается большинства других славянских языков - так не говорят и не пишут.

НЕправильные даты в выводе ноды

Понятно, что через какое-то время привыкаешь и просто не замечаешь, но есть ведь настойчивые заказчики, которые тыкают носом разработчика в эти "ляпы" и требующие исправления ошибок (по их мнению). Спасибо им за это. Это нужно, хотя и раздражает.

Вывод блока с кастомным обработчиком дат.

Итак, по требованию заказчика вывести в блоке нормальные даты я написал модуль. Модуль выводит блок, где определённым образом форматируется вывод анонсов и собственно исправляются даты. Точно такой же блок можно сделать во Views, если бы не кривые даты...

Короче говоря код модуля я приводить не буду, а только функцию, которая исправляет даты. Этот код может очень пригодится тем, кто не сможет дочитать пост до конца.

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

Но этот модуль можно не использовать, а применить патч для модуля Date, но об этом ниже.

// Функция преобразует даты в "правильные", то есть в родительном падеже и ещё разные штучки делает.

Модуль для создания семантического ядра сайта

27 декабря 2009 в 23:23

Опубликовал месяца 3 назад на drupal.org модуль и забыл сделать тут анонс...
И нигде не делал анонс, но западные товарищи таки модуль нашли и уже стали постить баги и просить новые фичи.
Короче, - пришло время снова вернуться к модулю и ещё больше его улучшить, поэтому хочу услышать пожелания/баги от русского сообщества, а затем я уже возьмусь там что-то править.

Итак, модуль формирует семантическое ядро сайта.
Модуль keywords - статистика ключевых слов сайта
Как он это делает?
При сохранении ноды её текст (боди), анонс, заголовок парсятся на предмет ключевых слов, которые вычисляются на основании частоты вхождений.
То есть в настройках модуля задаётся порог повторов, а также количество слов в ключевых фразах. Таким образом каждая нода получает вкладку ("таб"), который называется "Ключевые слова" и есть список этих самых ключевых слов и ключевых фраз (словосочетаний).

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

Вроде бы все описал. Писал по памяти - подробности на странице модуля keywords на drupal.org

Из-за того, что парсить ноды дело достаточно хлопотное, то в модуле есть запуск этого парсера (назовем его "индексация") по крону для нод, у которых ещё нет списка ключевых слов - т.е., которые не проиндексированы модулем.

Новый украинско-русский модуль - список всех блоггеров сайта и заголовки последних постов из их блогов.

15 декабря 2009 в 1:11

Опубликовал на drupal.org модуль, который показывает список блоггеров с их аватарами, реальными именами (если модуль RealName включен) и Х заголовков последних постов в блоге.

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

Страница выводится по адресу: example.com/blogs

В настройках модуля можно указать:

  • сколько заголовков последних постов из блога выводить
  • сколько блоггеров на одной странице нужно показывать (используется пейджер)
  • сколько постов в блоге должно быть у блоггера, чтобы он попал в этот список.

В релиз включен полный перевод модуля на русский язык.

Скриншот страницы, которую выводит модуль:
Пример работы модуля Bloggers

Время разработки
Модуль достаточно простой, а значит должен работать как часы. Я считаю, что лучше иметь набор простых модулей, которые четко и ясно работают, чем "швейцарский нож", которым трудно пользоваться и не всегда понятно как.

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

Способ решения проблем на drupal.org

6 июля 2009 в 23:31

Ситуация такова. Был 2003м году модуль, но умер.
В CVS остались записи, хотя файлы значатся как удаленные, но повторно использовать это же имя модуля я не мог...
Искал где бы на орге пожаловаться и писал, писал, но без результата.
В конце концов нашёл где-то в документации ссылку, по которой нужно жаловаться, если что-то не так работает на орге:
http://drupal.org/project/issues/webmasters

Вчера я стал владельцем проекта, но без права редактировать описание...
Попросил исправить - через пару минут всё починили.

Я к тому, что знать кто и за что на орге отвечает просто не реально и они сделали отдельную ветку с issues относительно работы всего сайта. Посему, если что-то не так - пишите им по этой ссылке.

Ок. Скоро будет релиз модуля, которые ключевые слова в нодах считает и формирует семантическое ядро всех нод сайта....

Черные дыры в интернете

4 июля 2009 в 21:58

В интернете существуют так называемые "черные дыры"...
Что такое "чёрная дыра"? Черная дыра всё поглощает и ничего не отдаёт.

Черная дыра затягивает звезду

Презентация технологии Google Wave с русскими субтитрами

16 июня 2009 в 22:23

Переводил статью Дриса про Google Wave...
Там собственно переводить-то и нечего, но застрял на полтора часа... смотрел презентацию технологии Гугла!
Я всем советую посмотреть. Даже, если не знаете английского. Они всё показывают.

Идея в том, что они разрабатывают новый инструмент для общения. Возможности просто потрясают!!!
Правда становится страшновато из-за мощи и охвата Гугла...

Инструмент объединяет всё лучшее из разных существующих технологий: эл. почты, аськи, twitter'а и возможно каких-то других.
Плюс возможность вести общие обсуждения, публиковать их и ссылаться на них. Прикреплять фотки и другие файлы.
Отличный инструмент для командной работы.
Короче, или смотрите сами, или я не буду тратить время...

Вот эта презентация с русскими субтитрами: http://www.overstream.net/view.php?oid=anuwn0l0s6rz

PS. Спасибо PVasili за ссылочку на видео с русскими субтитрами.

Проекты типа "Необходимо доработать сайт"

9 июня 2009 в 13:21

В последнее время всё чаще сталкиваюсь с тем проектами, где предыдущий разработчик что-то не закончил, не доделал или не успел.
Опыт показывает, что заниматься подобными "работами над ошибками" просто вредно.
Почему?

  • Нормальный разработчик в состоянии закончить свою работу, а раз она, в силу разных обстоятельств, не была закончена, то можно судить о качестве кода, архитектуры и аккуратности.
  • Кроме того, как правило встречаются сайты, которые пытаются быстро собрать за счёт CCK, Views, Panels, Contemplate, что сказывается и на архитектуре и на производительности сайта.
  • Как правило делаются вещи, которые можно быстро включить и показать, а не глубинные изменения за которыми заказчик как раз и обращается ко последующему (чуть не написал второму - а зачем же себя ограничивать!..) разработчику. Следовательно заказчик считает сайт готовым, но нужны "незначительные" доработки, а это сказывается на отношении к стоимости работы.
  • Разбираться в чужом коде всегда сложнее, чем в своём, хотя в подобных проектах кода как правило мало, но всё же.
  • Предыдущий разработчик считает, что он работу выполнил на все 100% и помогать в развитии соотвественно не заинтересован - деньги-то он уже получил!..
  • Разработчик, который не закончил работу как правило исчерпал бюджет заказчика и последний старается на оставшиеся деньги быстренько вдохнуть жизнь в сайт...

Я предлагаю заклеймить позором таких разработчиков и не соглашаться на подобные заказы, потому что:

У Дриса Байтаерта родился второй сын!

8 июня 2009 в 10:28

Мальчик! Сегодня, в воскресенье 7 июня в 8:15 CET, Карлайн родила нашего второго сына, - Стэна (Stan). Он весит 3,6 кг и рост 52 см. В этой фотогаллерее есть ещё фотографии.

Как правильно "крошить хлеб" по всему сайту

26 мая 2009 в 1:15

Хлебные крошкиХлебные крошки это отличный элемент навигации по сайту - на любой странице вы будете знать как далеко вы зашли вглубь сайта и где вы сейчас находитесь. По умолчанию в Drupal 6 он не настроен на 100%. Это мы и будем исправлять.

Улучшение юзабилити: анонс вместо полной ноды при использовании пейджера

21 мая 2009 в 17:17

Только что наткнулся на интересный вариант решения.

Речь вот о чем:
при просмотре 2й страницы и дальше комментариев ноды последняя показывается каждый раз в полном виде.
В этом нет смысла, потому что как правило статья уже прочитана и читаются только комментарии. Если статья не большая, то это ничего, а если очень большая - напрягает.

Решение
На второй и последующих страницах комментариев показывать анонс этой самой статьи. Просто и элегантно.
Что скажете?
Как это можно реализовать?

Скидка 15% при покупке книги Drupal 6 JavaScript and jQuery

9 апреля 2009 в 15:49

Вышла книга "Drupal 6 JavaScript and jQuery"
На drupal.org автор заявил, что учитывая большое участие сообщества в написании книги, издательство разрешило опубликовать код 15%-й скидки.
Вот он, код: DrupalJSjQ15

Реализация идеальной "кармы"

16 марта 2009 в 11:09

На основании обсуждения поста "Сравнение модулей кармы, репутации и рейтинга", делаю выводы про то, какой должна быть толковая реализация "кармы". Кроме того, Теоретические измышления, толкование понятий и разницу между ними читайте в этом самом посте ("Сравнение модулей кармы, репутации и рейтинга"), а здесь я хочу собрать все идеи и предложения, которые относятся именно к карме.

Кроме кармы, выделились ещё такие направления как "опыт" и "репутация", но об этом позже...

Напомню, что карма - это отношения пользователя и системы. За плохие деяния пользователя наказывают, за хорошие - поощряют.

Назначение системы "кармы"

Наказание за плохие дела

  • создания благотворной почвы для развития сообщества,
  • защита сообщества от вандалов и тех, кто пытается разрушить сообщество,
  • защита самой системы от разрашения,
  • поощрение и направление деятельности сообщества.

Что такое "хорошо" и что такое "плохо"?

Для сайта должно быть сформировано 2 списка: плохие дела и хорошие дела. Для разных сайтов это будут разные списки, но всё таки можно сделать некоторые обобщения, потому что это не оффлайн, а сеть и действия пользователя на сайте ограничены возможностями движка.

Плохие поступки:

  • публикация спама. Оценка: система и пользователи.

Как программисту выбрать живую розу?

7 марта 2009 в 19:03

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

Итак, как правильно купить труп розы.

Роза не будет долго стоять, если:

  • зелёные листочки под бутоном сильно развернуты вниз
  • зеленые листочки под бутоном белёсые со стороны бутона
  • срез стебля розы, который стоял в воде, потемнел или черный (продавец может подрезать, но если он этого не сделал, то вот вам и подсказка)
  • листья поломаны, порваны или по ним видно, что над трупом издевались
  • сам бутон должен быть крепким, цельным и нераскрытым
  • края лепестков не должны быть пожухлыми, скрученными

Если все эти условия будут одновременно НЕ соблюдаться, то цветок простоит неделю-другую без всяких доп. движенй со стороны хозяйки.

Информация мной была получена, когда в школе помогал продавцам цветов, и проверена в течении примерно 10 лет. Просто достаёт, когда бессовестно врут в глаза ...

Если вам говорят, что "цветы только-только привезли", а вы видите, что они уже умерли давным-давно, то это нужно воспринимать так: "только-только привезли эти мертвые цветы". Тогда необходимости обижаться на продавца не будет - он сказал правду, но не всю, - поэтому будьте внимательны.

Сравнение модулей кармы, репутации и рейтинга

24 февраля 2009 в 11:16

Краткий обзор модулей

User Points

  • Разрабатывается давно. Оброс кучей сопутствующих модулей, но некоторые ещё не портированы для 6ки.
  • Автор давно занимается Друпал и заслуживает доверия.
  • Версия 5.3 и версия под 6ку стала скорее API для других модулей.
  • Есть интеграция со многими модулями и модулем Rules.
  • Основаная идея - за действия в системе пользователь получает поинты. Количество поинтов можно настраивать, как и то, за что пользователь из получает.
  • Есть интеграция с Ubercart (для 5ки) и пользователь может купить что-то в магазине за поинты или получить скидку.
  • Также есть модуль, который ограничивает срок действия поинтов, то есть они могут "сгорать" - иначе они только растут.

User Karma

  • Этот модуль пришёл на смену Simple Karma.
  • Автор заявил, что не будет развивать модуль, но будет исправлять ошибки в существующей версии. Поэтому я бы не советовал сильно расчитывать на этот модуль.
  • Принцип вычислений модуля я привел в Обзоре модуля User Karma: репутация пользователя. Если кратко, что карма меняется при создании ноды, голосовании за ноду или комментарий, а также получении нодой или комментарием оценки.
  • Работает с Voiting API.
  • Код и архитектура: тихий ужас...

Другие варианты

Наше участие в Ассоциации Друпал.

19 февраля 2009 в 12:31

Переводил статью Дриса Результаты выборов в Ассоцацию Drupal в 2009м и подумал, что нужно и нам, русскоязычным, выдвигаться в эту ассоциацию.

Новый модуль закрывает внешние ссылки от индексации Яшей и Гуглом

18 февраля 2009 в 11:42

Готов релиз модуля Noindex External Links. Релиз можно скачать с drupal.org и там же писать об ошибках (можно на русском, чтобы быстрее было).

На странице модуля я написал всё, что нужно знать про этот модуль на русском языке. Но, возможно, я что-то забыл или будут вопросы - пишите. Будем исправлять!

Область действия модуля

Модуль реализует фильтр ввода и действует везде, где действуют фильтры - ноды, комментарии и блоки. Закрыть все остальные ссылки - ваше домашнее задание.

Сравнение Noindex External Links и Nofollow List

  • Nofollow List предлагает 1 список, который может быть либо черным, либо белым. В модуле Noindex External Links реализовано 2 списка: всегда разрешённые домены и всегда запрещённые домены. Это более понятно. Это сводит к минимуму риск, что вы получите неожиданный результат - вместо того, чтобы закрыть все ссылки они окажутся открытыми.
  • В архиве Nofollow List нет русского перевода, а вместе с Noindex External Links идет авторский русский перевод.
  • Nofollow List закрывает ссылки только для перехода по ним Google, а Noindex External Links обрачивает ссылки в тег NOINDEX, что запрещает яндексацию (индексацию ссылки Яндексом).
  • Ну и наконец, главная ценность модуля в том, что страницы проходят валидацию!

Принцип работы

Например в тексте есть ссылка: