|
|
|
@ -435,17 +435,26 @@ function islandora_check_object_status(NewFedoraObject $object_definition) {
|
|
|
|
|
/** |
|
|
|
|
* A form construct to create a viewer selection table. |
|
|
|
|
* |
|
|
|
|
* The list of selectable viewers is limited by the $mimetype and the $model |
|
|
|
|
* parameters. When neither are given all defined viewers are listed. If only |
|
|
|
|
* $mimetype is given only viewers that support that mimetype will be listed, |
|
|
|
|
* the same goes for the $model parameter. If both are given, than any viewer |
|
|
|
|
* that supports either the give $mimetype or $model will be listed. |
|
|
|
|
* |
|
|
|
|
* @param string $variable_id |
|
|
|
|
* The ID of the Drupal variable to save the viewer settings in |
|
|
|
|
* @param string $mimetype |
|
|
|
|
* The table will be populated with viewers supporting this mimetype |
|
|
|
|
* @param string $model |
|
|
|
|
* The table will be populated with viewers supporting this content model |
|
|
|
|
* |
|
|
|
|
* @return |
|
|
|
|
* A form api array which defines a themed table to select a viewer. |
|
|
|
|
*/ |
|
|
|
|
function islandora_viewers_form($variable_id = NULL, $mimetype = NULL) { |
|
|
|
|
function islandora_viewers_form($variable_id = NULL, $mimetype = NULL, $model = NULL) { |
|
|
|
|
$form = array(); |
|
|
|
|
// get viewers |
|
|
|
|
$viewers = islandora_get_viewers($mimetype); |
|
|
|
|
$viewers = islandora_get_viewers($mimetype, $model); |
|
|
|
|
if (!empty($viewers)) { |
|
|
|
|
// add option for no viewer |
|
|
|
|
$no_viewer = array(); |
|
|
|
@ -524,19 +533,32 @@ function islandora_viewers_form($variable_id = NULL, $mimetype = NULL) {
|
|
|
|
|
/** |
|
|
|
|
* Returns all defined viewers. |
|
|
|
|
* |
|
|
|
|
* The list of selectable viewers is limited by the $mimetype and the |
|
|
|
|
* $content_model parameters. When neither are given all defined viewers are |
|
|
|
|
* listed. If only $mimetype is given only viewers that support that mimetype |
|
|
|
|
* will be listed, the same goes for the $content_model parameter. If both are |
|
|
|
|
* given, than any viewer that supports either the give $mimetype or $model will |
|
|
|
|
* be listed. |
|
|
|
|
* |
|
|
|
|
* @param string $mimetype |
|
|
|
|
* specify a mimetype to return only viewers that support this certain |
|
|
|
|
* Specify a mimetype to return only viewers that support this certain |
|
|
|
|
* mimetype. |
|
|
|
|
* @return |
|
|
|
|
* array of viewer definitions, or FALSE if none are found. |
|
|
|
|
* @param string $content_model |
|
|
|
|
* Specify a content model to return only viewers that support the content |
|
|
|
|
* model. |
|
|
|
|
* |
|
|
|
|
* @return array |
|
|
|
|
* Viewer definitions, or FALSE if none are found. |
|
|
|
|
*/ |
|
|
|
|
function islandora_get_viewers($mimetype = NULL) { |
|
|
|
|
function islandora_get_viewers($mimetype = NULL, $content_model = NULL) { |
|
|
|
|
$viewers = array(); |
|
|
|
|
// get all viewers |
|
|
|
|
$defined_viewers = module_invoke_all('islandora_viewer_info'); |
|
|
|
|
// filter viewers by mimetype |
|
|
|
|
foreach ($defined_viewers as $key => $value) { |
|
|
|
|
if (in_array($mimetype, $value['mimetype']) OR $mimetype == NULL) { |
|
|
|
|
$value['mimetype'] = isset($value['mimetype']) ? $value['mimetype'] : array(); |
|
|
|
|
$value['model'] = isset($value['model']) ? $value['model'] : array(); |
|
|
|
|
if (in_array($mimetype, $value['mimetype']) OR in_array($content_model, $value['model'])) { |
|
|
|
|
$viewers[$key] = $value; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|