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

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

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

УрокПишем плагин к Panels с помощью Ctools

Не так давно я очень плотно подружился связкой модулей Views + Panels + Page manager (входит в Ctools). Как оказалось, с их помощью можно много времени сэкономить на многих задачах. В добавок ко всему производительность отличная (выяснилось, что Panels работает быстрее, чем стандартные блоки ядра). Вдохновиться можно посмотрев скринкасты по работе с этой связкой. Живой пример могу показать на примере своей работы - footballtop.ru. Около 90% страниц построено именно на этой связке.

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

УрокКорректная работа с полями в седьмом Друпале. Entity metadata wrappers.

В седьмой версии Друпала вывод полей был несколько изменён в связи с усовершенствованием многоязычной системы. Если раньше для вывода содержимого поля достаточно было написать так:

print $node->field_name[0]['value'];

то в семёрке добавился к полю ещё и язык (для одноязычных сайтов по умолчанию 'und' - undefined, константа LANGUAGE_NONE):

print $node->field_name[LANGUAGE_NONE][0]['value'];

Вывод значение поля стал чуть длиннее. Но если бы это было единственной проблемой - тогда и проблем бы не было :) Но здесь в игру вступают мультиязычные сайты. И получается, что если сайт наш англоязычный например, а мы пользовались кодом выше, то значение поля теперь получить не удастся, т.к. теперь надо его получать иначе:

УрокДобавляем авторизацию по емейлу в Drupal 7

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

Решение первое

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

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

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

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

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

БлогВсё об AJAX в Drupal 7. Drupal Camp Minsk 2012.

14 апреля 2012 года в моём родном городе Минске прошёл очередной Drupal Camp. На нём я рассказывал об AJAX в семьмой версии Drupal. Видео прилагается:

А ниже предоставлен подробный план, по которому я рассказывал.

БлогМодуль по созданию хлебных крошек к статичным страницам

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

Поясню на примере. Например, с помощью модуля Views вы создали страницу с новостями. Однако, к сожалению, Views не даёт возможности указывать хлебные крошки для таких страниц (из-за чего эта темы и была поднята мной). А писать каждый раз кастомный код, когда попадётся такое задание, не очень хочется. Поэтому из простой статьи это вырасло в полноценный модуль.

Пользоваться им достаточно просто - после установки перейдите на страницу /admin/structute/path_breadcrumbs и добавьте новый путь с хлебными крошками. Пример заполнения можно посмотреть на скриншоте:

УрокМногошаговые (мультистеп) формы на AJAX в Drupal 7

Итак, дорогие друзья, на повестке дня у нас шикарные мультистеп формы, от которых лично я в восторге. Сразу даю ссылку на мой пример, чтобы и вы воодушевились. Не написано ни строки js, однако всё шустро работает, ещё и с сохранением состояния формы. Великий и могучий Друпал. Теперь от слов переходим к делу.

Шаг первый. Создаём страницу с формой.

function multistep_example_menu() { 
 
  $items = array(); 
 
  $items['multistep_example'] = array(
    'title' => 'Multi-step ajax form example',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('multistep_example_form'),
    'access callback' => TRUE,
  );
 
  return $items;
}

Страницы