УрокПроизводительность сайта на Drupal. Анализ серверной части.

Немного воды

Что делать, если сайт дохнет прямо на глазах? С чего начать, если вам подсунули полуживой проект с просьбой поднять его на ноги? Ответ выглядит немного по-капитански: анализ. Вам надо понять, где именно закралась проблема в производительности, которая мешает быстрой работе сайта. Сразу хочу сказать, что в этой статье я буду принимать на веру, что вы выбрали правильный хостинг, и проблема заключается не в нём. Безусловно, многие проблемы с производительностью на сервере можно решить докупив ещё железа, однако не каждый заказчик готов платить за это (хотя по подсчётам, докупить железа обойдётся гораздо дешевле, чем тратиться на специалиста по производительности, но кому это объяснишь ;)). Однако если же косяк с производительностью серьёзный - то он может съесть ресурсы даже докупленного железа, и тогда на вас очень обидятся. А если проблема окажется в клиентской части сайта - то хоть дата-центры скупайте, а у клиентов сайты будут тормозить.

УрокНастройка xDebug между IDE NetBeans и сервером Denwer

По данному вопросу вы можете найти кучу информации. Однако я решил поделиться своим опытом настройки и подчеркнуть некоторые нюансы в картинках.

Установлен Denwer 3 + дополнения к нему.

Первое, что нам надо сделать – это создать php-файл и запустить его. В php-файле (например, index.php) пишем:

БлогЛогин, регистрация и восстановление пароля с помощью 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. Видео прилагается:

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

Страницы