Browse Source

Code review

pull/651/head
Jared Whiklo 9 years ago
parent
commit
15ce7745b8
  1. 7
      includes/admin.form.inc
  2. 3
      includes/breadcrumb.inc
  3. 14
      islandora.api.php

7
includes/admin.form.inc

@ -27,6 +27,11 @@ function islandora_repository_admin(array $form, array &$form_state) {
$map_to_title = function ($backend) { $map_to_title = function ($backend) {
return $backend['title']; return $backend['title'];
}; };
// In case the selected breadcrumb backend is no longer available.
$breadcrumb_backend = variable_get('islandora_breadcrumbs_backends', ISLANDORA_BREADCRUMB_LEGACY_BACKEND);
if (!isset($breadcrumb_backend_options[$breadcrumb_backend])) {
$breadcrumb_backend = ISLANDORA_BREADCRUMB_LEGACY_BACKEND;
}
$form = array( $form = array(
'islandora_tabs' => array( 'islandora_tabs' => array(
@ -107,7 +112,7 @@ function islandora_repository_admin(array $form, array &$form_state) {
'#type' => 'radios', '#type' => 'radios',
'#title' => t('Breadcrumb generation'), '#title' => t('Breadcrumb generation'),
'#description' => t('How breadcrumbs for Islandora objects are generated for display.'), '#description' => t('How breadcrumbs for Islandora objects are generated for display.'),
'#default_value' => variable_get('islandora_breadcrumbs_backends', ISLANDORA_BREADCRUMB_LEGACY_BACKEND), '#default_value' => $breadcrumb_backend,
'#options' => array_map($map_to_title, $breadcrumb_backend_options), '#options' => array_map($map_to_title, $breadcrumb_backend_options),
'#states' => array( '#states' => array(
'visible' => array( 'visible' => array(

3
includes/breadcrumb.inc

@ -25,11 +25,13 @@
* drupal_set_breadcrumb(). * drupal_set_breadcrumb().
*/ */
function islandora_get_breadcrumbs(AbstractObject $object) { function islandora_get_breadcrumbs(AbstractObject $object) {
$breadcrumbs = array();
if (variable_get('islandora_render_drupal_breadcrumbs', TRUE)) { if (variable_get('islandora_render_drupal_breadcrumbs', TRUE)) {
$backend = variable_get('islandora_breadcrumbs_backends', ISLANDORA_BREADCRUMB_LEGACY_BACKEND); $backend = variable_get('islandora_breadcrumbs_backends', ISLANDORA_BREADCRUMB_LEGACY_BACKEND);
$backends = module_invoke_all('islandora_breadcrumbs_backends'); $backends = module_invoke_all('islandora_breadcrumbs_backends');
if ($backend === ISLANDORA_BREADCRUMB_LEGACY_BACKEND || !isset($backends[$backend])) { if ($backend === ISLANDORA_BREADCRUMB_LEGACY_BACKEND || !isset($backends[$backend])) {
$breadcrumbs = islandora_get_breadcrumbs_recursive($object->id, $object->repository); $breadcrumbs = islandora_get_breadcrumbs_recursive($object->id, $object->repository);
array_pop($breadcrumbs);
} }
else { else {
if (isset($backends[$backend]['file'])) { if (isset($backends[$backend]['file'])) {
@ -37,7 +39,6 @@ function islandora_get_breadcrumbs(AbstractObject $object) {
} }
$breadcrumbs = call_user_func($backends[$backend]['callable'], $object); $breadcrumbs = call_user_func($backends[$backend]['callable'], $object);
} }
array_pop($breadcrumbs);
$context = 'islandora'; $context = 'islandora';
drupal_alter('islandora_breadcrumbs', $breadcrumbs, $context, $object); drupal_alter('islandora_breadcrumbs', $breadcrumbs, $context, $object);
} }

14
islandora.api.php

@ -911,7 +911,7 @@ function hook_islandora_repository_connection_construction_alter(RepositoryConne
/** /**
* Allow a overridable backend for generating breadcrumbs. * Allow a overridable backend for generating breadcrumbs.
* *
* Stolen shamelessly from @adam-vessey * Stolen shamelessly from @adam-vessey.
* *
* @return array * @return array
* Should return an associative array mapping unique (module-prefixed, * Should return an associative array mapping unique (module-prefixed,
@ -922,25 +922,21 @@ function hook_islandora_repository_connection_construction_alter(RepositoryConne
* - file: An optional file to load before attempting to call the callable. * - file: An optional file to load before attempting to call the callable.
*/ */
function hook_islandora_breadcrumbs_backends() { function hook_islandora_breadcrumbs_backends() {
$a_callable = function ($object) {
// Do something to get an array of breadcrumb links for $object, root first.
return array($root_link, $collection_link, $object_link);
};
return array( return array(
'awesome_backend' => array( 'awesome_backend' => array(
'title' => t('Awesome Backend'), 'title' => t('Awesome Backend'),
'callable' => $a_callable, 'callable' => callback_islandora_breadcrumbs_backends($object),
), ),
); );
} }
/** /**
* Generate an array of links for breadcrumbs leading to $object, root level first. * Generate an array of links for breadcrumbs leading to $object, root first.
* *
* Stolen shamelessly from @adam-vessey * Stolen shamelessly from @adam-vessey.
* *
* @param AbstractObject $object * @param AbstractObject $object
* The object to generate breadcrumbs for * The object to generate breadcrumbs for.
* *
* @return array * @return array
* Array of links from root to $object. * Array of links from root to $object.

Loading…
Cancel
Save