Уроки

УрокРабота с изображениями в Drupal 7. Аналог imagecache.

В шестом Друпале все операции с изображениями делались через модуль Imagecache. Это контриб модуль, который приходилось скачивать и устанавливать. В Drupal 7 он был включен в ядро и стал частью модуля Image.

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

print theme('imagecache', $preset_name, $image_path, $alt = '', $title = '', $attributes = NULL, $getsize = TRUE, $absolute => TRUE);

В седьмом Друпале это делается немного иначе:

УрокЗаставляем любую форму выполняться через AJAX в Drupal 7

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

Создаём страницу для ajax запроса

С помощью hook_menu() создаём страницу, которая будет принимать ajax запрос из формы:

УрокСоздание своего элемента формы в Drupal 7. Расширяем Forms API.

Сегодня я расскажу о том, как создавать свои элементы форм, которые будут доступны для использования через Forms API. Всю разработку я продемонстрирую на примере создания jSlider Form API с авторскими дополнениями и объяснениями кода. Итак, пошагово.

Шаг первый. Описываем элемент формы.

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

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

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

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

УрокИзменение состояний формы в Drupal 7

Нередки ситуации, когда в зависимости от нажатия элемента на форме появляются/исчезают/меняются элементы этой самой формы. И если для обычных полей это можно сделать модулем conditional fields, то для своих форм придётся всё писать самому. В Друпале это можно сделать либо через ajax (об этом более подробно можно почитать тут) либо же через параметр #states в Forms API. И сейчас речь пойдёт именно о втором варианте.

Итак, #states. По сути, это PHP обёртка для простейших функций jQuery, которые изменяют состояние формы при совершении с ней заранее заданных действий.

Состояние элемента #states является ассоциативным массивом такого вида:

УрокКак должна выглядеть тема для сайта на Друпале

С годами работы с шаблонами сайтов был выработан список, по которому темизаторы и дизайнеры должны сдавать свою работу. Именно так, на наш взгляд, должна выглядеть приличная тема для Drupal:

  • Фавиконка.
  • Прорисованный / свёрстанный трекер.
  • Прорисовывать страницу регионов для блоков.
  • Сделанные страницы с 403 и 404 ошибкой (page--403.tpl.php, page--404.tpl.php).
  • Страница сайта, когда он находится в режиме разработки (maintenance--page.tpl.php).
  • Дизайн должен быть продуман таким образом, что если в блоке или в ноде заголовок оказался слишком длинным, то он не должен некрасиво съезжать.

УрокНастройка отладчика xDebug между IDE PhpStorm и сервером Open Server

Начну с небольшого вступления. PhpStorm использую в качестве IDE т.к. считаю её лучшим продуктом для разработки, который включает в себя огромное количество плюшек. Open Server - сервер, с которым я познакомился совсем недавно, однако он полностью меня покорил своей скоростью работы и лёгкостью управления.

Без отладки кода в пошаговом режиме жить довольно сложно, даже krumo или debug() не могут мне это заменить. Сегодня я столкнулся с острой необходимостью настроить дебагер под Open Server, и наткнулся на несколько подводных камней, которые не столь очевидны, как хотелось бы. Итак, ближе к телу.

Страницы