Уроки

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

Немного воды

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

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

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

УрокЭкспорт и импорт данных из своей таблицы с помощью Chaos Tools

Наверняка многие из вас сталкивались с задачей переноса данных с одного сайта на другой. Например, создали локально представление вьюса - и надо быстро его перенести на рабочий сайт. И вы явно обратили внимание, что в каждом представлении есть вкладка "Экспорт". Благодаря такой возможности вы можете перенести это представление на рабочий сайт буквально за 10 секунд. Фактически происходит следующее: из таблицы выбирается запись с этим представлением, обрабатывается специальным образом и отдаётся пользователю в виде текста. А потом при импорте этот текст декодируется и вставляется как запись в таблицу. Одним из механизмов, позволяющих это реализовывать, является Ctools Exportable - о нём я и расскажу.

УрокДобавляем к форме автосабмит с помощью Chaos Tools

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

Довольно удобные инструменты по добавлению автосабмита имеются в модуле Chaos Tools. С ним вам понадобится проделать всего три простых шага для получения результата.

Шаг первый

Добавляем js из ctools'a, который непосредственно выполняет сабмит формы при изменении нужного элемента:

ctools_add_js('auto-submit');

УрокЗапись большого объёма данных в таблицу

Каждый хороший разработчик думает о производительности. И сегодня я расскажу о том, как можно быстро записать большие объёмы данных в таблицу за минимальный период времени.

Я уверен, что многие сталкивались с задачей, например, собирать какую-либо статистику и сохранять её в отдельную таблицу. Простейший пример: сохранять количество просмотров и комментариев к материалу за каждый день. А потом по этим данным построить график, который бы визуально отображал "популярность" материала за определённый период. Сама по себе задача простая - выбрать из двух таблиц данные и записать её в свою отдельную. Но когда у вас на сайте, скажем, 200 тысяч материалов, то вставка такого объёма данных может занять приличное количество времени. Но давайте поговорим о возможных вариантах записи этих данных.

УрокСистема кэширования Drupal 7. Часть первая: сегменты кэша.

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

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

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

УрокСистема кэширования Drupal 7. Часть вторая: программное управление кэшем.

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

Шаг первый. Создание нового сегмента кэша.

Назовём наш модуль, например, Example cache. Для создания своего сегмента кэша практически всегда используется клон стандартной таблицы {cache}, поэтому и мы не будем исключением. В example_cache.install имплементируем hook_schema(), чтобы добавить свою таблицу:

Страницы