You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
160 lines
5.5 KiB
160 lines
5.5 KiB
<?php |
|
|
|
/** |
|
* @file |
|
* Implements hooks that get tested by islandora_hooks.test |
|
*/ |
|
|
|
/** |
|
* Implements hook_islandora_object_alter(). |
|
*/ |
|
function islandora_hooks_test_islandora_object_alter(AbstractObject $object, array &$context) { |
|
switch ($context['action']) { |
|
case 'ingest': |
|
if ($object->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) { |
|
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; |
|
} |
|
} |
|
} |
|
|
|
/** |
|
* 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; |
|
} |
|
}
|
|
|