WP Change Log
Логирование любых изменений внутри сайта/мультисайта WP с возможностью отката/восстановления.
Описание
- Отдельное хранилище в БД для лога
- По умолчанию записи хранятся 14 дней (есть опция), циклическая запись
- Механизм чтения логов и поиска нужной информации (объекта, события)
- Мониторинг плагинов, изменений постов, таксономий, пользователей и избранных опций
- Встроены инструменты очистки и оптимизации БД
Краткие инструкции
Настройки
Прежде всего, после активации плагина, необходимо установить опции для мониторинга.
- По умолчанию мониторинг
НЕ АКТИВЕН!
Переходим в меню “Инструменты” -> “Лог изменений”. Далее - вкладка “Настройки”.
Хранение записей
Указано кол-во дней цикла перезаписи журнала. По умолчанию - 14 дней. Также здесь отображается статус цикла.
- Если всё хорошо, статус цикла обычно выглядит так
Статус цикла: ENABLED (2023-01-30 02:00:00)
- Показан актуальный статус события, дата активации и время ежедневного срабатывания.
- Если всё хорошо, статус цикла обычно выглядит так
Мониторинг
- Активен или отключен. По умолчанию - отключен, поскольку опции (объекты наблюдения) не выбраны.
Объекты мониторинга
Необходимо указать, какие объекты будут подвержены мониторингу.
Посты
WP_Posts - все типы постов в системе будут подвержены анализу при каждом изменении.
- Также будут учитываться обновления отдельных метаданных на каждом из постов.
Рубрики
- WP_Term - любые таксономии, рубкрики, тэги, категории и т.д. - все изменения.
Плагины
Будет произведен монитогинг на предмет активации и деактивации плагинов блога.
Установка и удаление плагина не отслеживаются.
Пользователи
- Все данные, включая опции перевода имени, будут под наблюдением.
Мониторинг опций
Здесь (по умолчанию) представлены базовые опции для мониторинга. Можно удалить или добавить наименования опций.
Если нет понимания, что есть опция блога, а что - опция сайта, лучше оставить списки опций по умолчанию.
Сохранить
После сохранения производится активация (реактивация) мониторинга и цикла перезаписи.
Лог
На вкладке “Лог” представлены (по умолчанию) последние 50
записей. Реализован infinite scroll для списка.
Реализованы фильтры и поиск, а также сортировка по значениям списка.
Управление
Элементы управления в порядке появления на экране - слева направо сверху вниз
Обновить
- Перезагружает список записей журнала с сервера. По умолчанию автообновление происходит каждые 15 секунд.
Поиск по журналу
- Полнотекстовый поиск по всем записям журнала. Обращаем внимание, что поиск индексирует только краткое содержание (изменения).
Фильтр по...
- Позволяет выбрать дату/пользователя/тип объекта/событие для фильтрации записей.
Сброс
- Сбрасывает все значения фильтров и поиска, восстанавливает состояние списка до фильтрации.
Удалить выбранные
- Если есть отмеченные элементы журнала - удаляет их (безвозвратно).
Очистить
- Запускает процедуру удаления тех записей, которые старше количества дней цикла.
Удалить всё
- Полная очистка всех записей журнала. При этом сбрасываются счетчики лога (начинаться будут вновь с единицы).
Управление на элементе списка
Просмотреть
- Детальное отображение записи журнала с дельтой изменений и базовой информацией по объекту.
Восстановить
- Каждая запись в журнале хранит оригинальное состояние объекта до изменений. Можно восстановить объект полностью.
Удалить
- Безвозвратно удалить запись журнала.
Тестирование
Для тестирования списка журнала (автозаполнения) можно применить автозаполнение - использовать GET параметр &testlist=
со значением временного штампа (Unix Timestamp) не позднее 30 секунд от текущего времени.
Сгенерировать такое значение можно в консоли php -a > echo time();
или при помощи веб-сервисов (например, https://www.unixtimestamp.com/).
При использовании параметра &testlist=
будет произведена генерация 500 новых записей со случайными значениями. Можно протестировать просмотр, фильтры, поиск и подгрузку/обновление записей журнала.
Для тестирования функций (восстановление, мониторинг) следует пройти полный путь от установки опций до внесения изменений над тем или иным объектом (пост/рубрика/пользователь/плагин/опция). Быть нужно очень внимательным при тестировании, особенно при восстановлении - ни в коем случае не восстанавливать тестовые события (из автоматически сгенерированного списка).
Тестирование цикла перезаписи подтверждено при условии значния ENABLED
для статуса цикла. Добавлен также GET параметр cleanolder
(целое число дней, >=1), позволяющий выполнить/форсировать очистку для произвольного кол-ва дней цикла. Например, &cleanolder=2
очистит/удалит все записи старше 2 дней. Обратить внимание следует на то, что удаление происходит для вхождений старше N дней от текущего времени
. По умолчанию автоочистка происходит в 02:00 ежедневно.
Версия 1.5
1.5
- Исправлен серъезный баг при сохранении неизменного объекта (пустая дельта и/или пустые метаданные)
1.4
- Учет и восстановление для меток - добавлен сброс кэша на таксономиях постов
- Сделано исправление для
При добавлении и удалении пользователя создается лог с одинаковой пометкой "Removed"
1.3
- Правка: насильный сброс кэша при восстановлении любых объектов
- Правка: мониторинг конечного (из корзины) удаления поста и пользователя (из листинга).
- 1.2
- Правка: сброс кэша на пользователях, правка для terms и term-relations.
- Добавлено: bulk операция удаления записей, url к объекту записи, отслеживание статуса поста при изменении
- Автообновление списка
- 1.1
- Правка: ajax вызовы и bulk операции, параметр очистки
cleanolder
- Правка: ajax вызовы и bulk операции, параметр очистки
- 1.0
- Начальное исполнение
Описание
Логирование любых изменений внутри сайта/мультисайта WP с возможностью отката/восстановления.