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.
107 lines
3.0 KiB
107 lines
3.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_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', |
|
), |
|
), |
|
), |
|
), |
|
), |
|
); |
|
} |
|
|
|
/** |
|
* Override ingest permissions. |
|
* (from islandora_workflow) |
|
* |
|
* @param string $collection_pid |
|
* The PID of the collection |
|
* @return boolean |
|
* TRUE if the user can ingest into the specified collection, FALSE otherwise. |
|
*/ |
|
function islandora_can_ingest($collection_pid) { |
|
|
|
module_load_include('inc', 'islandora_workflow', 'islandora_workflow.permissions'); |
|
return (islandora_workflow_user_collection_permission_check($collection_pid) !== FALSE); |
|
|
|
}
|
|
|