Друпал-дайджест — 2019/декабрь

    Друпал-дайджест №33 за декабрь 2019 года: вышедшие версии, изменения внесённые в ядро разрабатываемых веток, статьи, модули, темы и статистика использования Drupal. Дайджест не включает статьи на английском языке, которые публикуются в Drupal Planet и The Weekly Drop.



    Почему номер 33
    В 2014–2016 годах, на Хабре были опубликованы 20 выпусков Друпал-дайджеста — habr.com/ru/search/?target_type=posts&q=%5Bdrupal-digest%5D&order_by=date. В 2018 и 2019 годах Друпал-дайджест публиковался в группе Drupal ВКонтакте — vk.com/@drupalgroup и было опубликовано 12 выпусков. Этот дайджест снова выходит на Хабре и продолжает нумерацию под номером 33.

    Версии


    ► 4 декабря вышли Drupal 7.68 и Drupal 8.8.0
    ► 18 декабря вышли Drupal 7.69, Drupal 8.7.11 и Drupal 8.8.1

    Изменения в ядре
    Изменения, которые вносились в разрабатываемые ветки и версии.

    ○ 2 декабря, 9.0.x/9.0.0 → Deprecated twig_without() function has been removed
    ○ 3 декабря, 8.8.x/8.8.0-RC1 → Database dump for upgrade path has been updated
    ○ 4 декабря, 7.x/7.68 → theme_table() takes an optional footer variable and produces <tfoot>
    ○ 4 декабря, 7.x/7.68 → drupal_http_request() accepts data as an array in Drupal 7
    ○ 4 декабря, 7.x/7.68 → Access to web.config is blocked in .htaccess (and vice-versa)
    ○ 4 декабря, 7.x/7.68 → New «scripts» element
    ○ 4 декабря, 8.8.x/8.8.0-beta1 → Drupal 8.8.0 requires pathauto version 8.x-1.6 or higher if installed
    ○ 5 декабря, 8.9.x/8.9.0-alpha1 → hook_install, hook_uninstall, hook_modules_installed and hook_modules_uninstalled now receive an $is_syncing parameter
    ○ 6 декабря, 9.0.x/9.0.0 → jQuery UI source added to Drupal core and deprecated code removed
    ○ 9 декабря, 8.9.x/8.9.0-alpha1 → Classy has clearfix class on field container when field label is configured as inline
    ○ 10 декабря, 8.8.x/8.8.0-alpha1 → Views UI no longer attaches jquery.ui.tabs
    ○ 16 декабря, 8.7.x/8.7.2 → Animations are disabled in WebDriverTestBase javascript testing
    ○ 16 декабря, 8.8.x/8.8.1 → Config entity updater can only update one entity type per update hook


    Статьи


    Выполнить очередь с помощью Batch API (andead) — Пример выполнения очереди products_import с помощью Batch API…
    Как расширить функционал фильтр-плагина Views? (добавляем возможность фильтровать числовые поля по нескольким значениям) (andead) — Пример добавления возможности фильтровать числовые поля по нескольким значениями…
    Кейс: Missing Car Register GmbH (CimpleO) — Мы разработали мультиязычный сайт с отзывчивым интерфейсом, доступный для широкой публики. Пользователи получили возможность легко искать и регистрировать свои авто. Так же они могут быть уверенными, что информация об их собственности находится в надёжных руках…
    Критический баг, связанный с обработкой архивов, исправлен в Drupal (XakepRU) — Разработчики Drupal обновили свою CMS до версий 7.69, 8.7.11 и 8.8.1, в которых устранили несколько уязвимостей, включая критические…
    AJAX-добавление товара в корзину в Commerce 2 (andead)

    Модули


    Некоторые появившиеся в декабре модули:

    Друпал 7


    File Organizer — перемещение файлов из коневой папки [root] файловой системы в папку [root/год/месяц]. Этот модуль может быть полезен, если вы хотите упорядочить размещение файлов или использовать для управления файлами файловый менеджер подобный IMCE. Модуль реализует команду drush file-organizer с набором параметров и работает следующим образом: 1) ищет в таблице file_managed файл размещённый в корне файловой системы (или определённой папке), 2) перемещает файл в новую папку на основании timestamp, 3) обновляет таблицу file_managed, 4) ищет в поле field_body ссылку на файл и обновляет её. Отметьте: модуль работает только с полем field_body.

    TS Google Cloud Storage — интеграция с сервисом Google Cloud Storage. Модуль позволяет заменить локальную файловую систему хранилищем Google Cloud, которое может использоваться в качестве файловой системы по умолчанию для всех полей типа «Файл» и «Изображение», или каждое поле можно настроить для использования Google Cloud Storage по отдельности.



    Друпал 8


    Akamai Media Viewer — интеграция с галереей изображений Akamai Media Viewer (AMV).

    Attach Libraries — прикрепление библиотеки к дисплею вида, блоку, документу или странице термина.



    Autocomplete Entity ID — расширение для стандартного поля автозаполнения, позволяющее создавать связь вводя идентификатор объекта, а не только его заголовок.



    Backup and Migrate Yandex Disk — расширение модуля Backup and Migrate, которое позволяет использовать в качестве хранилища резервных копий Яндекс.Диск.



    Basic Watermark — эффект стиля изображения для добавления на изобрежение водяного знака.



    Box Access — интеграция с сервисом box.com. Пользователи могут создавать папки и работать с файлами на этом сервисе.

    CKEditor Pastefromgdocs — вставка данных из Google Docs в CKEditor с сохранением разметки.



    CKEditor Pastefromword — вставка данных из Microsoft Word в CKEditor с сохранением разметки.

    Clockify — интеграция с Clockify.

    Cloudflare Image Style — интеграция с Cloudflare для отдачи изображений с применёнными стилями через CDN Cloudflare и возврат к стандартному управлению изображениями в локальном окружении, где CDN не используется.

    Commerce Custom Shipping By Weight — расширение модуля Drupal Commerce, которое позволяет рассчитывать стоимость доставки с учётом веса посылки.

    Config batch export — удобное скачивание архива конфигураций на медленном VPS или хостинге с маленьким http timeout. Например, если сайт использует CDN и CDN ограничивает время ожидания ответа сервера 30 секундами. Если у вас много файлов конфигураций, то процесс генерации архива займёт продолжительное время и появятся ошибки. Преимущества модуля: 1) скорость, 2) малое использование памяти, 3) отсутствие ограничений по времени ожидания ответа, 4) удобное скачивание архива и безопасность из-за удаления файла архива после первого скачивания.



    Config stylesheets — объект конфигурации для CSS, которые могут прменятся к разделам сайта с использованием той же логики, что и видимость блоков. Любой CSS прикреплённый к странице размещается в конце списка импорта CSS, что позволяет перекрыть существующие в теме стили.

    Custom Account Link — модуль User создаёт в меню пользователя ссылку My account с путём /user. Этот модуль позволяет переопределить заголовок ссылки или использовать в качестве заголовка имя текущего пользователя. Стандартная ссылка может быть выключена, а новая может быть создана с нужным заголовком.

    E-mail Field Formatter — форматтер для стандартного поля типа E-mail, который позволяет: рендерить почтовый адрес как ссылку mailto:; делать ссылки усечёнными с определённым количеством знаков и многоточием после усечения; добавлять свой текст, HTML-форматирование и значок Font Awesome.

    Email Blocker — блокирование исходящих почтовых сообщений. Этот модуль полезен в среде разработки, когда сообщения с сайта отправлять не нужно и исходящие сообщения могут привести к проблемам. Например, если сайт отправляет письма по cron, с выставлением счетов клиентам, которые не должны отправляться с разрабатываемой версии сайта.

    Entity Autocomplete Hierarchy — показ иерархии в полях с автозаполнением. Термины таксономии поддерживаются по умолчанию.



    Entity Theme Engine — редактирование шаблонов Twig через интерфейс сайта. Поддерживаются все объекты содержания, в том числе block_content и node.



    Entity usage views field — поле вида, которое показывает количество использований (referencing) объекта.



    Entity Visitors — показ посетителей страницы. Модуль распространяется с 3 блоками: 1) Users viewed profile block (список пользователей, заходивших в профиль), 2) Users viewed page block (список пользователей, заходивших на страницу), 3) Users viewed node block (список пользователей, заходивших в документ). Параметры позволяют настроить оповещение пользователя, если кто-то зашёл посмотреть его профиль.



    Epub Viewer — форматтер поля для стандартного типа «Файл», который позволяет посетителям читать на сайте книги в формате .epub.



    Expose Status Report — экспонирование данных со страницы /admin/reports/status в файл формата JSON. Модуль может быть полезен, если вы управляете несколькими сайтами и хотите настроить отслеживание их статуса, собирая экспонированные этим модулем данные в одном месте.

    Fakelink — создание ложных ссылок с путём #. Используйте для указания пути ссылки запись и href ссылки будет преобразован в #.



    Flexible Views — улучшение эргономики видов, путём добавления в них нескольких новых возможностей: Views format plugin: Flexible Table, Exposed Filter: Visible Column Selector, Exposed form style: Manual selection. С помощью гибких таблиц и плагинов выбора колонок, пользователи могут выбрать, какие данные они хотят в виде видеть, а какие нужно скрыть.



    Google Webfonts Helper — интеграция с сервисом Google Fonts. Модуль позовляет скачивать шрифты с сервиса Google для локального использования. Он скачает нужные файлы и сгенерирует связанную с ними библиотеку. Таким образом, доставлять посетителю шрифты сайта можно с его сервера или CDN, что ускорит загрузку сайта на стороне посетителя.



    HTML Importer — сздание документов из HTML-файлов на сервере.



    Infogram charts — интеграция с сервисом Infogram. Модуль позволяет втраивать на сайте графики Infogram через стандартный код сервиса и тектовый фильтр.



    International Phone — ввод и проверка международного кода телефонного номера на основе библиотеки intl-tel-input.



    Lightweight Groups — использование терминов таксономии в качестве групп пользователей и содержания (этот модуль похож на упрощённую версию модуля Groups). Идея следующая: 1) если у нас есть связи пользователей и термина таксономии, то фактически это группа пользователей; 2) если у нас есть связь содержания и термина таксономии, то это какая-то группа содержания; 3) если они совпадают, то это содержание принадлежит этой группе пользователей. Модуль предоставляет разные параметры для работы групп.

    Login Warning — показ сообщения с предупреждением/оповещением перед тем, как будет показана форма входа в аккаунт. Для того, чтобы форма входа показалась, посетитель должен согласиться с сообщением нажав кнопку OK. Обычно, такие сообщения используют для информирования пользователя об условиях пользования сайтом и получения его согласия.

    Math Operation — модуль добавляет на сайт новый тип поля, который содержит два текстовых поля для ввода аргументов и позволяет вычислять общее значение на основе введённых данных и арифметических операторов (+, -, *, /).

    Microsoft Azure Blob Storage — интеграция с Microsoft Azure Blob Storage.

    Modal block — показ любого блока в модальном окне. Модуль располагает большим количеством настраиваемых параметров: задержка до появления, частота обновления, показ при попытке закрытия вкладки в браузере и так далее.



    Module List For D8 — показ установленных на сайте модулей в виде таблицы, разбитый на кастомные и скачанные с drupal.org модули.



    NfP365 CRM API — API для интеграции с Microsoft Dynamics 365 для НКО.

    Node Link Report — модуль генерирует блок, в котором показывается отчёт обо всех ссылках использующихся в данном документе. Он может быть полезен в связи с тем, что ссылки в содержании документа могут находиться в разных местах — полях с текстовым редактором, полях ссылок, текстовых полях, полях связей и других местах, что затрудняет их обнаружение и проверку. Этот модуль позволяет убедиться в том, что все используемые в содержании ссылки исправны.

    Notify Bar — показ на сайте настраиваемого оповещения. Оповещение можно включить/выключить на странице настройки модуля, а также использовать для его показа блок Notify bar, который также генерируется модулем.



    Page Specific Class — добавление класса HTML-элементу body на основе пути страницы сайта.



    PHP Runtime Memory — изменение конфигурации среды PHP без изменения файла php.ini. Параметры модуля позволяют настроить следующие параметры PHP: File Upload Limit, Memory Limit, Maximum Execution Time Limit, Input Variable Limit.



    Prevent Node Delete — gредотвращение и ограничение удаления документа, когда он связан с другим документом или используется в каком-либо объекте через поле связи.

    Security Questions — Drupal 8 — модуль добавит секретные вопросы в профиль, процесс регистрации на сайте и процесс восстановления пароля.



    Shorten Bit.ly V4 — интеграция модуля Shorten и сервиса bit.ly.

    Social Tracking — отслеживание на сайте конверсии Facebook Pixel и Twitter Conversion. Модуль поддерживает событие PageView для любых путей.



    Submit and continue — добавление в формы кнопки, которая позволяет отправить данные формы, а затем перенаправить пользователя обратно на эту же форму, чтобы он мог выполнить новое действие.



    Symfony debug — замена стандартного обработчика исключений Drupal, обработчиком Symfony Debug component, который упрощает отладку путём предоставления более подробной информации.

    Taxonomy Term Glossary — использование словаря таксономии в качестве глоссария. Возможности модуля: генерация блока для поиска по терминам или буквам (простой глоссарий), сканирование и тегирование содержания (стандартно сканируются поля text_with_summary, text_long, string_long, text, entity_reference, entity_reference_revisions), показ термина в модальном окне, использование в работе JavaScript.



    User Email text format — использование HTML-форматирования и редактора CKEditor для настройки содержания писем, которые отправляются пользователю при регистрации на сайте, восстановлении пароля и так далее. Модуль не отправляет письма в формате HTML сам, он только позволяет отредактировать само содержание письма в HTML-формате. Для отправки писем используйте модули SMTP Authentication Support, Mime Mail и подобные.



    User Status Online — показ статуса пользователя на сайте: он-лайн/офф-лайн.



    View Entity Reference Field Formatter — использование вида для показа и выбора пунктов в поле связи с объектом.



    Views Default Argument: Entity Field Values — плагин вида, для использования значения текущего объекта в качестве значения по умолчанию, в контекстном фильтре. Это работает аналогично использованию значения Content ID from URL, за тем исключением, что вы можете извлекать значение любого поля, а не только ID.



    Views user field value contextual filter — расширение возможности контекстного фильтра по передаче значения поля пользователя, в качестве аргумента по умолчанию.



    Webform Autosave — автоматическое сохранение черновика веб-формы при обнаружении ввода данных или выбора элемента в форме. Для определения активности и записи данных модуль используется jQuery и AJAX.

    Webform Navigation — возможность перехода вперёд и назад по страницам веб-формы, которая использует несколько шагов.

    Webform Summation Field — модуль добавит на сайт новый тип поля Summation, с помощью которого можно делать выборку по значениям полей веб-формы. Само поле в веб-форме не показывается, оно используется только для сбора нужных данных.



    Workspaces route lock — способ блокирования произвольных данных/маршрутов в выбранных рабочих областях. Например, можно заблокировать все страницы таксономии в рабочей области Live, чтобы категории оставались одинаковыми.



    Темы


    Некоторые появившиеся в декабре темы:

    Друпал 8


    Elegant Showcase — тема оформления. Simple, Minimal and Clean Design, Responsive, Mobile-Friendly, 1-column and 2-columns layout, Image Slideshow with Caption, HTML 5, Total 11 block regions, Drupal standards compliant and Supported standard theme features, Ideal for business, company, professionals and portfolio sites.



    SeASer Blog Theme — тема оформления. Minimal but powerful Drupal 8 theme. Takes its power from Uikit. Uikit is more than a css framework. It provides dozens of commonly used functions with just one js file. Grid (smart), Slideshow, Slider (carousel), Lightbox, Masonry, Parallax, Sticky (navbar), Off-canvas (menu).






    Статистика использования Друпала



    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 5

      +1
      Спасибо! Отличная работа!
        +1
        Спасибо! Рад, что друпал снова на хабре!
          0
          Немного не следил за темой. В друпале 8-9 не появилось импорта данных как было с 6-7? Всё еще самому писать правила?
            0
            В ядре теперь есть модуль Migrate (для Drupal 7 он контрибный), но если вы импортируете что-то кастомное то все равно придется написать парочку конфигов.
              0
              Для меня раньше это было главным преимуществом, когда можно было импортировать быстро и просто что-то кастомное.
              Многие из моих знакомых из-за этого ушли с этой cms, не хватило навыков программирования, поддерживают только старые версии.

              Они не планируют полностью вернуть эту возможность в ядро?

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое