Личный блог Масловского Евгения

БлогМодуль по добавлению мета-тегов. Path Metatags.

Не так давно мной был написал модуль, позволяющий удобно добавлять мета-теги Path Metatags. Алгоритм его работы похож на работу Path Breadcrumbs (по шагам):

  • Указание пути, на котором будут отображаться мета-теги
  • Привязка к переменным из пути контекста
  • Указание правил показа мета-тегов для пути
  • Выбор мета-тегов и информации для отображения

Подробно о добавлении мета-тегов я расписывать не буду, т.к. всё то же самое можно почитать в статье о модуле хлебных крошек. Однако последняя форма с самим добавлением мета-тегов, безусловно, другая:

БлогУскоряем бутстрап или борьба с неправильным удалением модулей

На одном из проектов я столкнулся с необходимостью оптимизации сайта. Проанализировав серверную часть сайта я заметил, что бутстрап на каждую загрузку страницы съедал ~350 милисекунд. Довольно много, учитывая, что это лишь загрузка необходимых компонентов. Потратив ещё некоторое время на поиск проблемы я выяснил, что каждый раз при загрузке страницы Друпал сканировал все мои папки с темами и модулями заново. Это и являлось основой задержкой в бутстрапе, т.к. на это сканирование тратилось около 280 милисекунд (102 модуля и 2 темы). И это при том, что проект стоит на отдельном сервере, который полностью заточен под Drupal 7.

После осознания проблемы у меня возникло два вполне логичных вопроса:
1. Какого @#$ так долго?
2. Почему это нельзя было закэшировать?

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

БлогVkontakte CrossPoster 2. Возвращение.

Vkontakte CrossPoster

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

История

В сентябре 2011 года я написал модуль, который позволяет автоматически отправлять материал вконтакт (пруфлинк). Он отправлял данные автоматически куда надо (использовалась авторизация через протокол OAuth 2.0), и пользователь мог даже не подозревать, что они отправляются. Однако через 4-5 месяцев разработчики вконтакте (ни слова не сказав, даже в документации) закрыли возможность отправлять данные с сайтов во вконтакте (через OAuth 2.0). Немного поковырявшись в имеющейся на тот момент документации, я нашёл другой метод кросспостинга - Open API. Это очень глобально затронуло модуль, т.к. теперь пользователю приходилось подтверждать кросспост в всплывающем окне (Open API работает на js). Это повлекло за собой массу неудобств, начиная от конфликта с некоторыми модулями (например, Overlay) и заканчивая абсолютной невозможностью кросспостить данные любому пользователю, отличному от авторизованного создателю и администратору группы. После этого я на модуле поставил крест, т.к. он потерял свою фишку и удобство в работе, хоть и кросспостить можно было продолжать.

БлогРешение проблем с хлебными крошками в Drupal 7 раз и навсегда

Предисловие

То, что меня раньше всегда раздражало при построении хлебных крошек - это то, что модули есть только для отдельных частей сайта. Есть для материалов - Custom Breadcrumbs (хотя вроде во второй версии там сделан ряд доработок, но всё равно сомнительно), для панелей - Panel Breadcrumbs (кстати, работают не всегда корректно), Hansel - вообще сложно сказать для чего. Для хлебных крошек на статичных страницах модуля вообще не было до появления первой версии моего Path Breadcrumbs. И вот такой набор модулей кое-как справлялся с созданием навигационной линейки для сайта. Однако даже это работало для большинства страниц, но не для всех. Я уже молчу о разнице в интерфейсе и возможностях модулей (не всегда даже есть возможность сделать крошку текстом, а не ссылкой). В общем, мне это порядком надоело и я решил написать модуль, который будет справляться с любыми хлебными крошками для любых страниц. И надо сказать - это у меня получилось.

Описание

Я рад представить вам своё новое творение - Path Breadcrumbs 2. Это модуль, который умеет строить хлебные крошки для абсолютно любых страниц (как статичных, так и динамичных). Удобный интерфейс (частично слизан с page manager'a) позволяет быстро и красиво строить навигационную линейку по крошкам. В результате кропотливого труда создан модуль, который позволяет заменить все остальные для построения хлебных крошек.

БлогФильтр матерных слов для Drupal 7

Недавно был озадачен поиском хорошего фильтра мата для седьмого Друпала. Сначала нашёл это решение под Drupal 7, поставил и радовался. Но радовался недолго, т.к. в результате анализа производительности кода оказалось, что он жрёт очень много ресурсов. Далее поиск натыкался либо на едва рабочие решения под PHP 4, либо на вариант простой замены матерных слов (без регурярных выражений, аля wordfilter).

В итоге набрёл на самое адекватное решение: php-censure. Фильтрует довольно грамотно, а главное - быстро. Вот наглядный пример работы:

БлогЛогин, регистрация и восстановление пароля с помощью AJAX

Есть такой модуль замечательный - называется он Ajax Register. Раньше он работал довольно странно (к тому же для 6го Друпала), и никогда моих потребностей в ajax логине не удовлетворял. Потом я проскочил в ко-разработчики модуля и сделал релиз для Drupal 7. Однако этот релиз был больше заточен под тот проект, для которого я этот модуль писал на самом деле. Поэтому подходил он явно не всем, хотя всё же лучше, чем ничего.

Сегодня я наконец собрался с мыслями и выпустил в свет адекватный релиз Ajax Register 7.x-4.x. Вот его фичи:

БлогСобираем складчину на разработку нового модуля

В этой статье речь пойдет о применении краудфандинга для совместной разработки модулей для Drupal.

Наверное, нужно небольшое вступление, что же это за зверь такой, краудфандинг.

Вообще слово «краудфандинг» происходит от слов crowd — «толпа» и funding — «финансирование», то есть, crowdfunding — это коллективное финансирование благотворительных и коммерческих проектов.

Страницы