README.md

    WP Change Log

    Screenshot Screenshot Screenshot


    Логирование любых изменений внутри сайта/мультисайта 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
    • 1.0
      • Начальное исполнение
    Описание

    Логирование любых изменений внутри сайта/мультисайта WP с возможностью отката/восстановления.

    Конвейеры
    0 успешных
    0 с ошибкой