Инфраструктура функционального плагина Customize Snapshots, известная под техническим термином Customize Changesets (наборы изменений для кастомайзера), на днях была включена в ядро WordPress 4.7. Проект, который раньше носил название Customizer Transactions, принес необходимую инфраструктуру, требуемую для возможности сохранения сессий в виде черновиков. Это позволит WordPress сохранять изменения, сделанные в кастомайзере, таким образом, чтобы ими можно было затем поделиться с другими людьми, просмотреть вне iframe и даже опубликовать.
Первоначальная итерация Customize Changesets будет поставляться без какого-либо интерфейса, однако даже это открывает бескрайние возможности по созданию массы новых функций в кастомайзере.
«Новые API позволяют реализовать в будущих версиях WP и в функциональных плагинах уникальные возможности, нацеленные на пользователей, включая сохранение долговечных черновиков, передачу наборов изменений как ожидающих рассмотрения (pending), планирование изменений, просмотр изменений во фронтэнде без использования iframe, шаринг URL превью с другими пользователями, которые не имеют доступа к кастомайзеру, и многое другое», отметил руководитель проекта Уэстон Рутер в предложении по слиянию.
Пользователи смогут обнаружить инфраструктуру Customize Changesets в WordPress двумя способами. Во-первых, к URL добавляется новый параметр запросов customize_uuid. Во-вторых, пользователи могут перезагружать страницы в кастомайзере, и изменения, которые уже были сделаны, будут сохраняться.
«В будущих релизах мы увидим новые интерфейсы, которые позволят использовать возможности, предлагаемые наборами изменений (changesets)», отметил Рутер. «Новые интерфейсы позволят планировать изменения, отменять последнее изменение, выводить лог аудита (историю ревизий) для изменений, совместно редактировать изменения для кастомайзера и т.д. Мы увидим массу новых проектов, основанных на этих возможностях».
Рутер также отметил, что наборы изменений для кастомайзера позволили исправить «несколько старых проблем, связанных с несовместимостью JS-скриптов, запущенных во фронтэнде при просмотре сайта в кастомайзере». Соответственно, это поможет облегчить процесс настройки сайта в кастомайзере для пользователей.
Когда я спросил Рутера о том, будет ли интерфейс для ядра взят из плагина Customize Snapshots, он ответил, что не знает этого. Возможно, команда вынесет его возможности в отдельный плагин Customize Changesets UI, а возможно, она просто адаптирует уже существующий плагин для использования наборов изменений. Пока неизвестно.
«В любом случае возможности интерфейса будут реализованы в виде функционального плагина перед тем, как внести функционал в ядро», отметил Рутер. «Вся фундаментальная составляющая Snapshots, адаптированная для наборов изменений, теперь появится в ядре. Таким образом, далее нам нужно переработать код Snapshots для повторного использования наборов изменений».
Начиная с этого момента, участники начнут проектировать интерфейс для управления наборами изменений, что включает в себя вывод существующих наборов и их версий, а также переключение статусов постов с наборами изменений от автоматического черновика к черновику (draft), ожидающему рассмотрения (pending) или запланированному к публикации (future). Рутер призывает всех заинтересованных в проектировании интерфейса для наборов изменений подключиться к разработке плагина Customize Snapshots на GitHub.
Источник: wptavern.com