Безумно рады представить вам десятый, юбилейный, выпуск 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 Автор
Я с такой комплексной статьей, к сожалению, не сталкивался. Если кто найдет (или напишет), то будет просто замечательно. Собственно ссылку в след. дайджесте можно будет и дать.