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.
168 lines
5.0 KiB
168 lines
5.0 KiB
<?php |
|
|
|
/** |
|
* @file |
|
* This file defines the hooks that fedora_repository (islandora) |
|
* makes available. |
|
*/ |
|
|
|
/** |
|
* Implements hook_islandora_tabs(). |
|
* This hook lets one add tabs to the object page in Islandora. |
|
* |
|
* @param array $content_models |
|
* An Array of content model objects. A content model is only included |
|
* if the object actualy exists with a ISLANDORACM datastream. |
|
* @param string $pid |
|
* The Fedora PID of the object who's page is firing the hook. |
|
* @param int $page_number |
|
* Page number for collection views. |
|
* |
|
* @return array |
|
* $tabset a tab definition. |
|
*/ |
|
function hook_islandora_tabs($content_models, $pid, $page_number) { |
|
|
|
$tabset['A TAB'] = array( |
|
'#type' => 'tabpage', |
|
'#title' => t('A TITLE'), |
|
'#content' => 'content' |
|
); |
|
|
|
return $tabset; |
|
} |
|
|
|
/** |
|
* Implements hook_islandora_tabs_alter(). |
|
* This fires after the tabs have been populated. |
|
* |
|
* @param array $tabs |
|
* The tab set to be altered. |
|
*/ |
|
function hook_islandora_tabs_alter($tabs) { |
|
$tabs['fedora_object_details']['altered']['#value'] = '<H5>ALTERED</H5>'; |
|
} |
|
|
|
/** |
|
* Implements hook_postprocess_solution_pack(). |
|
* This hook fires after the batch job to ingest a solution pack finishes. |
|
* |
|
* @param string $module |
|
* Name of the module that spcified the solution pack. |
|
*/ |
|
function hook_fedora_repository_postprocess_solution_pack($module) { |
|
|
|
// Do something that requires the objects to be ingested ie. add XACML. |
|
return; |
|
|
|
} |
|
|
|
/** |
|
* Implements hook_required_fedora_objects(). |
|
* This hook lets one add objects to the repository through the |
|
* solution pack interface. |
|
* |
|
* @return array |
|
* array( 'path-to-foxml-file', 'pid', 'dsid', 'path-to-datastream-file', |
|
* int dsversion, boolean required) |
|
*/ |
|
function hook_required_fedora_objects() { |
|
return array( |
|
'fedora_repository' => array( |
|
'module' => 'fedora_repository', |
|
'title' => 'Islandora Core', |
|
'objects' => array( |
|
array( |
|
'pid' => 'islandora:collectionCModel', |
|
'label' => 'Islandora Collection Content Model', |
|
'dsid' => 'ISLANDORACM', |
|
'datastream_file' => "./$module_path/content_models/COLLECTIONCM.xml", |
|
'dsversion' => 2, |
|
'cmodel' => 'fedora-system:ContentModel-3.0', |
|
), |
|
array( |
|
'pid' => 'islandora:root', |
|
'label' => 'Islandora Top-level Collection', |
|
'cmodel' => 'islandora:collectionCModel', |
|
'datastreams' => array( |
|
array( |
|
'dsid' => 'COLLECTION_POLICY', |
|
'datastream_file' => "./$module_path/collection_policies/COLLECTION-COLLECTION POLICY.xml", |
|
), |
|
array( |
|
'dsid' => 'TN', |
|
'datastream_file' => "./$module_path/images/Gnome-emblem-photos.png", |
|
'mimetype' => 'image/png', |
|
), |
|
), |
|
), |
|
), |
|
), |
|
); |
|
} |
|
|
|
/** |
|
* Implements hook_fedora_repository_can_ingest(). |
|
* Override ingest permissions. |
|
* (from islandora_workflow) |
|
* |
|
* @deprecated |
|
* Deprecated in favour of hook_fedora_repository_check_perm(). |
|
* @param string $collection_pid |
|
* The PID of the collection |
|
* |
|
* @return boolean |
|
* TRUE if the user can ingest into the specified collection, FALSE otherwise. |
|
*/ |
|
function hook_fedora_repository_can_ingest($collection_pid) { |
|
|
|
module_load_include('inc', 'islandora_workflow', 'islandora_workflow.permissions'); |
|
return (islandora_workflow_user_collection_permission_check($collection_pid) !== FALSE); |
|
|
|
} |
|
|
|
/** |
|
* Implements hook_fedora_repository_check_perm(). |
|
* |
|
* Hook to allow other modules to allow or deny operations on conditions other |
|
* than the explicit Drupal permissions. |
|
* |
|
* @param string $op |
|
* A string representing the operation to be performed. |
|
* @param string|null $pid |
|
* A string containing the Fedora PID on which the operation is to be |
|
* performed. The (default) value of NULL will use the PID indicated by the |
|
* fedora_repository_pid Drupal variable. |
|
* @param object|null $as_user |
|
* An object representing the user for whom to check the permissions (as |
|
* given by user_load or the $user global). The (default) value of NULL will |
|
* cause permissions to be evaluated for the current user (from the $user |
|
* global). |
|
* |
|
* @return boolean|null |
|
* Either a boolean permitting (TRUE) or forbidding (FALSE) an operation, or |
|
* NULL to make no assertion. |
|
*/ |
|
function hook_fedora_repository_check_perm($op, $pid = NULL, $as_user = NULL) { |
|
return NULL; |
|
} |
|
|
|
/** |
|
* Implements hook_islandora_object_event(). |
|
* |
|
* This hook allows modules to listen to most object events; anything that goes through |
|
* Fedora_Item::soap_call will be passed to hook implementers. |
|
* |
|
* Implementing code should be constructed to avoid infinite loops if cascading functions. |
|
* |
|
* @param $function |
|
* The SOAP function that has been called. |
|
* @param $parameters |
|
* The parameters sent to the SOAP call. |
|
* @param $result |
|
* The result of the SOAP call. |
|
*/ |
|
function hook_islandora_object_event($function, $parameters, $result) { |
|
// Respond to a SOAP event. |
|
} |
|
|
|
|