hook

УрокКак поменять направление списка комментариев и вынести форму комментариев наверх

По мало понятным мне причинам в седьмом Друпале нет возможности поменять направленость списка комментарив. Безусловно, для блогов вполне удобен "коробочный" вариант - старые комментарии вверху, новые внизу, а форма комментариев вообще в конце страницы. Однако могу привести пример сайта с сериалами: на одной странице есть плеер со всеми сериями сериала, а под ним располагаются комментарии. А теперь представьте, что серии постоянно добавляются в плеер, и в комментариях идёт живое обсуждение. И далеко не каждый пользователь захочет каждый раз пролистывать сотню-другую комментариев, чтобы почитать последние и/или написать своё мнение. И таких примеров можно привести много. Поэтому исключение возможности поменять направление комментариев, на мой взгляд, грубая ошибка. Однако что сделано - то сделано, и сейчас я расскажу как восстановить справедливость.

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

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

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

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

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

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

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

УрокРендер массивов в седьмом Друпале

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

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

УрокПрограммное изменение запроса к базе данных во Views

Возникают ситуации, когда необходимо сделать во Views фильтр с помощью программного вмешательства. Например, совсем недавно я реализовывал такую задачу:

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

УрокТонкости программного создания страниц на сайте

В Друпале программно обычные страницы создаются допольно легким способом. И в 6й, и в 7й, и в 8й версии ядра они создаются похожим образом, а именно - имплементированием хука hook_menu() в свой модуль. В этой статье я не буду подробно останавливаться на базовой части - непосредственном добавлении страниц, так как это очень просто и не вызывает затруднений при самостоятельном обучении. Ведь для добавления страницы достаточно написать несколько строк:

function mymodule_menu() {
  $items = array();
  $items['new_page'] = array(
      'page callback' => 'mymodule_page',
    );
  return $items; 
}

Здесь создаётся страница с урлом new_page. При переходе на этот урл будет возвращено значение из функции mymodule_page().

УрокШпаргалка по хукам для drupal 6

Здесь собраны и описаны основные хуки для внедрения в модули Drupal версии 6.x.

Быстрый переход: ABCDEFHILMNPRSTUVWX

УрокКак программно изменять информацию в ноде

Содержимое ноды можно менять программно при реализации в своём модуле хука hook_nodeapi (для Drupal 6) или хуков nodeapi (для Drupal 7). Для этого сначала надо создать info-файл модуля (mymodule.info) и поместить его в папку sites/all/modules/mymodule.

Для Drupal 6: