Дайджест интересных материалов из мира Drupal #2
Всем привет!
В этом выпуске вас ждут более 30 новостей, материалов, интересных модулей — всё самое интересное и свежее из мира Drupal.
По-русски
Начнём с материалов на русском языке:
Всё для Drupal-разработчика
Drupal-новости и статьи со всего мира в нашей основной рубрике:
- «Все технологии будущего имеют одно общее свойство: разработчики первых прототипов сознательно строят системы с возможностью инноваций от будущих пользователей». Возможно и спорное, и слишком строгое утверждение, но может так и объясняется успех Drupal 7? Очень интересный материал ждет вас в статье Adaptive Architecture: Leave Room to Evolve [10].
- В Drupal'e есть несколько популярных «базовых» тем. Автор статьи объясняет, почему он выбрал Bootstrap: Which Base Theme We Use (and Why) [11].
- Пока не знаете, что такое хуки? Эта заметка [12] с примером простого модуля специально для начинающих.
- В Drupal'e, как и в любом полноценном фреймворке, всегда остается место для нетривиальных вещей, подводных камней, граблей, велосипедов и т.п. В этом плане очень интересным являются подборки Gotcha — на этот раз от разработчика Wunderkraut — Bernt’s Drupal Gotchas [13].
- Клиент просит у вас CRM [14]? Вам самим нужна система управления взаимоотношениями с клиентами? Сделайте её на Drupal'e, но не изобретайте велосипед, ведь уже доступно свыше 7 различных решений, которым посвящен отдельный обзор [15].
- Если вы разрабатываете мультиязычный сайт и хотите, чтобы переводились отдельные поля, включая заголовки, а не весь материал целиком, то обязательно ознакомьтесь со статьей Setup Entity Translation the right way [16].
- Парсите сторонние сайты? Сталкиваетесь с проблемой подбора регулярных выражений и тому подобного? Попробуйте использовать сервис Import.IO [17]. Тем более, что он нормально интегрируется [18] с модулем Feeds [19].
- Про гибкий и мощный модуль Views можно говорить бесконечно. В этот раз предлагаем вашему вниманию подробную инструкцию как настроить хитрый фильтр по типу файла [20] без единой строчки кода.
Если из админки задачу решить не получается, на помощь приходит Views API. В статье от Appnovation пример кастомизации встроенного поля [21] с помощью кода.
- «Drupal в активном поиске» — так хотелось озаглавить этот дайджест! :)
- Отличное введение в фасетный поиск [22](с видео).
- Серия статей «Apache Solr and Drupal». Уже вышли первая [23] и вторая [24] части.
- Ещё один мануал по установке Apache Solr [25], вариант для разработки.
- Интеграция Search API с подходом RESTful [26].
- Изучаете модный AngularJS или только планируете это сделать? Не знаете, как прикрутить его к Drupal'у? Ознакомьтесь с статьей AngularJS in Drupal Apps [27], где создается блок со списком нод и поиском по ним, работающий абсолютно асинхронно.
- Вопросы безопасности на сайтах всегда будут актуальными, тем более, что количество утилит, собирающих уязвимые сайты в полу-автоматическом режиме, постоянно растёт. Статья Drupal Security Tips for Developers [28] помогает двигаться в правильном направлении.
- В статье How to improve security on Drupal sites [29] приводится ряд способов скрыть факт использования Drupal, чтобы не привлекать внимание автоматических утилит для сканирования на уязвимости.
- Если вы не слышли о концепции Offline-first, то рекомендуем ознакомиться с презентацией Let's Take Drupal Offline! [30] Идея, как минимум, любопытная, хоть и мало применимая на данный момент, из коробки.
- Иногда смотришь на стандартные формы редактирования контента в Drupal и понимаешь: «что-то не то». У Юрия Герасимова есть несколько идей [31], как можно значительно улучшить UX Drupal.
- А знаете ли вы про
user_multiple_role_edit()
? Короткая заметка о том, как программно задать пользователю роли [32], к вашим услугам.
- Продолжаем кодерскую тему двумя любопытными библиотеками-хелперами для тех, кто пишет много кода: Wrappers Delight [33] и Distill [34].
- Где Drupal, там и Drush. Автор статьи Advanced Drupal User Management With Drush [35] показал пару примеров работы с пользователями прямо из консоли. Для полного комплекта не хватает только команды user-login [36].
- Практически всегда, работая с разными окружениями, например: локальным, стейджинг-сервером, продакшеном, — приходится сталкиваться с тем, что каждое из них использует или свои собственные реквизиты для подключения к базе данных, а также самые разнообразные настройки, что в итоге ведет к надобности иметь один гигантский settings.php-файл или множество различных, например settings-prod.php. Всё бы хорошо, но проблема ещё в том, что локальное окружение у каждого разработчика может быть своё — а это значит, что даже имея локальный файл настроек, допустим settings-local.php, — у каждого будет своя его версия, что приведет к лишним изменениям в git status. У этой проблемы есть решение, и оно рассматривается в статье Include a local Drupal settings file for environment configuration and overrides [35].
- Если вы задавались вопросом, как в панелях (Panels) сделать свой собственный «виджет», то рекомендуем прочитать статью How to Create Ctools Content Types in Drupal 7 [37] про создание типов содержимого CTools.
- Вообще, Panels та ещё штучка. Юрий Герасимов рассказывает в своём блоге [38], как можно управлять последовательностью рендеринга панелей из админки и из кода. Век живи, век учись!
- Интересуетесь, как работать с мультимедиа в Drupal? У нас для вас интересная серия статей про модуль Scald: уже вышли часть 1 [39] (обзор решений) и часть 2 [40] (введение в Scald).
- Подробный мануал, как подружить модуль Media и YouTube [41], написали луллаботы.
- Также мы очень рекомендуем ознакомиться с материалом Resource Guide: Managing Media in Drupal [42]. В нём представлена компиляция самых известных модулей и практик по этой тематике.
Бизнес и сообщество
Drupal вне кода:
- Итоги Drupal-года, очень кратко, но очень ёмко: Six Things We Learned About Drupal in 2014 [43]
- Для ускорения работ над Drupal 8 недавно создали фонд Drupal Accelerate Fund [44] в размере 125000$. Теперь любой человек или организация может обратиться за грантом, в случае если они будут готовы организовать спринт по поддержке ядра системы. Также Dries и Drupal Association обращаются [45] за помощью к организациям, которые готовы спонсировать в дальнейшем этот фонд. Поставлена амбициозная цель набрать дополнительно 65000$.
- Команда Drupal.org активно работает над тем, чтобы сделать главный Drupal-сайт удобным для всех его пользователей. Для этого Drupal-ассоциация провела серию интервью с разработчиками разного уровня от новичка до мастера. Российское сообщество представляла Катя Маршалкина aka kalabro [46]: Meeting Personas: The Drupal Expert [47].
- Существует и другое деление Drupal-разработчиков: Site Builder, Themer и Module Develper. В чем разница, читайте в статье What is a Drupal developer? [48]
- Хотите покодить для Drupal 8, но нет ни наставника, ни подходящего проекта? Подключайтесь к инициативам по переводу сайтов локальных сообществ на Drupal 8: drupal.ru [49] и drupal.ua [50] соответственно.
Drupal 8
Новости с фронтов разработки следующей версии Drupal:
- Вышла beta4 [51].
- Шпаргалка по конфигурационным yaml-файлам [52], в которых теперь хранятся все настройки сайта.
- Портируем модуль с семёрки на восьмёрку [53] с помощью модуля Drupal Module Upgrader.
- Как известно, Drupal 8 включает в себя некоторое количество PHP компонентов, наверняка знакомых веб-разработчикам из других фреймворков, например Symfony. Kris Vanderwater представляет обзор основных из них:
Серия будет продолжена.
- С разработкой Drupal 8 не всё так просто [56], возможно из-за того, что всё-таки основной фокус системы сместился на движение к enterprise-миру, что естественно повлекло за собой усложнение системы и подняло планку для контрибьюшена. Интересно, в этом плане, смотрится форк от Drupal 7 — Backdrop CMS [57]. Впрочем, большинство опрошенных [58] настроены оптимистично на 2015 год.
Интересные модули
И напоследок несколько модулей, на которые стоит обратить внимание:
- Taxonomy Term Status [59] позволяет устанавливать статус «опубликовано»/«неопубликовано» для терминов таксономии, совсем как у нод.
- Default file settings [60] для удобного управления дефолтными настройками файловых полей.
- Classy Panel Styles [61] для расширенного управления стилями панелей (видео [62] и слайды [63]).
- Views EVI (Exposed Value Injector) [64] — это новый модуль, который позволяет прокидывать аргументы в фильтры.
- Reroute Email [65] нужен для перенаправления всей почты на dev-серверах (статья [66]).
- Расширение Drush Registry Rebuild [67] поможет переместить модуль (даже не выключая его) в другую папку и не увидеть при этом фатальных ошибок PHP.
- Если вы являетесь активным пользователем модуля Panels [68], то наверняка сталкивались с модулем Fieldable Panels Panes [69], который позволяет прямо при редактировании панели создавать энтити с произвольным набором полей, причем они являются в прямом смысле многоразовыми. Недавно появился модуль Fieldable Panel Panes Bundles [70], которые позволяет создавать бандлы, по аналогии с типами содержимого.
- В видео-обзоре на CodeKarate [71] подробно разобран модуль Smart Paging [72], который используется для постраничного разбиения содержимого ноды по количеству символом, слов или по специальному плейсхолдеру.
Над выпуском работали Олег Кот [73] и Катя Маршалкина [74]. Пишите нам с любыми вопросами и предложениями!
Всего наилучшего! До встречи в новом году!
Автор: k0teg
Источник [75]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/cms/77997
Ссылки в тексте:
[1] Boostrap: http://getbootstrap.com/
[2] Drupal и Bootstrap фреймворк: настройка, использование Sass.: http://www.angarsky.ru/drupal/drupal-bootstrap-framework-nastroyka-sass.html
[3] Связка из модулей Panels, Views и Bootstrap Framework.: http://www.angarsky.ru/drupal/panels-views-bootstrap-framework.html
[4] Несколько советов по ускорению Drupal: http://habrahabr.ru/post/245763/
[5] afi13: http://habrahabr.ru/users/afi13/
[6] xandeadx.ru: http://xandeadx.ru/
[7] CasperJS для тестирования друпал-проектов: http://netspark.ru/useful/papers/front-end-testirovanie-s-pomoshchyu-capserjs
[8] Опубликованы фото и видео: http://2014.drupalcampmsk.ru/conference/news/2014-12-18
[9] Проекты российских разработчиков: http://drupalspb.org/initiatives/proekty-rossiyskih-razrabotchikov
[10] Adaptive Architecture: Leave Room to Evolve: https://swsblog.stanford.edu/blog/adaptive-architecture-leave-room-evolve
[11] Which Base Theme We Use (and Why): http://www.digett.com/blog/12/16/2014/which-base-theme-we-use-and-why
[12] Эта заметка: https://3cwebservices.com/drupal/introduction-drupal-hooks
[13] Bernt’s Drupal Gotchas: http://www.wunderkraut.com/blog/bernts-drupal-gotchas/2014-01-21
[14] CRM: https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2%D0%B7%D0%B0%D0%B8%D0%BC%D0%BE%D0%BE%D1%82%D0%BD%D0%BE%D1%88%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8_%D1%81_%D0%BA%D0%BB%D0%B8%D0%B5%D0%BD%D1%82%D0%B0%D0%BC%D0%B8
[15] отдельный обзор: http://www.sitepoint.com/7-crm-options-compatible-drupal/
[16] Setup Entity Translation the right way: http://nielsdefeyter.nl/archive/201412/setup-entity-translation-right-way
[17] Import.IO: https://import.io/
[18] интегрируется: http://fourword.fourkitchens.com/article/scraping-websites-drupal-using-feeds-and-importio
[19] Feeds: https://www.drupal.org/project/feeds
[20] хитрый фильтр по типу файла: https://www.ostraining.com/blog/drupal/filter-drupal-file-type/
[21] пример кастомизации встроенного поля: http://www.appnovation.com/blog/how-properly-use-php-drupal-views-fields
[22] введение в фасетный поиск : https://3cwebservices.com/drupal/creating-faceted-search-view-drupal
[23] первая: http://cheppers.com/blog/apache-solr-and-drupal-part-i-set-up-apache-solr-to-enhance-drupal-search
[24] вторая: http://cheppers.com/blog/apache-solr-and-drupal-part-ii-how-to-set-up-drupal-and-solr-to-search-in-attachments
[25] Ещё один мануал по установке Apache Solr: http://www.pixelite.co.nz/article/installing-solr-development/
[26] Интеграция Search API с подходом RESTful: https://medium.com/@e0ipso/restful-drupal-with-search-api-f370050a26bb
[27] AngularJS in Drupal Apps: http://www.sitepoint.com/angularjs-drupal-apps/
[28] Drupal Security Tips for Developers: https://codedrop.com.au/blog/drupal-security-tips-developers
[29] How to improve security on Drupal sites: https://www.drupal.org/node/2368709
[30] Let's Take Drupal Offline!: http://www.slideshare.net/dickolsson/lets-take-drupal-offline-41650712
[31] есть несколько идей: http://wearepropeople.com/blog/drupal-ux-improvements-when-node-forms-are-a-nuisance
[32] как программно задать пользователю роли: http://befused.com/drupal/programmatically-assign-roles-users
[33] Wrappers Delight: http://zengenuity.com/blog/a/201412/decoupling-your-backend-code-drupal-and-improving-your-life-wrappers-delight
[34] Distill: https://github.com/patrickocoffeyo/distill
[35] Advanced Drupal User Management With Drush: http://www.oliverdavies.co.uk/blog/include-local-drupal-settings-file-environment-configuration-and-overrides
[36] user-login: http://www.drushcommands.com/drush-6x/user/user-login
[37] How to Create Ctools Content Types in Drupal 7: http://morpht.com/posts/how-create-ctools-content-types-drupal-7
[38] рассказывает в своём блоге: http://ygerasimov.com/control-panes-render-sequence
[39] часть 1 : http://www.annertech.com/blog/media-management-drupal-websites
[40] часть 2: http://www.annertech.com/blog/drupal-media-management-scald-tutorial
[41] Подробный мануал, как подружить модуль Media и YouTube: https://drupalize.me/blog/201412/embed-youtube-videos-media-and-media-internet-sources
[42] Resource Guide: Managing Media in Drupal: https://www.drupal.org/resource-guides/managing-media
[43] Six Things We Learned About Drupal in 2014: https://assoc.drupal.org/blog/jsaylor/six-things-we-learned-about-drupal-2014
[44] Drupal Accelerate Fund: https://assoc.drupal.org/d8accelerate
[45] обращаются: http://buytaert.net/announcing-the-drupal-8-accelerate-fund
[46] kalabro: http://habrahabr.ru/users/kalabro/
[47] Meeting Personas: The Drupal Expert: https://assoc.drupal.org/blog/leighc/meeting-personas-drupal-expert
[48] What is a Drupal developer?: http://befused.com/drupal/developer
[49] drupal.ru: https://github.com/DrupalRu/drupal.ru/issues/2
[50] drupal.ua: http://drupal.ua/groups/rozrobka-drupalua/drupalua-perekhodyt-na-drupal-8
[51] beta4: https://www.drupal.org/node/2394813
[52] Шпаргалка по конфигурационным yaml-файлам: http://hojtsy.hu/blog/2014-dec-12/drupal-8-configuration-schema-cheat-sheet
[53] Портируем модуль с семёрки на восьмёрку: https://drupalize.me/blog/201412/adventures-porting-d7-form-module-drupal-8
[54] Composer: https://www.acquia.com/blog/5-php-components-every-drupal-8-developer-should-know-part-1-composer
[55] Guzzle: https://www.acquia.com/blog/5-php-components-every-drupal-8-developer-should-know-part-2-guzzle
[56] не всё так просто: http://buytaert.net/scaling-open-source-communities
[57] Backdrop CMS: http://us7.campaign-archive1.com/?u=8a016d204af55747c1fef5769&id=4f76bb26b9
[58] большинство опрошенных: https://drupal8release.zensations.at/
[59] Taxonomy Term Status: https://www.drupal.org/project/termstatus
[60] Default file settings: https://www.drupal.org/project/dfs
[61] Classy Panel Styles: https://www.drupal.org/project/classy_panel_styles
[62] видео: http://www.youtube.com/watch?v=5BcD6fVJbYI
[63] слайды: http://slides.com/kendalltotten/classy-panel-styles#/
[64] Views EVI (Exposed Value Injector): https://www.drupal.org/project/views_evi
[65] Reroute Email: https://www.drupal.org/project/reroute_email
[66] статья: http://www.oliverdavies.co.uk/blog/configuring-reroute-email-module
[67] Registry Rebuild: https://www.drupal.org/project/registry_rebuild
[68] Panels: http://drupal.org/project/panels
[69] Fieldable Panels Panes: https://www.drupal.org/project/fieldable_panels_panes
[70] Fieldable Panel Panes Bundles: https://www.drupal.org/project/fpp_bundles
[71] видео-обзоре на CodeKarate: http://codekarate.com/daily-dose-of-drupal/smart-paging-how-display-node-multiple-pages
[72] Smart Paging: https://www.drupal.org/project/smart_paging
[73] Олег Кот: mailto:Aleh_Kot@epam.com
[74] Катя Маршалкина: mailto:marshalkina@licel.ru
[75] Источник: http://habrahabr.ru/post/246573/
Нажмите здесь для печати.