Using standard subplugin support, this commits implements
the restore of logstore subplugins in general and the
standard logstore is particular. Notes:
- TODO: Decide about these 2 pending issues:
1) Some logs are already created (events fired) by the restore process itself. Every time
an API is used and it fires events... corresponding (and actual!)
logs are created. We need to prevent restore to duplicate them (or,
alternatively, stop firing events when restore is happening).
2) There are 2 pieces of information in the logs that, right now, can
not be restored, because the process does not know enough to be able
to remap that information to its new counterparts. We are talking
about objectid and other columns. So we need to specify, in some way
understandable by restore, to which existing mappings they correspond
to.
Using standard subplugin support, this commit implements
the backup of logstore subplugins in general and the
standard logstore in particular. Notes:
- Uses a custom final element (base64_encode_final_element) to
support the storage of serialized 'other' information in logs.
- Organization: Instead of directly extending backup_subplugin,
every logstore extends backup_tool_log_logstore_subplugin just
in case any shared code is needed in the future.
- Implements both course and activity logs, sharing the structure
completely (both are based in contextid to pick the target
information, from database or whatever other logstores use).