It's a bit leaky in that it makes assumptions about the members that will exist
on AbstractObjects, but we can't make cloning work at the moment as it doesn't
really work well with inheritance, every decendent would have to define __clone
functions properly and I figured a wrapper function like this would be easier
to support in the long term, until we make the movement to decorated objects.
This function will check the given object/datastream against the given
permissions and required content models using the given user. If no user is
given the user identified by the GET token will be used, if no token is present
the global user will be used.
islandora_delete_object() no longer throws. Now it will only return TRUE if
successful, FALSE otherwise as expected.
This fixes the issue where solution packs were not reinstalling existing objects.
hook_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_CMODEL_PID_islandora_object_alter(AbstractFedoraObject $object, array &$context)
hook_islandora_datastream_alter(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_CMODEL_PID_DSID_islandora_datastream_altezr(AbstractFedoraObject $object, AbstractFedoraDatastream $datastream, array &$context)
hook_islandora_object_ingested(FedoraObject $object)
hook_CMODEL_PID_islandora_object_ingested(FedoraObject $object)
hook_islandora_object_modified(FedoraObject $object)
hook_CMODEL_PID_islandora_object_modified(FedoraObject $object)
hook_islandora_object_purged($pid)
hook_CMODEL_PID_islandora_object_purged($pid)
hook_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_DSID_islandora_datastream_ingested(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_CMODEL_PID_islandora_datastream_modified(FedoraObject $object, FedoraDatastream $datastream)
hook_islandora_datastream_purged(FedoraObject $object, $dsid)
hook_CMODEL_PID_islandora_datastream_purged(FedoraObject $object, $dsid)
Also updated the testing scripts to support different configurations, as well
wrote tests for all the implemented hooks. This requires the latest version
of Tuque so be sure to update.
The table printed by solution_packs.inc used to not mention
which datastreams were modified. We do that now.
We also test the MD5 of the datastream to make sure that it is
actually the same.