Безумно рады представить вам десятый, юбилейный, выпуск Drupal-дайджеста! За последний месяц было обработано порядка 100 различных статей, ссылок и видео, — все это, чтобы сэкономить нам всем время на поиск информации об этой замечательной системе. Очень надеемся, что вам понравится.

По-русски
- Обзор подходов к реализации сложных каталогов на друпале.
 - Никита Малышев, основатель dru.io, делится опытом написания команды для Drush.
 - Автор поста «Оптимизация изображений Drupal при создании материалов» рассказывает, как автоматически конвертировать PNG-картинки в JPG с целью экономии места на диске.
 - Подробный обзор модуля Uptolike share buttons для добавления социальных кнопок от сервиса Uptolike.
 - Настоящий триллер от фанатика друпала и велосипедов Николая Шаповалова «Поездка в Финлядию на SaunaCamp 2015 из СПб на велосипеде».
 - Южное Drupal-сообщество анонсировало конференцию A-Camp 17 июля с последующим афтепати Drupal Camping 2015 18-19 июля.
 - Настройка почты в Drupal.
 - Импорт видео с YouTube-канала в Drupal используя API v3.
 - С точки зрения безопасности может быть полезным закрыть административные пути http-аутентификацией.
 - При выводе данных модулем Views иногда бывает полезным переопределить значение какого-либо поля.
 - Рано или поздно практически все Drupal-разработчики сталкиваются с проблемой «Error at offset X of Y bytes in variable_initialize()». Решение.
 - Отладочные сообщения Devel (Krumo) можно сохранить в watchdog’e.
 
Drupal Lite
- Введение в Drupal 7.
 - В небольшой статье “Styling Bootstrap 3 Buttons in Drupal 7: Part 1” рассказывается про стилизацию кнопок в духе Bootstrap 3.
 - Обзор семи редких, но любопытных модулей Drupal 7.
 - Автор обучающего видео-блога Code Karate рассказывает, какие бы модули он взял с собой на необитаемый остров. Его выбор: Views, Panels, Rules и Entity Reference. Если ещё не знаете их, самое время начать изучение.
 - Как включить возможность удаления аккаунта пользователем, читайте в статье от OSTraining.
 - Начинаем работать с Drupal в командной строке.
 - Разбираемся с релизами Drupal 7: когда критично обновляться, а когда нет.
 
Drupal 8 и Backdrop
- Сделан серьезный шаг к нормальному upgrade path в восьмерке — появилось требование использовать hook_update_N().
 - В статье “Configuration Workflow for Drupal 8 Sites” рассказывается (с небольшим уклоном в инструментарий), как стоит работать с конфигурационными файлами Drupal 8 в команде, используя систему контроля версий.
 - Темизации Drupal 8 посвящено достаточно много статей, но серия “Drupal 8 Theming Fundamentals” (и часть 2) ориентированна на новичков и является одной из самых подробных.
 - Созданию собственных простейших псевдо-полей в Drupal 8 посвящена заметка Creating pseudo-fields in Drupal 8.
 - Ставшая де-факто стандартом, практика вознаграждения за нахождение дефектов безопасности приложений, теперь и в Drupal 8. Обещают до 1000 долларов.
 - Google Summer of Code регулярно приносит множество новых замечательный модулей. На этот раз, многие посвящены внедрению сущностей в текстовые (WYSIWYG) поля.
 - В небольшом очерке “Migrating Weather.Com To Drupal: Increased Content Portability” автор частично делится информацией о том, как на Weather.com реализовали возможность вставлять произвольное медиа в визуальный редактор, и при этом результат автоматически подстраивается под канал или устройство пользователя.
 - Drupal — полноценный участник группы по взаимодействию между фреймворками PHP Framework Interop Group. Здесь очень многое делается, чтобы написанные в одном месте компоненты, были легко переносимыми. Кого-то это может очень смотивировать контрибьютать в Drupal 8.
 - Drupal 8 теперь требует PHP 5.5.
 - Рассуждения на тему будущего Drupal 8 и Backdrop в разрезе применимости к небольшим сайтам.
 - Drupal 8 работает в HHVM минимум в два раза быстрее, чем в PHP 5. Тем не менее, он все равно пока медленнее, чем Drupal 7.
 - Вышел Backdrop 1.1.2. Есть несколько визуальных административных изменений плюс портированы исправления безопасности с Drupal 7.
 
Бизнес и сообщество
- На Drupal.org’e в последнее время произошло довольно большое количество полезных изменений. Дальше обещают ещё больше.
 - С проблемами развития Drupal-сообществ сталкиваются практически все страны, даже такие огромные в плане населения, как Китай. В очерке “What have Chinese Drupalers been doing in 2015?” рассказывается про вызовы и планы по развитию сообщества в этой особенной стране.
 - В материале “Why are Mid-Market Companies Still Looking at Adobe Experience Manager?” автор подозревает аналитические агентства типа Gartner или Forrester в ангажированности, иначе невозможно понять, почему средние компании выбирают CMS-продукты от Adobe, которые стоят от 750 тысяч долларов.
 - Достаточно широко известное понятие технического долга переносится на уровень организации и необходимости организационных изменений в материале How to deal with organisational debt.
 - Не самая приятная правда о бухгалтерии Drupal Association из первых уст. Хотя главное, что всё равно есть рост.
 - Исполнительный директор ассоциации Drupal раскрывает внутреннюю кухню в подкасте.
 
Всё для Drupal-разработчика
- Вышел Drupal 7.38 и 6.36. Закрыто несколько уязвимостей безопасности. Обновляемся!
 - Теме безопасности Drupal’a посвящен обзор “Drupal security: issues, modules, updates, checklist”.
 - Недавно появился автоматический сервис Drop Guard по обновлению друпала и модулей до последних версий. При этом в статье “A new way to update Drupal sites automatically” авторы заявляют, что он может интегрироваться практически с любым из известных workflow по работе с Drupal и даже с пропатченным ядром.
 - Ещё один сервис для поддержки Drupal-сайтов, Dropfort, обсуждается в подкасте Modules Unraveled.
 - Мы уже писали, что с недавних пор NodeSquirrel бесплатно предоставляет 5Гб места под бекапы Drupal-сайтов. Как настроить бекапирование в облако NodeSquirrel, читайте в мануале на Drupalize.me.
 - В последнее время стали довольно часто встречаться объектно-ориентированные навороты над Drupal 7 с активным использованием пространств имен, интерфейсов и прочего. Ярким примером является подход, предлагаемый в статье “Making namespaced callbacks work in Drupal 7 (without hacking core and with bound parameters)”. Также рекомендуем старую серию Drupal 8 Now: Writing Drupal 7 code with an eye towards Drupal 8.
 - Рассуждение на тему деплоя сайтов при помощи Git, минуя системы сборок.
 - Короткая заметка на закрепление знаний Apache Solr Search: индексируем отрендеренный контент из паналайзера.
 - Применение патчей через веб-интерфейс.
 - Multiple Editors per Node in Drupal 7 — Данни пишет модуль для гибкого управления списком редакторов ноды. В комментариях ему, конечно, говорят, что такой модуль уже есть.
 - В юбилейном выпуске набралось довольно много материалов по такой важной теме, как автоматизированное тестирование продуктов:
- Статья “Add unit testing to legacy code” посвящена юнит-тестированию устаревшего кода.
 - В видео-уроке How to A/B test your Drupal Site рассказывается (и показывается) про повышение конверсии сайтов при помощи A/B-тестирования.
 - В публикации Why you should be writing integration tests for Drupal предлагается совершенно новое решение для написания интеграционных тестов. Существует также пример такого теста.
 - Smoke-тестирование при помощи PHPUnit.
 - Если же вам просто любопытно, как выглядит типичная итерация BDD-тестов, то обратите внимание на видео.
 - Советуем ознакомиться с реализацией Service Container в Drupal 7. Может быть полезным для юнит-тестов.
 
 - Вспомнить про виды изоляции транзакций поможет статья Database Transactions in Drupal. Так же там предлагаются некоторые советы по работе с СУБД MSSQL.
 - Статья “A Crash Course in Information Architecture and User-Centered Design” представляет собой введение в информационную архитектуру. Попытка же стандартизировать построение такой архитектуры в Drupal представлена в материалах 1 и 2.
 - Использовать веб-сокеты на PHP не так уж и сложно. В доказательство к этому — статья “Implementing Websockets using php (Ratchet library) or Tornado web server”.
 - Созданию богатых (в плане возможностей, включая прикрепление файлов и т.п.) комментариев посвящена статья “‘Reply to Anything’ in Open Atrium”.
 - Полноценное eCommerce решение сложно представить без совместимости с требованиями Payment Card Industry Data Security Standard, особенно если потребуется принимать платежи с кредитных карт. В этом плане, радует, что для Drupal’a поддерживается актуальным whitepaper (по сути FAQ) по достижению данной цели.
 - Не забывают Drupal-разработчики и про мобильные технологии. Спасибо Blink Reaction за серию статей об открытом фреймворке ionic на основе Cordova и AngularJS: 1, 2, 3, 4, 5, 6.
 - Небольшое руководство по обновлению мобильных приложений, сделанных на DrupalGap.
 - Когда-нибудь задумывались о продаже своих модулей? Это достаточно спорный топик в виду GPLv2 лицензии друпала, но мы всё равно рекомендуем вам ознакомится с материалом Case Study: Glazed Drag and Drop Drupal Theme. В нём рассказывается про опыт создания полноценных drag-and-drop тем для Drupal 7, аля как в Visual Composer для Wordpress.
 - Если же вы предпочитаете старый-добрый Bootstrap, то вот вам подробное руководство по установке его LESS-версии.
 - Ещё по фронтенду: интересная и подробная статья на тему модели цвета HSL “Understanding and Using HSL in Your CSS”.
 - Выбору подходящего формата для данных, отдаваемых сервисами, JSON or XML, посвящена одноименная статья.
 - Спасибо автору за подробное руководство по настройке CKFinder, файлового менеджера от CKEditor. Так как это платный продукт, то он менее популярен, чем IMCE, и материалов по нему не так много.
 - Материал “Implementing a Web Design the Drupal Way (not just any old way)” пытается расставить точки над понятием Drupal way или тру-способе делать сайты на Drupal.
 - Для Drush можно выбирать, какой PHP использовать.
 - Компания Wunderkraut делится своим оригинальным Gitflow.
 - В зависимости от размеров и опыта команды Gitflow может сильно отличаться. Вот пример простого, но включающего всё необходимое, гайдлайна для небольшой Drupal-команды.
 - Сделать расширяемый CI-сервер для Drupal не так уж и просто. Помочь вам с этим может статья “Architecting a scalable Drupal build system with AWS ECS”, где авторы делятся своим опытом использования AWS, Travis, Go и Docker.
 - Небольшая заметка Drupal Behind Reverse Proxy Made Easy! поможет вам правильно определять IP адреса посетителей, если вы используете реверсивные прокси или CDN.
 - Техника нагрузочного тестирования страниц, доступных только авторизованным пользователям, при помощи одного из соответствующих SaaS-сервисов раскрывается в публикации “Load test Drupal and CiviCRM with LoadImpact”.
 - В завершении раздела поговорим о DevOps. В статье “How to install Gitlab 7.8 on Centos 5.5 with Apache and MySQL” можно посмотреть, какой последовательностью команд устанавливается Gitlab на CentOS.
 - Используем команду Tail в Unix-системах для отладки.
 - Кому-то может быть интересно поиграть с виртуальной машиной Druphpet, затьюненной (в плане выбранного софта и конфигурации) под типичные варианты использования для разработки enterprise-решений на Drupal 7.
 - Различные методы резервного копирования баз данных MySQL рассматриваются в статье MYSQL — Backup & Recovery.
 
Интересные модули
- Single Page Site
Создание одностраничных сайтов на основе меню. Существует также альтернатива на панелях. - Parse Push Notifications
Интеграция сервиса Parse.com для доставки Push-нотификаций. - Wysiwyg Fields
Достаточно революционный подход к использованию полей прямо в WYSIWYG’e. - Structured Data Markup (Rich Snippets)
Если вы хотите, чтобы имя вашего сайта появилось в поиске Google. - Field revision cache
Кэшируем все ревизии, а не только текущую. 
Больше модулей — в рассылке.
В завершение статья на A List Apart о друпале без единого упоминания друпала: The Homepage Exception.
А к какому методу сборки главной пришли вы? Блоки? page--front.tpl.php? Специальный тип материала Front Page, как предлагается в статье? Панели? Параграфы? Атомы? Бины? Ждём ваших комментариев!
Над выпуском работали Олег Кот и Катя Маршалкина. Делитесь с нами полезными статьями, своими и чужими, в комментариях или почте, и подписывайтесь на нашу рассылку. В ней всегда бывает экслюзив.
Комментарии (13)

Punk_UnDeaD
30.06.2015 13:35С точки зрения безопасности может быть полезным закрыть административные пути http-аутентификацией.
С точки зрения производительности, а безопасность не ясно как вырастет.
С точки зрения безопасности надо закрывать user/logout

afi13
30.06.2015 18:24+1В основном page--front.tpl.php или специальный тип материала для главной. До панелей как-то руки не доходят. Про модуль atom не слышал вообще. Интересно узнать какой вариант создания главной чаще всего используют авторы дайджеста?

kalabro
01.07.2015 10:44Спасибо, что поделились своим опытом!
Отвечу за себя: я не могу успокоиться и пробую всё, что шевелится! Но в продакшене чаще блоки и шаблоны. Ближе к ядру, так сказать. Для сложного панели.

k0teg Автор
01.07.2015 11:02Для меня это очень зависит от сложности содержимого по структуре; от того, кто будет наполнять сайт, и кто ещё в команде будет его разрабатывать. Если ты сам себе девелопер и верстальщик, и т.п., то может быть проще все на панелях склепать или вообще на блоках, и дальше решать проблемы по мере поступления.
С увеличением команды, сложности проекта и ростом нефункциональных требований, пожалуй, буду постепенно сдвигать фокус на уровень шаблонов, так как, в данном случае, имеется больший контроль над рендером и происходит разделение ответственности.
Что касается Beans, Paragraphs, Atoms — это, по мне так, всё для экзотичных (rich) структур содержимого, когда нет строгого макета ноды, то есть решал бы по обстоятельствам, но не в дефолтном режиме типа «всё, теперь делаю все сайты при помощи Beans».
kirbak
30.06.2015 21:30Конфереции это здорово, а в онлайне где можно найти друпалиста для финансового проекта?

DaHacka
01.07.2015 07:48+1я либо page--front.tpl.php, либо panels использую, в зависимости от макета и потребности в кешировании отдельных «регионов» (блоков или содержимого панелей)
          
 
CrazyRad
Мне вот интересно, есть ли в Drupal 7 (ну и в восьмёрке в дальнейшем), модули для качественной русификации сайта? В прошлом выпуске был упомянут материал про мультиязычность, я в комментариях упомянул другую статью, но всё это только начало, если нужны славянские языки. Хотелось бы видеть правильные множественные формы, которых у нас больше чем в английском, падежи и падежные формы, в общем всё то, что позволит писать на сайте нормальным человеческим языком, а не менять красивые тексты чтобы избежать ошибок при подстановке в текст различных значений.
Может есть статьи где освещена тема качественного перевода сайта на русский?
kalabro
Поддержка числительных в друпале есть: sanchiz.net/blog/format-plural
Какие-то сложные вещи делаются специализированными библиотеками, в которых склонения проработаны до мелочей. Например, MomentJS для дат (внизу на сайте есть переключение языков).
Свой код тоже не возбраняется написать, если у вас там какие-то высоколитературные обороты, сударь!
k0teg Автор
Я с такой комплексной статьей, к сожалению, не сталкивался. Если кто найдет (или напишет), то будет просто замечательно. Собственно ссылку в след. дайджесте можно будет и дать.