TYPO3 Extbase: запись обновления с протоколированием изменений

Когда я обновляю объект с помощью репозитория Extbase (например, в задании cron или во внешнем интерфейсе), как это ...

$myRepository->update($myObject);

и после этого я использую кнопку «Показать историю изменений / Отменить» для этой записи в TYPO3 BE, я не вижу никакой истории. Я вижу историю только при редактировании объекта в TYPO3 BE.

Как включить историю?


person Sven    schedule 17.09.2018    source источник


Ответы (1)


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

Более длинная версия: вы вроде как можете, но это потребует довольно много специального кода в вашем репозитории, который будет выполнять одно из двух:

  1. Переопределите метод update в вашем репозитории и из него активируйте DataHandler методы для обновления записи, а затем используйте сеанс сохранения, чтобы пометить ваш объект как чистый, чтобы Extbase не пыталась сохранить его снова. Обновления через DataHandler запишут историю.
  2. Также переопределите метод update, но запишите записи истории вручную, вместо того, чтобы позволять DataHandler это делать.

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

person Claus Due    schedule 17.09.2018
comment
Также отношения вспомогательных свойств, таких как изображения или что-то еще (M: N, 1: N и т.д.), должны выполняться вручную с использованием DataHandler. Дополнительные сведения о DataHandler можно найти здесь: docs.typo3.org / typo3cms / CoreApiReference / ApiOverview / - person René Pflamm; 17.09.2018