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 с возможностью отката/восстановления.