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

Сегодня меня наконец прорвало и захотелось написать новую статью. Темой были выбраны хлебные крошки (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;
}

УрокСоздание своих токенов на примере регистрации пользователей

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

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

УрокПрограммный перевод текста с помощью Google Translate

Не так давно поставили передо мной задачу: парсить сайт на английском языке, попутно переводя его на русский. И именно перевод вызвал затруднения. Раньше ведь всё проще было, когда существовал бесплатный Google Translate API. А теперь лавочку прикрыли, попросив выложить на стол по 20$ за каждый миллион переведённых символов. Деньги совсем не большие, но русская душа требует халявы. Поэтому немного подумав, я нашёл вполне легальный способом обхода нововведения. А именно - воспользоваться их сервисом Google Translate со своего сайта :)

Без долгих введений, к бою:

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

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

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

ДизайнОсторожный поиск вдохновения.

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

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

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

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

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

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

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

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

Страницы