When I update an object with an Extbase repository (e.g. in a cronjob or in the frontend) like this...
$myRepository->update($myObject);
and
Short version: you can't, because the history is for changes done in the backend interface only.
Longer version: you sort of, kind of can, but that would involve quite a bit of custom code in your repository which would do one of two things:
update
method on your repository and from it, fire DataHandler
methods to update the record - then use the persistence session to mark your object as clean so Extbase doesn't try to persist it again. Updates via DataHandler
will write the history.update
method but write the history records manually instead of allowing DataHandler
to do it.The first solution is very complex to handle. The second one means you have to implement a bit of (duplicated) code and likely won't cause all the usual hooks to trigger in TYPO3 (which is usually fine but does sometimes cause trouble with third party extensions). If you are forced to do this, I would choose the second solution. But I would first of all consider if perhaps the need to have BE-specific history for anonymous (no BE user) editing that's bordering on abuse of what that undo history was also intended for: tracing who made a change.