Drupal modules for browsing and managing Fedora-based digital repositories.
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.
 
 
 
 

268 lines
7.4 KiB

<?php
/**
* @file
* This file lists and documents all available hook functions to manipulate data.
*/
/**
* Generate a repository objects view.
*
* @param FedoraObject $fedora_object
* A Tuque FedoraObject being operated on.
* @param object $user
* The user accessing the object.
* @param string $page_number
* The page in the content.
* @param string $page_size: The size of the page.
*
* @return array
* An array whose values are markup.
*/
function hook_islandora_view_object($fedora_object, $user, $page_number, $page_size) {}
/**
* Generate an object's display for the given content model.
*
* Content models PIDs have colons and hyphens changed to underscores, to
* create the hook name.
*
* @param type $fedora_object
* A Tuque FedoraObject
*
* @return array
* An array whose values are markup.
*/
function hook_CMODEL_PID_islandora_view_object($fedora_object) {}
/**
* Alter display output after it has been generated.
*
* @param FedoraObject $fedora_object
* A Tuque FedoraObject being operated on.
* @param array $arr
* An arr of rendered views.
*/
function hook_islandora_view_object_alter(&$fedora_object, &$arr) {}
/**
* Generate an object's management display.
*
* @param type $fedora_object
* A Tuque FedoraObject
*
* @return array
* An array whose values are markup.
*/
function hook_islandora_edit_object($fedora_object) {}
/**
* Generate an object's management display for the given content model.
*
* Content models PIDs have colons and hyphens changed to underscores, to
* create the hook name.
*
* @param type $fedora_object
* A Tuque FedoraObject
*
* @return array
* An array whose values are markup.
*/
function hook_CMODEL_PID_islandora_edit_object($fedora_object) {}
/**
* Allow management display output to be altered.
*
* @param type $fedora_object
* A Tuque FedoraObject
* @param type $arr
* an arr of rendered views
*/
function hook_islandora_edit_object_alter(&$fedora_object, &$arr) {}
/**
* Allows modules to add to an objects ingest process.
*
* @param FedoraObject $fedora_object
* A Tuque FedoraObject.
*/
function hook_islandora_ingest_post_ingest($fedora_object) {}
/**
* Allow modules to add to the ingest process of a specific content model.
*/
function hook_CMODEL_PID_islandora_ingest_post_ingest($fedora_object) {}
/**
* Allows modules to add to a repository objects view/edit(/misc) process.
*
* If you implement this hook you must also register your module with
* hook_islandora_hook_info().
*
* @param FedoraObject $fedora_object
* A Tuque FedoraObject.
*
* @return array|null
* An associative array with 'deleted' mapped to TRUE--indicating that the
* object should just be marked as deleted, instead of actually being
* purged--or NULL/no return if we just need to do something before the
* is purged.
*/
function hook_islandora_pre_purge_object($fedora_object) {}
/**
* Allow modules to react to the purge process of a specific content model.
*
* @see hook_islandora_pre_purge_object()
*/
function hook_CMODEL_PID_islandora_pre_purge_object($fedora_object) {}
/**
* Register potential ingest routes.
*
* Implementations should return an array containing possible routes.
*/
function hook_islandora_ingest_registry($collection_object) {
$reg = array(
array(
'name' => t('Ingest route name'),
'url' => 'ingest_route/url',
'weight' => 0,
),
);
return $reg;
}
/**
* Register a datastream edit route/form.
*
* @param $islandora_object
* @param $ds_id
*/
function hook_islandora_edit_datastream_registry($islandora_object, $ds_id) {}
/**
* Alter an object before it gets used further down the stack.
*
* @param type $object
* A Tuque FedoraObject
*/
function hook_islandora_object_alter($fedora_object) {}
/**
* Allow modification of an object before ingesting.
*
* @param type $islandora_object
* A Tuque FedoraObject
*/
function hook_islandora_ingest_pre_ingest($islandora_object) {}
/**
* Allow modification of objects of a certain content model before ingesting.
*
* @see hook_islandora_ingest_pre_ingest()
*/
function hook_CMODEL_PID_islandora_ingest_pre_ingest($islandora_object) {}
/**
* Allow modules to setup for the purge of a datastream.
*
* @param object $datastream
* A Tuque FedoraDatastream object.
*/
function hook_islandora_pre_purge_datastream($datastream) {}
/**
* Allow modules to react after a datastream is purged.
*
* @param object $object
* A Tuque FedoraObject.
* @param string $dsid
* A id of the former datastream.
*/
function hook_islandora_post_purge_datastream($object, $dsid) {}
/**
* Allow modules to react post-purge.
*
* @param string $object_id
* The former object's PID.
* @param array $content_models
* An array containing the models to which the former object.
*/
function hook_islandora_post_purge_object($object_id, $content_models) {}
/**
* Registry hook for required objects.
*
* Solution packs can include data to create certain objects that describe or
* help the objects it would create. This includes collection objects and content
* models.
*
* @see islandora_solution_packs_admin()
* @see islandora_install_solution_pack()
* @example islandora_islandora_required_objects()
*/
function hook_islandora_required_objects() {}
/**
* Registry hook for viewers that can be implemented by solution packs.
*
* Solution packs can use viewers for their data. This hook lets Islandora know
* which viewers there are available.
*
* @see islandora_get_viewers()
* @see islandora_get_viewer_callback()
*/
function hook_islandora_viewer_info() {}
/**
* Returns a list of datastreams that are determined to be undeletable.
*/
function hook_islandora_undeletable_datastreams(array $models) {}
/**
* Define steps used in the islandora_ingest_form() ingest process.
*
* @param array $form_state
* An array containing the form_state, on which infomation from step storage
* might be extracted. Note that the
*
* @return array
* An associative array of associative arrays which define each step in the
* ingest process. Each step should consist of a unique name mapped to an
* array of properties (keys) including:
* - type: The type of step. Currently, only "form" is implemented.
* - weight: The "weight" of this step--heavier(/"larger") values sink to the
* end of the process while smaller(/"lighter") values are executed first.
* - form_id: The form building function to call to get the form structure
* for this step.
* - args: An array of arguments to pass to the form building function.
* And may optionally include both:
* - module: A module from which we want to load an include.
* - file: A file to include (relative to the module's path, including the
* file's extension).
*/
function hook_islandora_ingest_steps(array $form_state) {
return array(
'my_cool_step_definition' => array(
'type' => 'form',
'weight' => 1,
'form_id' => 'my_cool_form',
'args' => array('arg_one', 'numero deux'),
),
);
}
/**
* Content model specific version of hook_islandora_ingest_steps().
*
* XXX: Content models are not selected in a generic manner. Currently, this
* gets called for every content model in the "configuration", yet the
* configuration never changes. We should determine a consistent way to bind
* content models, so as to consistently be able to build steps.
*
* @see hook_islandora_ingest_steps()
*/
function hook_CMODEL_PID_islandora_ingest_steps(array $form_state) {}