id == 'test:testIngestedObjectHook') { $_SESSION['islandora_hooks']['alter'][ISLANDORA_OBJECT_INGESTED_HOOK] = TRUE; if ($object->label == 'block') { $context['block'] = TRUE; } } break; case 'modify': if ($object->id == 'test:testModifiedObjectHook') { $_SESSION['islandora_hooks']['alter'][ISLANDORA_OBJECT_MODIFIED_HOOK] = TRUE; if (isset($context['params']['label']) && $context['params']['label'] == 'block') { $context['block'] = TRUE; } } elseif ($object->id == 'test:testPurgedObjectHook') { $_SESSION['islandora_hooks']['alter'][ISLANDORA_OBJECT_PURGED_HOOK] = TRUE; if (isset($context['params']['label']) && $context['params']['label'] == 'block') { $context['block'] = TRUE; } elseif (isset($context['params']['label']) && $context['params']['label'] == 'delete') { $context['delete'] = TRUE; } } break; case 'purge': if ($object->id == 'test:testPurgedObjectHook') { $_SESSION['islandora_hooks']['alter'][ISLANDORA_OBJECT_PURGED_HOOK] = TRUE; if ($object->label == 'block') { $context['block'] = TRUE; } elseif ($object->label == 'delete') { $context['delete'] = TRUE; } } break; } } /** * Implements hook_islandora_object_alter(). */ function islandora_hooks_test_islandora_datastream_alter(AbstractObject $object, AbstractDatastream $datastream, array &$context) { switch ($context['action']) { case 'ingest': if ($object->id == 'test:testIngestedDatastreamHook') { $_SESSION['islandora_hooks']['alter'][ISLANDORA_DATASTREAM_INGESTED_HOOK] = TRUE; if ($datastream->label == 'block') { $context['block'] = TRUE; } } break; case 'modify': if ($object->id == 'test:testModifiedDatastreamHook') { $_SESSION['islandora_hooks']['alter'][ISLANDORA_DATASTREAM_MODIFIED_HOOK] = TRUE; if (isset($context['params']['dsLabel']) && $context['params']['dsLabel'] == 'block') { $context['block'] = TRUE; } } elseif ($object->id == 'test:testPurgedDatastreamHook') { $_SESSION['islandora_hooks']['alter'][ISLANDORA_DATASTREAM_PURGED_HOOK] = TRUE; if (isset($context['params']['dsLabel']) && $context['params']['dsLabel'] == 'block') { $context['block'] = TRUE; } elseif (isset($context['params']['dsLabel']) && $context['params']['dsLabel'] == 'delete') { $context['delete'] = TRUE; } } break; case 'purge': if ($object->id == 'test:testPurgedDatastreamHook') { $_SESSION['islandora_hooks']['alter'][ISLANDORA_DATASTREAM_PURGED_HOOK] = TRUE; if ($datastream->label == 'block') { $context['block'] = TRUE; } elseif ($datastream->label == 'delete') { $context['delete'] = TRUE; } } break; } } /** * Implements hook_islandora_object_ingested(). */ function islandora_hooks_test_islandora_object_ingested(AbstractObject $object) { if ($object->id == 'test:testIngestedObjectHook') { $_SESSION['islandora_hooks']['hook'][ISLANDORA_OBJECT_INGESTED_HOOK] = TRUE; } } /** * Implements hook_islandora_object_modified(). */ function islandora_hooks_test_islandora_object_modified(AbstractObject $object) { if ($object->id == 'test:testModifiedObjectHook') { $_SESSION['islandora_hooks']['hook'][ISLANDORA_OBJECT_MODIFIED_HOOK] = TRUE; if ($_SESSION['islandora_hooks']['iteration'][ISLANDORA_OBJECT_MODIFIED_HOOK]++ < 3) { $new_label = 'New Label! + ' . $_SESSION['islandora_hooks']['iteration'][ISLANDORA_OBJECT_MODIFIED_HOOK]; $object->label = $new_label; } } } /** * Implements hook_islandora_object_purged(). */ function islandora_hooks_test_islandora_object_purged($pid) { if ($pid == 'test:testPurgedObjectHook') { $_SESSION['islandora_hooks']['hook'][ISLANDORA_OBJECT_PURGED_HOOK] = TRUE; } } /** * Implements hook_islandora_datastream_ingested(). */ function islandora_hooks_test_islandora_datastream_ingested(AbstractObject $object, AbstractDatastream $datastream) { if ($object->id == 'test:testIngestedDatastreamHook' && $datastream->id == "TEST") { $_SESSION['islandora_hooks']['hook'][ISLANDORA_DATASTREAM_INGESTED_HOOK] = TRUE; } } /** * Implements hook_islandora_datastream_modified(). */ function islandora_hooks_test_islandora_datastream_modified(AbstractObject $object, AbstractDatastream $datastream, array $params) { if ($object->id == 'test:testModifiedDatastreamHook' && $datastream->id == "TEST") { $_SESSION['islandora_hooks']['hook'][ISLANDORA_DATASTREAM_MODIFIED_HOOK] = TRUE; if ($_SESSION['islandora_hooks']['iteration'][ISLANDORA_DATASTREAM_MODIFIED_HOOK]++ < 3) { $new_label = 'New Label! + ' . $_SESSION['islandora_hooks']['iteration'][ISLANDORA_DATASTREAM_MODIFIED_HOOK]; $datastream->label = $new_label; } if (isset($params['mimeType']) && $params['mimeType'] == 'mr/mime') { $new_label = 'New Label! (Mr. Mime)'; $object->label = $new_label; } } } /** * Implements hook_islandora_datastream_purged(). */ function islandora_hooks_test_islandora_datastream_purged(AbstractObject $object, $dsid) { if ($object->id == 'test:testPurgedDatastreamHook' && $dsid == "TEST") { $_SESSION['islandora_hooks']['hook'][ISLANDORA_DATASTREAM_PURGED_HOOK] = TRUE; } }