- PVSM.RU - https://www.pvsm.ru -

Дайджест интересных материалов из мира Drupal #7

Всем привет!

Самое интересное и полезное из мира Drupal за прошедшие 3 недели в нашем седьмом выпуске.

image

По-русски

Начнём с материалов в рунете:

  1. По традиции несколько полезных сниппетов от xandeadx: «Оплата доступа к ноде с помощью Робокассы [1]», «Taxonomy Menu и названия пунктов меню из поля термина [2]», «Программно авторизовать пользователя по uid [3]».
  2. Павла Китаева не отпускает Form API :) Читайте его статью «Создание новых типов элементов формы HTML5 [4]».
  3. Макс Корейченко размышляет [5] на тему производительности и делится своим подходом к аяксификации [6].
  4. «Такой замечательный баг нашел, или это фича? [7]» — пишет автор блога «Make You Live Better | Сексуальные опыты с Drupal CMF» после ночи с модулем Context :)
  5. kalabro [8] рассказала [9], как можно подключать PHP-файлы в своём модуле.

Drupal-lite

Этот раздел специально для тех, кто с друпалом недавно:

  1. В статье Form API #states [10] рассказывается, как легко сделать свои формы динамичными без единой Javascipt-строчки.
  2. Пошаговый мануал [11], как добавить свой собственный текст (custom content) в Panels [12].
  3. Сложные проверки значений полей можно настроить прямо из админки с модулем Field Validation [13].
  4. Переходим на сторону добра — отказываемся от Views PHP: Conditional Views — Sure beats Views PHP for simple variance [14].
  5. При записи обзорного видео [15] по модулю Subuser Шэйн Томас нашел баг и решил исправить его сам. Подробности в видео Module Investigator: Fixing an issue in the Drupal Subuser module [16].

Всё для Drupal-разработчика

Коктейль из материалов для друпалеров среднего уровня и выше:

  1. Очередная гигантская компиляция из модулей, статей и тому подобного появилось на Drupal.org. На этот раз она посвящена созданию сайтов государственных учреждений [17]. Архив других компиляций доступен на странице Resource Guides [18]. Очень советуем добавить в ваши закладки.
  2. Многие поисковые системы поднимают наверх в выдаче сайты, которые работают по HTTPS, а также имеют мобильную версию [19]. Google даже подготовил официальный гайд [20] по адаптивным темам в Drupal.
  3. Не всё решается через модуль Views (и далеко не все списки полезно делать через него). В публикации Easy Way Out Before Lost inside Views Maze [21] рассказывается, как можно сделать выборку материалов самостоятельно для отображения блока с ленивой загрузкой через Ajax.
  4. Неплохое введение в парадигму Headless Drupal представлено в материале Headless Drupal. Why & how a RESTful API in Drupal? [22]
  5. Как портировать модули на форк Drupal 7 под названием Backdrop CMS [23], читайте в статье Porting Drupal 7 Modules to Backdrop [24].
  6. Тема безопасности не теряет актуальности. Существует изрядное количество автоматических сканеров уязвимостей сайтов плюс целые базы эксплоитов. Ввести хакеров в заблуждение помогут шаги по сокрытию того факта, что ваш сайт сделан Drupal. В материале Hiding the fact that your site runs Drupal [25] представлен подробный обзор методов достижения этой цели. Дополнительные идеи можно почерпнуть в подборке Hiding Traits of Drupal [26].
  7. Пакетная обработка больших данных практически всегда предполагает использование очередей. В материале с лаконичным названием Drupal Queues [27] показан пример объявления и использования собственной очереди.
  8. The Drupal mail system [28] — исчерпывающая статья про почтовую подсистему друпала.
  9. Если вы задумывались, есть ли что-нибудь похожее на hook_node_access(), только для других сущностей, то обязательно прочитайте публикацию Custom access control for Drupal 7 entities [29].
  10. Капелька драша не повредит нашему дайджесту: Drush Registry Rebuild [30] для лечения тех проблем, которые не решаются сбросом кеша.
  11. Jeff Geerling проделал огромную работу по популяризации Ansible в Drupal-сообществе, апогеем которой стала Drupal VM [31] = Vagrant + Ansible + Drupal.
  12. Появилось несколько обзоров хостинга [32] Platform.sh: первые шаги [33] на SitePoint и более серьёзная статья на примере реального проекта [34].
  13. В статье Drupal Testing Methodologies Are Broken — Here's Why [35] автор интригует скорой публикацией выстраданного фреймворка для интеграционных тестов в Drupal 7, который можно было бы запускать на работающем сайте вместо Simpletest или PHPUnit. Также представлен обзор основных проблем, с которыми сталкиваются разработчики при попытках прикрутить автоматизацию тестов к Drupal.
  14. Раз уж мы заговорили про тестирование, стоит упомянуть вводную статью по Behat:BDD with Behat and Drupal [36].
  15. Луллаботы делятся опытом по использованию популярного Javascript-фреймворка AngularJS в Drupal-проектах: Wrapping AngularJS modules in Drupal CTools plugins [37].
  16. Углубляемся в query-запросы Solr [38], чтобы лучше понимать, как это всё вообще работает.
  17. В поисках замены Features, серия №2086: встречайте CINC [39] и сразу пример с созданием представления из кода [40].
  18. Google отключает Image Charts API [41] в апреле. По этому поводу обзор модулей построения графиков [42].

Drupal 8

  1. Вышла 9-я бета-версия [43] Drupal 8. Критических issue по-прежнему больше полтинника [44].
  2. Если вы ещё не видели презентацию «30 Awesome Drupal 8 API Functions [45]», то отличный шанс сделать это сейчас. Кстати, есть версия для семёрки [46].
  3. Настройка Vagrant для разработки под Drupal 8 [47] с помощью VDD.
  4. В статье Creating Custom Field Formatters in Drupal 8 [48] рассказывается о том, как создавать новые форматеры полей.
  5. Изменения в системе фильтрации текста в восьмёрке, а также подводные камни в виде двойного экранирования рассматриваются в материале Avoiding Double-Escaped Output in Drupal 8 [49].
  6. В статье Dependency Injection with Traits in Drupal 8 [50] автор делится любопытным опытом портирования одного модуля [51] с Drupal 7 на Drupal 8. По ходу захватывающего странствия встречаются PHP Traits [52], а также Dependency Injection [53] и Module Upgrader [54].
  7. В очерке Alter or Dispatch: Drupal 8 Events versus Alter Hooks [55] сделана попытка указать идеальный способ объявления собственных событий в Drupal 8.
  8. Когда вам понадобится Ctools для восьмёрки, вы знаете, где его искать: The Drupal 8 plugin system — part 4 [56].
  9. Красивая форма поиска по коммитам в Drupal 8: Drupal 8 Git Commit Explorer [57].

Бизнес и сообщество

  1. Drupal 8 Accelerate [58].
    Программа грантов по разработке Drupal 8 [59] уже наделала много шума. Drupal-ассоциация планирует привлечь как минимум $250k. При этом половину уже внесли [60] сама ассоциация и 7 крупнейших Drupal-компаний. А вот бы так: делаешь git push на орге, а тебе на счёт автоматически падает $100… Но мы, кажется, отвлеклись :)
  2. Новости бизнеса: Mediacurrent, крупнейший игрок Drupal-рынка, поглощен дизайн-агентством Code and Theory [61].
  3. Утверждены доклады [62] на майский DrupalCon Los Angeles.
  4. Сообщество простилось с ушедшим из жизни по причине тяжелой болезни Аароном Винборном. Почитайте о нём [63]. Ассоциация анонсировала премию имени Аарона [64], часть которой будет ежегодно направляться семье Винборнов.
  5. Этот человек очень редко высказывается. В этот раз он сделал исключение: Earl Miles, он же merlinofchaos [65], автор Views и Panels, о друпале и его сообществе [66]. (TL;DR: всё нормально и у Ёрла, и у друпала).
  6. Две трогательные истории разработчиков из серии «Я и Drupal»: My journey in Drupal, 4 years on [67], 542 days as a Drupal developer [68]. Пусть таких историй будет только больше.

Интересные модули

  1. Configuration Management [69]
    Альтернативный Features [70] подход для управления конфигурацией рассматривается в статье Configuration Management, an alternative to Features [71].
  2. Features Builder [72]
    Если же вы активно продолжаете использовать модуль Features в разработке, то обратите внимание на материал Features Builder, problems zero with Features! [73]
  3. Taxonomy Entity Index [74]
    Этот модуль используется для оптимизации производительности сайта при массовом использовании таксономии. На данную тему написана небольшая статья Drupal 7, Tags, Unpublished Content, and You [75].
  4. VoiceCommander [76]
    Голосовые интерфейсы — тренд на протяжении уже многих лет. С этим модулем вы можете проэкзаменовать Web Speech API в друпале.
  5. Openstack Queues [77]
    Интеграция с движком очередей Openstack Zaqar [78] (альтернатива Amazon SQS [79] с открытым исходных кодом).
  6. Field SQL Lean [80]
    Достаточно экстремальный подход к оптимизации, который необратимо изменяет структуру таблиц для хранения значений полей. Очевидно, что с новой структурой не смогут стандартно работать множество модулей Drupal, например Views, тем не менее, полезно знать, что существуют и такие возможности системы.
  7. Views Calc [81]
    Этот модуль позволяет вывести строку «Итогов» в таблице. Подсчёт ведётся на стороне БД и поддерживает операции COUNT, SUM, AVG, MIN, MAX. Как пользоваться, рассказывают в OSTraining [82].
  8. GA Push [83]
    Расширенное API для отправки любых событий в Google Analytics. С его помощью можно, например, отслеживать ошибки валидации форм [84] на вашем сайте.

Над выпуском работали Олег Кот [85] и Катя Маршалкина [86].
Пишете статьи о Drupal на благо сообщества? Дайте нам знать — drupal.digest@gmail.com [87].

А ещё мы запускаем Drupal-рассылку. Воспользуйтесь формой регистрации [88] и станьте первыми читателями!

Автор: kalabro

Источник [89]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/cms/87550

Ссылки в тексте:

[1] Оплата доступа к ноде с помощью Робокассы: http://xandeadx.ru/blog/drupal/827

[2] Taxonomy Menu и названия пунктов меню из поля термина: http://xandeadx.ru/blog/drupal/831

[3] Программно авторизовать пользователя по uid: http://xandeadx.ru/blog/drupal/826

[4] Создание новых типов элементов формы HTML5: http://drupalfly.ru/station/new-type-element-html5-in-my-form

[5] размышляет: http://koreychenko.ru/content/pochemu-vash-sayt-na-drupal-medlennyy-i-chto-nuzhno-delat-chtoby-ego-uskorit

[6] делится своим подходом к аяксификации: http://www.drupal.ru/node/116446

[7] Такой замечательный баг нашел, или это фича?: http://makeyoulivebetter.org.ua/node/575

[8] kalabro: http://habrahabr.ru/users/kalabro/

[9] рассказала: http://dru.io/question/892#rate-node-951-1-3

[10] Form API #states: https://www.lullabot.com/blog/article/form-api-states

[11] Пошаговый мануал: http://www.chenhuijing.com/blog/drupal-101-creating-custom-content-with-panels/

[12] Panels: https://www.drupal.org/project/panels

[13] настроить прямо из админки с модулем Field Validation: http://www.webwash.net/tutorials/define-custom-validation-using-field-validation-drupal-7

[14] Conditional Views — Sure beats Views PHP for simple variance: https://www.cvillecouncil.us/content/conditional-views-sure-beats-views-php-simple-variance

[15] обзорного видео: http://codekarate.com/daily-dose-of-drupal/creating-hierarchy-users-drupal-subuser-module

[16] Module Investigator: Fixing an issue in the Drupal Subuser module: http://codekarate.com/daily-dose-of-drupal/module-investigator-fixing-issue-drupal-subuser-module

[17] созданию сайтов государственных учреждений: https://www.drupal.org/resource-guides/launching-government-website

[18] Resource Guides: https://www.drupal.org/resource-guides

[19] мобильную версию: https://seopult.ru/subscribe.html?id=219

[20] официальный гайд: https://developers.google.com/webmasters/mobile-sites/website-software/drupal

[21] Easy Way Out Before Lost inside Views Maze: http://wulei.ca/blog/easy-way-out-lost-inside-views-maze

[22] Headless Drupal. Why & how a RESTful API in Drupal?: http://blog.openlucius.com/en/blog/headless-drupal-why-how-restful-api-drupal

[23] Backdrop CMS: https://backdropcms.org/

[24] Porting Drupal 7 Modules to Backdrop: https://www.lullabot.com/blog/article/porting-drupal-7-modules-backdrop

[25] Hiding the fact that your site runs Drupal: http://www.drupalonwindows.com/en/blog/hiding-fact-your-site-runs-drupal

[26] Hiding Traits of Drupal: https://github.com/alehkot/drupal-best-practices#hiding-traits-of-drupal

[27] Drupal Queues: http://www.computerminds.co.uk/drupal-code/drupal-queues

[28] The Drupal mail system: http://pronovix.com/blog/drupal-mail-system

[29] Custom access control for Drupal 7 entities: http://www.webomelette.com/custom-access-control-drupal-7-entities

[30] Drush Registry Rebuild: https://www.deeson.co.uk/labs/drush-registry-rebuild

[31] Drupal VM: http://www.drupalvm.com/

[32] хостинга: https://www.reg.ru/?rlink=reflink-717

[33] первые шаги: http://www.sitepoint.com/first-look-platform-sh-development-deployment-saas/

[34] серьёзная статья на примере реального проекта: http://awebfactory.com.ar/node/537

[35] Drupal Testing Methodologies Are Broken — Here's Why: http://redcrackle.com//blog/drupal-testing-methodologies-are-broken-heres-why

[36] BDD with Behat and Drupal: http://www.appnovation.com/blog/bdd-behat-and-drupal

[37] Wrapping AngularJS modules in Drupal CTools plugins: https://www.lullabot.com/blog/article/wrapping-angularjs-modules-drupal-ctools-plugins

[38] Углубляемся в query-запросы Solr: http://www.triquanta.nl/blog/what-fq-short-summary-solr-query-fields

[39] CINC: https://www.drupal.org/project/cinc

[40] созданием представления из кода: http://atendesigngroup.com/blog/how-easily-create-drupal-views-code

[41] Image Charts API: https://developers.google.com/chart/image/

[42] обзор модулей построения графиков: https://www.drupal.org/node/2363985

[43] 9-я бета-версия: https://www.drupal.org/node/2459341

[44] больше полтинника: https://www.drupal.org/project/issues/search/drupal?project_issue_followers=&status%5B%5D=1&status%5B%5D=13&status%5B%5D=8&status%5B%5D=14&status%5B%5D=4&priorities%5B%5D=400&categories%5B%5D=1&categories%5B%5D=2&version%5B%5D=8.x&issue_tags_op=%3D

[45] 30 Awesome Drupal 8 API Functions: https://www.acquia.com/resources/podcasts/acquia-podcast-187-greatest-hits-2014-161-30-awesome-drupal-8-api-functions

[46] версия для семёрки: http://brightplumbox.com/30Drupal7API/#/

[47] Настройка Vagrant для разработки под Drupal 8: https://drupalize.me/blog/201503/tutorial-vagrant-drupal-8-development

[48] Creating Custom Field Formatters in Drupal 8: http://www.sitepoint.com/creating-custom-field-formatters-drupal-8/

[49] Avoiding Double-Escaped Output in Drupal 8: https://pantheon.io/blog/avoiding-double-escaped-output-drupal-8

[50] Dependency Injection with Traits in Drupal 8: https://drupalize.me/blog/201503/dependency-injection-traits-drupal-8

[51] опытом портирования одного модуля: https://drupalize.me/blog/201412/adventures-porting-d7-form-module-drupal-8

[52] PHP Traits: http://php.net/manual/en/language.oop5.traits.php

[53] Dependency Injection: https://api.drupal.org/api/drupal/core!modules!system!core.api.php/group/container/8

[54] Module Upgrader: https://www.drupal.org/project/drupalmoduleupgrader

[55] Alter or Dispatch: Drupal 8 Events versus Alter Hooks: https://www.previousnext.com.au/blog/alter-or-dispatch-drupal-8-events-versus-alter-hooks

[56] The Drupal 8 plugin system — part 4: http://lakshminp-lakshminp.rhcloud.com/the-drupal-8-plugin-system-part-4/

[57] Drupal 8: Drupal 8 Git Commit Explorer: https://www.eric.pe/terson/understands/drupal-8-by-git-commit

[58] Drupal 8 Accelerate: https://assoc.drupal.org/d8accelerate

[59] грантов по разработке Drupal 8: https://assoc.drupal.org/d8accelerate/awarded

[60] половину уже внесли: http://www.phase2technology.com/blog/accelerating-with-drupal-8/

[61] поглощен дизайн-агентством Code and Theory: http://www.mediacurrent.com/blog/mediacurrent-acquired-by-code-and-theory

[62] Утверждены доклады: https://events.drupal.org/losangeles2015/sessions/accepted

[63] Почитайте о нём: https://www.drupal.org/node/2444367

[64] анонсировала премию имени Аарона: https://www.drupal.org/aaron-winborn-award

[65] merlinofchaos: https://www.drupal.org/u/merlinofchaos

[66] о друпале и его сообществе: https://plus.google.com/u/0/+EarlMiles/posts/JiemCwPqECA

[67] My journey in Drupal, 4 years on: http://www.paulrowell.com/my-thoughts/my-journey-drupal-4-years

[68] 542 days as a Drupal developer: http://www.chenhuijing.com/blog/542-days-as-a-drupal-developer/

[69] Configuration Management: https://www.drupal.org/project/configuration

[70] Features: http://drupal.org/project/features

[71] Configuration Management, an alternative to Features: http://www.wellnet.it/en/blog/weekly-module-review-2-configuration-management-alternative-features

[72] Features Builder: https://www.drupal.org/project/features_builder

[73] Features Builder, problems zero with Features!: http://www.wellnet.it/en/blog/weekly-module-review-3-features-builder-problems-zero-features

[74] Taxonomy Entity Index: https://www.drupal.org/project/taxonomy_entity_index

[75] Drupal 7, Tags, Unpublished Content, and You: http://www.shooflydesign.org/buzz/drupal-7-tags-unpublished-content-and-you

[76] VoiceCommander: https://www.drupal.org/project/voicecommander

[77] Openstack Queues: https://www.drupal.org/project/openstack_queues

[78] Openstack Zaqar: https://wiki.openstack.org/wiki/Zaqar

[79] Amazon SQS: http://aws.amazon.com/sqs/

[80] Field SQL Lean: https://www.drupal.org/project/field_sql_lean

[81] Views Calc: https://www.drupal.org/project/views_calc

[82] рассказывают в OSTraining: https://www.ostraining.com/blog/drupal/views-calc/

[83] GA Push: https://www.drupal.org/project/ga_push

[84] отслеживать ошибки валидации форм: https://vimeo.com/89739132

[85] Олег Кот: mailto:Aleh_Kot@epam.com

[86] Катя Маршалкина: mailto:marshalkina@licel.ru

[87] drupal.digest@gmail.com: mailto:drupal.digest@gmail.com

[88] формой регистрации: http://eepurl.com/bhCjRb

[89] Источник: http://habrahabr.ru/post/254501/