Команда Theme Review, возглавляющая проект «Новые пакеты», запускает решение для уведомлений администратора

Опубликовано: 2019-09-19

В рамках плана группы проверки темы WordPress по обузданию навязчивых уведомлений администратора команда опубликовала версию 1.0 своего пакета уведомлений администратора. Новый пакет предоставляет стандартный API для авторов тем для отображения уведомлений администратора.

Ари Статопулос стал руководителем проекта пакетов в конце августа. Статопулос является основным разработчиком и создателем высоко оцененной среды настройки Kirki, которая в настоящее время имеет более 300 000 активных установок в виде плагина. Однако фреймворк также доступен в виде отдельных модулей, которые авторы тем могут включать в свои темы.

Пакет «Уведомления администратора» — это третий пакет, созданный командой, и первый, инициатором которого выступил Статопулос.

Добавление основного уведомления администратора в WordPress является относительно простым для большинства разработчиков. Однако обработка таких функций, как постоянные отклоняемые действия, более сложна. Пакет уведомлений администратора обрабатывает это из коробки.

Некоторые опции пакета включают возможность:

  • Установите заголовок и сообщение.
  • Выберите тип, который добавляет соответствующий класс пользовательского интерфейса (информация, успех, предупреждение, ошибка).
  • Выберите, на каких экранах администратора отображается уведомление.
  • Ограничьте сообщение возможностями пользователя, чтобы оно не отображалось для всех пользователей.
Снимок экрана с информацией, уведомлениями об успехах, предупреждениями и ошибками в пакете уведомлений администратора.

На приведенном выше снимке экрана показан пример основного вывода уведомления администратора для четырех доступных типов. Действие отклонения обрабатывается JavaScript и работает без перезагрузки страницы. После отклонения пользователи больше не увидят уведомление.

«Я думаю, что самым сложным в этом было решить, насколько строгими мы хотели бы, чтобы это было», — сказал Статопулос о проблемах, связанных с созданием этого пакета. Пакет ограничивает авторов тем элементами абзаца, ссылки, жирного шрифта и курсива в версии 1.0. Это не оставляет много места для экспериментов, но целью является стандартизация. Чем больше разрешенных элементов, тем больше вероятность того, что инструмент не решит проблему команды по сохранению ненавязчивых уведомлений администратора.

Уведомления пользователей — сложная проблема

WordPress не предоставляет формальный API для пользовательских уведомлений. Тем не менее, он предоставляет стандартный набор классов CSS и хук для прикрепления уведомлений. В Кодексе также есть несколько примеров передового опыта. Отсутствие формального API оставило авторов тем и плагинов наедине с собой. Пользователи пострадали из-за сильно различающихся реализаций и общих проблем, таких как реклама, которую нельзя закрыть.

Тим Хенгевельд предложил API Центра уведомлений на Trac в 2018 году. В заявке активно обсуждаются и некоторые предложения по пользовательскому интерфейсу. Предложение по-прежнему помечено как «Ожидает рассмотрения», и маловероятно, что оно будет выпущено раньше, чем WordPress 5.4 или новее.

В настоящее время многие плагины и темы также используют уведомления администратора для регистрации пользователей, что является отдельной проблемой, требующей решения. Есть тикет 4-летней давности, в котором обсуждается адаптация новых пользователей WordPress, но не так много действий, чтобы решить эту проблему для плагинов и тем.

Хотя пакет TRT не решает всех проблем, связанных с уведомлениями пользователей, он помогает ограничить некоторые краткосрочные повреждения.

Дополнительные пакеты в разработке

В настоящее время создается больше пакетов, а другие находятся на стадии планирования.

Цель всего проекта — предоставить авторам тем встраиваемые модули, которые они могут связать со своими темами. Все пакеты написаны на PHP 5.6+ в надежде подтолкнуть авторов тем к более современным методам кодирования (условно говоря, поскольку в этом году будет выпущен PHP 7.4). Это также поможет упростить процесс проверки, если больше авторов тем примут пакеты, а не будут создавать все самостоятельно.

«Если мы создадим пакеты для наиболее востребованных вещей, мы надеемся, что людям будет проще создавать качественные темы», — пояснил Статопулос. «Я думаю о пакетах как о строительных блоках тем».

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

«После того, как мы создадим основы, я хочу сосредоточиться на пакетах, которые улучшат оперативность и конфиденциальность в темах — две области, в которых темы не оправдывают ожиданий», — сказал он. «Это помогло бы многим людям, и это, в конечном счете, наша цель».

За последние несколько лет авторы тем привыкли устанавливать пакеты JavaScript и CSS через NPM. Однако их использование Composer в качестве менеджера зависимостей PHP отстает. Отчасти это может быть связано с прежним нежеланием WordPress повышать минимальную версию PHP. Многие пакеты, доступные в Packagist, основном репозитории Composer, не работают со старыми версиями PHP. Недавний переход WordPress на PHP 5.6+ и планы перехода на 7+ в будущем могут подтолкнуть больше авторов тем к рассмотрению управления зависимостями PHP.

У TRT есть учетная запись Packagist, и все его пакеты можно устанавливать через Composer.

Пока нет необходимости использовать пакеты

В настоящее время нет планов, чтобы TRT начала требовать использования этих пакетов для определенных функций, но несколько членов команды предложили это сделать.

«Есть веские причины для принудительного использования этих пакетов, но это не может произойти в одночасье», — сказал Статопулос. «Мы хотим, чтобы темы в репозитории имели какие-то стандарты, это не может быть дикий запад. Качество кода должно улучшиться. Эти пакеты — способ облегчить жизнь людей и, в конечном счете, сэкономить время для всех».

Статопулос открыт для авторов тем, создающих собственные реализации, если они могут улучшить то, что создала команда, но он предпочитает, чтобы авторы «обсуждали свои идеи в репозитории пакетов и отправляли запрос на включение, чтобы все сообщество могло извлечь выгоду».

Привлечение авторов темы — одна из областей, где команда столкнулась с трудностями. Вклад в пакеты может принести пользу всему сообществу. «Большинство людей даже не знают о них, поскольку они нигде не указаны», — сказал Статопулос. «В настоящее время авторам тем приходится их искать, а для того, чтобы найти их, кто-то должен сказать им, что они существуют (чего не происходит)». Одним из следующих шагов будет получение пакетов, перечисленных в документации TRT.

Совместная работа над общими функциями тем может стать связующим звеном между авторами тем и рецензентами, что позволит им вместе решать проблемы.


Примечание. Автор этой статьи участвовал в первоначальном предложении пакетов тем, а разработчик — в его первоначальных выпусках пакетов.