Обзор возможностей модуля Entityqueue

Многие наверняка сталкивались или хотя бы слышали о модуле Nodequeue, который позволяет собирать списки из нод опубликованных на сайте . Затем эти списки можно использовать для вывода их к примеру с помощью модуля views. Для пользователей и терминов таксономии существовали аналогичные модули - User Queue и Term Queue.

Использование регулярных выражений для #states в Form API

В друпал 7 в Form API появилось новое свойство #states. Оно делает возможным изменять состоянии элементов форм (unchecked, visible, enabled и т.д.) в зависимости от состояния других элементов.

Это позволяет обходится без написания кастомного javascript кода. Можно в зависимости от конкретного значения поля изменить состояние другого. Но #states не умеет работать с регулярными выражениями.

С помощью небольшого js файла сделаем возможность в качестве значения поля выбирать regex.

Использование Live Templates и File Templates в PhpStorm для работы с друпал

В IDE PhpStorm есть два замечательных инструмента ускоряющих разработку веб-приложений - это Live Templates и File Templates.

Live Templates - это предустановленные фрагменты кода , которые можно использовать в любом файле приложения и при этом эти фрагменты используют динамические переменные. Для вставки такого фрагмента достаточно указать его короткое машинное имя и нажать Tab либо Enter.

File templates - это шаблоны файлов с заранее описанным кодом , которые позволяют избежать рутинной работы при добавлении однотипных файлов в проекты. Эти шаблоны также поддерживают переменные , как предустановленные самой IDE , так и свои собственные , которые можно заполнить в диалоговом окне при создании файла.

Отмена валидации для ajax сабмита

При добавлении ajax для submit кнопки формы , после нажатия на нее выполняется submit и validation функции . При этом потребуется вводить все обязательные поля во избежании появления ошибок .Для тестирования ajax функционала на время разработки можно временно убрать выполнение валидации. Для этого достаточно в параметр #limit_validation_errors записать пустой массив . Также пустой массив запишем и в параметр #submit:

Обновление формы с помощью AJAX button в Drupal 8

Для обновления всей формы в Drupal 8 нужно:

  • Описать класс , расширяющий базовый класс FormBase для создания форм .
  • В методе getFormId() нужно вернуть id формы , в методе buildForm() описать саму форму создаваемую.
  • В параметре #ajax для кнопки указать имя callback функции , которая является публичным методом описанным в этом же классе .
  • В callback методе вернуть форму.

Очищаем данные полей из удаляемого сообщения (Private Message)

По умолчанию данные полей , ассоциируемые с приватными сообщениями , сохраняются в базе данных и после удаления самого сообщения.

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

Миграция комментариев из Drupal 7 в Disqus

Disqus - веб-сервис , предоставляющий возможность импорта интернет-обсуждений и комментариев на сайт пользователя. Сервис использует свою социальную сеть, что упрощает комментирование на сайтах, использующих его. Сервис используют более 750 тысяч блогов и веб-сайтов, а также интернет-порталы таких изданий, как CNN, Daily Telegraph и IGN (выдержка из http://ru.wikipedia.org/wiki/Disqus).

Алиасы в drush и синхронизация файлов/базы данных используя sql-sync и rsync

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