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

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

Всем привет!

Самое интересное и полезное из мира Drupal за прошедшие 3 недели.

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

По-русски

  1. Первые шаги в освоении Twitter Bootstrap и Drupal поможет сделать статья Bootstrap + Drupal 7: быстрый экскурс для начинающих [1].
  2. Ещё один обоюдоострый инструмент друпала, о котором стоит знать: hook_module_implements_alter() [2].
  3. @xandeadx делится джентльменским набором модулей [3].
  4. На Хабре вышла статья Управление конфигурациями в Drupal 8, обзор для разработчиков [4]. Если что-то из примеров уже не работает, просмотрите Change records [5], где логируются все изменения API.
  5. Краткость — сестра таланта. Микросовет — global $user в функциях [6]. Да, и конечно, называйте такой параметр $account, а не $user :)

Drupal-lite

Наша постоянная рубрика для начинающих.

  1. Простой пример кастомизации контактной формы: изменяем заголовок и перенаправление [7].
  2. Изучаем шаблоны полей в Display Suite [8], спокойно, по шагам, со скриншотами.
  3. С помощью семейства модулей Workbench [9] можно организовать на сайте гибкую систему модерации и документооборота. Пример добавления нового состояния документа смотрите в статье Add a New Moderation State Tab to Workbench [10].
  4. 5 антиспам-модулей [11] + ещё столько же в комментариях. Засветился и Simple Anti-Spam [12].
  5. В друпале просто $(function() {}) не прокатит. Подробно о Javascript и Drupal behaviors [13] читайте в свежей статье луллаботов.

Drupal и Git

  1. Для тех, кто ещё не сделал в своей жизни ни одного коммита, автор Drupal-блога CodeKarate разразился серией статей о Git: 1 [14], 2 [15], 3 [16], 4 [17], 5 [18].
  2. В статье “Git setup with hook for post-receive” [19] рассматривается способ, как избежать хранения Git репозитория в docroot’e вашего сервера, основанный на автоматической синхронизации при помощи post-receive хуков.
  3. Довольно часто приходится иметь дело с несколькими удаленными Git-репозиториями одновременно, например, с кодом ядра друпала и с кодом разрабатываемого сайта. В данном случае возникает проблема, когда с оригинальным репозиторием мы также утаскиваем всю его историю, а это может значительно повлиять на занимаемое место. В статье “Multiple git remotes, the --depth parameter and repo size” [20] находится решение данной проблемы.

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

  1. В статье “Rapid Drupal Scaffolding with Yeoman” [21] рассматриваются вопросы генерации кода сущностей, модулей и т.п. на основе шаблонов при помощи Yeoman Generator [22]. В прододжение стоит ознакомиться со статьей “Creating Custom Ctools Layout Plugins with Yeoman” [23], которая посвящена генерации плагинов к Ctools, а также с “Yo Hedley!” [24] на тему Headless Drupal. Теперь вы знаете о Yeoman всё!
  2. Современная разработка страниц часто предполагает использование панелей, Views’ов и прочих фич, которые в конечном счете становятся переносимыми при помощи модуля Features [25]. В статье “Code Management in Drupal 7 using Features, Ctools, and Panels” [26] рассматриваются вопросы создания листингов при помощи стандартных средств (EntityFieldQuery и т.п.), а не при помощи модуля Views, с фокусом на правильную интеграцию всего этого добра с модулем Panels, и последующей упаковкой в фичу.
  3. Drush продолжает обзаводиться красивыми сайтами с документацией: к http://drushcommands.com/ [27] добавился http://docs.drush.org/en/master/ [28].
  4. Кстати, Drush можно запускать автоматически через Grunt [29], если очень хочется.
  5. Кеширование в Drupal — тема всегда актуальная. Углубляемся в дебри ядра [30], чтобы понять почему не отрабатывает кеш страниц для анонимных пользователей. На эту же тему можно почитать у 2bits [31].
  6. Как использовать свою функцию темизации для формы? [32] Полезно, когда верстка формы очень специфическая.

Drupal 8

  1. Карьерный план Drupal-разработчика от WebOmelette: 6 необходимых шагов, чтобы стать разработчиком Drupal 8 [33].
  2. Краткий базовый курс [34] (опять же, для разработчика) называется «Drupal 8 in 2 steps». Почему шага должно быть именно два, — просим помощи у зала :)
  3. Третьим шагом логично поставить изучение Twig (новый движок шаблонов, пришедший на смену PHPTemplate) по статье “Gettin` Twiggy” [35].
  4. Вышла очередная бета (шестая) Drupal 8 [36]. К сожалению, нормального Upgrade path по-прежнему нет [37].
  5. Продолжает публиковаться серия статей, посвященная программному расширению модуля Views: полей [38], фильтров [39].
  6. Gabor Hojtsy продолжает всех радовать своей работой на благо интернационализации, и в его серии Drupal 8 multilingual tidbits [40] появилась уже семнадцатая (!) статья под названием Content translation [41].
  7. В журнале Drupal Watchdog [42] вышла статья, посвященная созданию интерактивных туров [43] в Drupal 8.
  8. Если вы искали чёткие определения различным терминам в Drupal, свазанные с работой меню (menu, path, uri), то мы вам советуем ознакомиться со статьей “How does Drupal use these different terms? Route, Path, URL, URI, Link, Menu item“ [44].
  9. Заметка о том [45], зачем нужны аннотации и вообще и в друпале в частности.

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

Drupal вне кода:

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

  1. Несколько недель назад сообщество активно ретвитило статьи про использование Drupal в Умном Доме [46]. И хотя авторы нещадно эксплуатируют все bad practices, которые можно найти в друпале, это всё равно очень весело.
  2. Chx [47] снова уходит, теперь из агрегатора Drupal Planet. Дружное Drupal-сообщество очень его любит [48] и надеется, что скоро он опять вернётся, отдохнувший и с магнитиками :)
  3. Начинается DrupalCon Latin America [49], а это значит, что скоро будет много новых видео.
  4. Ассоциация опубликовала состав участников Друпалконов в 2014 году [50].

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

  1. Views Fast Field [51] — отображение полей сущности без загрузки самой сущности.
  2. Views Accelerator [52] — автоматическая оптимизация post execute фазы Views с анализом, статистикой, когда недостаточно стандартного кеширования по времени. Эффективно для работы с геоданными, полями с префиксами и суффиксами и т.п.
  3. Memcache Storage [53] — альтернатива для Memcache модуля, который обеспечивает интеграцию Drupal с Memcached для обеспечения высокой производительности. Memcache Storage имеет ряд дополнительных возможностей по сравнению с оригиналом.
  4. Corresponding Entity References [54] — если сущность A ссылается на сущность B, а сущность B ссылается на A, то при апдейте или удалении оригинальных сущностей связь может стать некорректной. Данный модуль решает эту проблему.
  5. Translation Management Tool [55] — инструментарий для перевода содержимого из разных источников, включая ручной, машинный и интеграцию с любыми сервисами перевода.
  6. Drupal Issue Tracking [56] — расширение для Chrome, которое позволяет мониторить статус любых тикетов (issue) с Drupal.org.
  7. Apido [57] — пользовательский скрипт (userscript) для Chrome/Opera/Firefox, который подсвечивает переменные и фигурные скобки при отображении кода на api.drupal.org и drupalcode.org.
  8. Pushbullet API [58] — отправка Push-уведомлений на мобильные устройства, а также в ваши браузеры (статья [59]).
  9. Machine Name [60] — добавляет поле для хранения машинного имени (хранит букво-цифровое (alphanumeric) значение, которое должно быть уникальным и крайне редко изменяться (статья [61]).

Пишете статьи о Drupal на благо сообщества? Пожалуйста, свяжитесь с нами: Олег Кот [62], Катя Маршалкина [63].

Автор: k0teg

Источник [64]


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

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

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

[1] Bootstrap + Drupal 7: быстрый экскурс для начинающих: http://petu.ru/drupal/bootstrap-drupal-7-bystryy-ekskurs

[2] hook_module_implements_alter(): http://sanchiz.net/blog/drupal-7-change-hook-order

[3] джентльменским набором модулей: http://xandeadx.ru/blog/drupal/817

[4] Управление конфигурациями в Drupal 8, обзор для разработчиков: http://habrahabr.ru/post/248629/

[5] Change records: https://www.drupal.org/node/2407153

[6] Микросовет — global $user в функциях: http://graker.ru/news/2015/01/30/mikrosovet_global_user_v_funktsiyakh

[7] изменяем заголовок и перенаправление: http://www.symphonythemes.com/drupal-blog/how-customize-drupal-contact-form-form-title-result-redirect

[8] шаблоны полей в Display Suite: http://webwash.net/tutorials/how-use-display-suite-field-templates-drupal-7

[9] Workbench: https://www.drupal.org/project/workbench

[10] Add a New Moderation State Tab to Workbench: https://www.ostraining.com/blog/drupal/workbench-tab/

[11] 5 антиспам-модулей: http://www.annertech.com/blog/5-best-modules-stop-spam-drupal-website

[12] Simple Anti-Spam: http://xandeadx.ru/blog/drupal/619

[13] о Javascript и Drupal behaviors: https://www.lullabot.com/blog/article/understanding-javascript-behaviors-drupal

[14] 1: http://codekarate.com/blog/introduction-git-part-1

[15] 2: http://codekarate.com/blog/introduction-git-part-2

[16] 3: http://codekarate.com/blog/introduction-git-part-3

[17] 4: http://codekarate.com/blog/introduction-git-part-4

[18] 5: http://codekarate.com/blog/introduction-git-part-5

[19] “Git setup with hook for post-receive”: http://drupaldump.com/git-setup-hook-post-receive

[20] “Multiple git remotes, the --depth parameter and repo size”: http://dcycleproject.org/blog/87/multiple-git-remotes-depth-parameter-and-repo-size

[21] “Rapid Drupal Scaffolding with Yeoman”: https://echo.co/blog/rapid-drupal-scaffolding-yeoman

[22] Yeoman Generator: http://yeoman.io/generators/

[23] “Creating Custom Ctools Layout Plugins with Yeoman”: http://atendesigngroup.com/blog/creating-custom-ctools-layout-plugins-yeoman

[24] “Yo Hedley!”: http://www.gizra.com/content/yo-hedley/

[25] Features: https://www.drupal.org/project/features

[26] “Code Management in Drupal 7 using Features, Ctools, and Panels”: https://echo.co/blog/code-management-drupal-7-using-features-ctools-and-panels

[27] http://drushcommands.com/: http://drushcommands.com

[28] http://docs.drush.org/en/master/: http://docs.drush.org/en/master/

[29] запускать автоматически через Grunt: http://kevinquillen.com/grunt/2015/02/04/using-drush-with-grunt/

[30] Углубляемся в дебри ядра: http://www.mediacurrent.com/blog/why-isnt-my-page-caching

[31] можно почитать у 2bits: http://2bits.com/articles/beware-drupal-modules-disable-page-cache.html

[32] Как использовать свою функцию темизации для формы?: http://drupal.stackexchange.com/questions/312/how-to-a-use-a-template-file-to-theme-a-form

[33] 6 необходимых шагов, чтобы стать разработчиком Drupal 8: http://www.webomelette.com/6-steps-new-drupal-8-developers

[34] базовый курс: http://capgemini.github.io/drupal/drupal-8-in-2-steps/

[35] “Gettin` Twiggy”: http://drupalwatchdog.com/volume-4/issue-1/gettin-twiggy-with-it

[36] очередная бета (шестая) Drupal 8: https://www.drupal.org/node/2415675

[37] нет: https://www.drupal.org/project/issues/search/drupal%3Fproject_issue_followers%3D%26status%255B%255D%3D1%26status%255B%255D%3D13%26status%255B%255D%3D8%26status%255B%255D%3D14%26status%255B%255D%3D4%26categories%255B%255D%3D1%26categories%255B%255D%3D2%26version%255B%255D%3D8.x%26issue_tags_op%3D%253D%26issue_tags%3DD8%2Bupgrade%2Bpath

[38] полей: http://www.webomelette.com/creating-custom-views-field-drupal-8

[39] фильтров: http://www.webomelette.com/creating-custom-views-filter-drupal-8

[40] Drupal 8 multilingual tidbits: http://hojtsy.hu/multilingual-drupal8

[41] Content translation: http://hojtsy.hu/blog/2015-jan-27/drupal-8-multilingual-tidbits-17-content-translation-basics

[42] Drupal Watchdog: http://drupalwatchdog.com/

[43] созданию интерактивных туров: http://drupalwatchdog.com/volume-4/issue-1/touring-drupal

[44] “How does Drupal use these different terms? Route, Path, URL, URI, Link, Menu item“: http://kattekrab.net/route-path-link

[45] Заметка о том: http://www.lakshminp.com/annotations-in-drupal-8/

[46] про использование Drupal в Умном Доме: http://www.element14.com/community/community/designcenter/single-board-computers/next-gen_beaglebone/blog/2014/12/29/basic-iot-home-automation-using-a-beaglebone-black-and-drupal

[47] Chx: http://www.drupal4hu.com/node/419

[48] очень его любит: http://flickrhivemind.net/Tags/chxcannotbedistracted/Interesting

[49] DrupalCon Latin America: https://latinamerica2015.drupal.org/program/schedule/tuesday

[50] состав участников Друпалконов в 2014 году: https://assoc.drupal.org/blog/leighc/infographic-who-attends-drupalcon

[51] Views Fast Field: https://www.drupal.org/project/views_fast_field

[52] Views Accelerator: https://www.drupal.org/project/views_accelerator

[53] Memcache Storage: https://www.drupal.org/project/memcache_storage

[54] Corresponding Entity References: https://www.drupal.org/project/cer

[55] Translation Management Tool: https://www.drupal.org/project/tmgmt

[56] Drupal Issue Tracking: https://chrome.google.com/webstore/detail/drupal-issue-tracking/gigmieclehjecoglmlmgokcekfklonmb

[57] Apido: https://www.drupal.org/project/apido

[58] Pushbullet API: https://www.drupal.org/project/pushbullet

[59] статья: http://niklan.net/blog/70

[60] Machine Name: https://www.drupal.org/project/machine_name

[61] статья: http://webwash.net/tutorials/how-add-machine-names-content-types-drupal-7

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

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

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