Дайджест интересных материалов из мира Drupal #9
Всем привет! За месяц у нас накопилось много интересных ссылок для вас. Встречайте девятый выпуск! По-русски Весна в русском Drupal-сообществе прошла плодотворно. Ловите десять ссылок на отличные статьи на русском: В блоге angarsky.ru вышла большая техническая статья «Создание ноды через кастомную форму с использованием модального окна CTools». И хотя этот материал далеко не для новичков, мы с честью открываем им дайджест! Всё очень подробно и грамотно рассказано и показано на реальном коде. Немного хардкора от того же автора: «Получить программно список обновлений для БД». Эта заметка демонстрирует преимущества открытого фреймфорка Drupal — при желании вы можете сделать всё, что угодно. Ещё одна практическая статья «Как добавить форму редактирования поля сущности к своей форме» вышла в блоге drupaler.by. Кстати, у Ctools и для полей есть удобные хелперы, чтобы не разбираться с подводными камнями Field API в одиночестве. Куда ж без андеда и его неповторимого краткого стиля изложения. Модуль Language Domains будем иметь ввиду. Хотите сделать свой rapidshare c таймером перед скачиванием? Павел Катаев поделился своим модулем Delay Download для этой цели, правда пока что модуль не доступен с drupal.org. И ещё код: «Как программно редактировать профиль пользователя». Пётр Лозовицкий рассказал, как переводил сайт с MySQL на PostgreSQL. Новенькое на сайтах сообщества. На drupal.ru читайте про настройку сервера на основе конфига nginx-джедая Perusio. На dru.io вышла заметка про любимые Drush-команды Василия Устинова. Ребята из DrupalSPB.org провели очередной митап (презентации смотрите на страницах докладов) и Global Training Day, за что им большое уважение! Но, конечно, львиная доля информации формируется мировым сообществем. Всё, что ниже, — на английском. Но даже если вы не сильны в английском, не переживайте: друпалер друпалера всегда поймёт! Drupal Lite Drupal Lite это не форк друпала (по крайней мере пока), а наша рубрика для начинающих.Вышел Drupal 7.37. Среди изменений можно отметить появившуюся папку sites/all/libraries, а также возможность использовать нижнее подчеркивание в списке разрешенных тэгов ваших фильтров. Подбор подходящего модуля не такая уж и простая вещь, особенно для новичков. Полезные советы по «как», «что», «где» и «зачем» представлены в цикле статей Selecting Drupal Modules: What Do You Need?, (II, III). Кстати, kalabro писала об этом ещё два года назад, и тоже в трёх частях (I, II, III). Работа с регулярными процедурами (Cron) станет понятнее после прочтения статьи Creating custom cron tasks in Drupal 7. Гайд по использованию Dreditor — расширения для вашего браузера, которое улучшает работу с Drupal.org. Большой труд по многоязычности: How Drupal Does Multilingual. Лучше один раз потратить день и разобраться, поверьте нашему горькому опыту. На десерт заметка Drupal 7 Total Language Fallback, а также модуль Select translation, который используется для фильтрации материалов в Views по языку. Результаты работы модуля Views могут быть легко представлены в виде JSON при помощи модуля Services. Всё для Drupal-разработчика Видео с DrupalCon Los Angeles 2015.Вот несколько (1, 2) мнений, что стоит посмотреть. Подписчикам нашей рассылки отправили письмо с разбором речи Дриса, создателя Drupal. Как поддерживать ваш settings.php в чистоте и порядке, читайте в статье «Site configuration strategy (or how to manage your settings.php files)». В заметке Learning To Debug: Stop Thinking and Look автор рассуждает на тему правильного дебага и призывает нас быть внимательнее, чтобы не тратить лишние часы, силы и время на лечение симптомов вместо болезни. Иногда для отладки нам необходимо выполнить целую последовательность PHP-операций, например, загрузить ноду с ID=1, дампнуть её, загрузить ноду с ID=2 и т.п. У нас есть Devel > Execute PHP Code, а также Drush-команда `drush php-eval`, но это недостаточно удобно по сравнению с нормальными REPL в других языках (напр. Python), где выводится результат выполнения каждой строки. В это плане, вам может оказаться любопытным продукт Drush REPL, которому посвящена отдельная статья. И снова про поисковую оптимизацию после Mobilegeddon. На самом деле всё не так страшно. Несколько простых модулей помогут вам значительно улучшить ваше положение. Управляем Drupal«ом при помощи пульта для телевизора. No comment Оказывается, что прикрутить поиск от Google к вашему сайту на Drupal 7 совсем несложно. 600 SQL JOINS в одном запросе? Это вполне реальная ситуация для большого проекта, если начать вслепую хранить любые данные в полях. Данная проблема рассматривается в статье Drupal: Fields or Properties (or something else)Drupal: Fields or Properties (or something else), где автор предлагает несколько решений. Наглядный пример того, насколько просто импортировать геоданные в Drupal 7, представлен в материале From spreadsheet to citizen government with Drupal — Volume 1 — Feeds. Highload-настройка MySQL имеет целый ряд нюансов (например, выбор IO scheduler«a операционной системы), часть которых достаточно подробно разобрана в материале MySQL — Setup. На некоторых проектах встречаются реально большие базы данных (для CMS; >2 GB), импорт которых для тестирования, ревью и прочих активностей может занимать изрядное время. В статье Importing huge databases faster вопрос разбирается досконально. Не самое красивое решение, но рабочее — для поворота картинок после их загрузки: Rotating original file for image field in Drupal 7 and dealing with browser cache. Правительства разных стран в последнее время становятся регулярным заказчиком сайтов на Drupal. Происходит это в силу разных причин: дешевизна, open source и т.п. Одной из причин также является поддержка доступности для людей с ограниченными возможностями (accessibility). Разобраться с этой темой поможет серия статей Web Accessibility Tips for Developers: части 1 и 2. Кажется, всё. Хотя нет, какой дайджест без фич? В статье Features Secret Rolemageddon рассказывается о подводных камнях при экспорте прав и ролей через Features. Drupal 8 Обучающий материал Using Ajax Forms in Drupal 8 рассказывает про создание AJAX-форм. В заметке Drupal 8: core javascript files for anonymous users рассказывается про правильный способ добавления своих JS-библиотек к рендер-массивам. И третья статья от того же автора: про новый способ добавления произвольных тегов в шапку страницу. К сервисам и ресурсам, сделанным на Drupal 8, достаточно легко добавить аутентификацию и авторизацию. В 8-ке наряду с PHPUnit для юнит-тестирования по-прежнему остается Simpletest. Особенности работы с ним раскрываются в материале Automated Testing of Drupal 8 Modules. Если вам интересно, как подключить CDN от Amazon к Drupal 8, то обязательно прочитайте статью Amazon CloudFront with Drupal 8. Реинкарнация модуля Features в Drupal 8 — с надеждой, что теперь модуль будет использоваться по назначению. В Drupal 8 целых 4 типа информации. В статье Creating Custom Config Entities in Drupal 8 представлено описание и пример создания одного из них. Бизнес и сообщество Кто мы и куда идем? The Cultural Construction of Drupal — большой познавательный труд на тему друпал-сообщества. Читать и статью, и комментарии. В тему также можно прочитать комментарий Дриса к покупке WooMattic. В целом, можно констатировать больший крен Drupal в сторону large enterprises. В материале «Pantheon Acquires NodeSquirrel to Provide Free Drupal Cloud Backups for Everyone!» представлен краткий инсайт о покупке компанией Pantheon сервиса NodeSquirrel. Для широкой публики это может быть интересно тем, что у всех желающих появилась возможность делать бесплатные бекапы сайтов в клауд. Эдиссон Берри, новый Board Director Ассоциации, рассказывает каково это. Интересные модули Theme DeveloperИногда бывает сложно определить, какой шаблон по факту был вызван для рендера того или иного элемента. Разобраться с этим помогает модуль Devel Themer, работе с которым посвящена отдельная статья. Dynamic widget for commerce line item fieldПо-хорошему, в архивах заказов интернет-магазинов некорректно хранить лишь ссылки на существующие продукты. Свойства продуктов могут меняться со временем, поэтому лучше сохранять все данные продукта в позиции (line item) заказа. Модуль именно это и позволяет сделать. Views exposed form layoutМодуль помогает темизировать exposed-формы модуля Views. Views List SortПолезен для кастомной сортировки по списковому полю. 403 to 404В Drupal по умолчанию выдается ошибка 403 Access denied при обращении неавторизованных пользователей к каким-то страницам. С точки зрения безопасности иногда лучше выводить 404 Not Found. Mobile sliding menuМодуль позволяет использовать на вашем сайте удобное меню-слайдер, чтобы ваша навигация была дружелюбной к мобильным устройствам. Используется библиотека jQuery MMenu. Данному модулю посвящена отдельная статья. REST/JSONЕщё одна REST-имплементация, опять же в основном нацеленная на чтение данных. Entity PanelsЛёгкая замена Panelizer от Максима Подорова. Views String SelectЕсли вам не хватает встроенного во Views глоссария (а он там есть), стоит обратить внимание на этот модуль. Page manager existing pagesЭтот модуль позволяет перекрывать существующие страницы в Page Manager (статья). SafewordMachine name, только в виде поля. Можно использовать, например, для задания части алиаса пути, а доступ к стандартному полю Path закрыть, чтобы пользователи ничего не сломали. Над выпуском работали Олег Кот и Катя Маршалкина. Делитесь с нами полезными статьями, своими и чужими, в комментариях или почте, и подписывайтесь на нашу рассылку.
P.S. В Drupal Planet довольно популярен формат подкастов, но в дайджесте мы их пока обходим стороной. Кто-нибудь слушает? Стоит добавлять, как считаете?