<?php /** * @file * Menu callback functionality for islandora/ingest */ /** * Callback function for islandora/ingest/%collection_pid * @TODO: validate?: pid, registry return * @param string $pid */ function islandora_ingest_callback($collection_pid) { $ingest_registry = module_invoke_all('islandora_ingest_registry', $collection_pid); $registry_count = count($ingest_registry); if ($registry_count == 0) { // No ingest implementations. drupal_set_message(t('There are no ingest methods specified for this collection.')); drupal_goto('islandora/object/' . $collection_pid); } elseif ($registry_count == 1) { // One registry implementation, go there drupal_goto($ingest_registry[0]['url'] . "/$collection_pid"); } else { // Multiple ingest routes registered return islandora_ingest_registry_render($ingest_registry); } } //@TODO: theme function islandora_ingest_registry_render($ingest_registry) { $output = array( '#type' => 'markup', '#markup' => '', ); foreach ($ingest_registry AS $ingest_route) { $output['#markup'] .= l($ingest_route['name'], $ingest_route['url']. "/$collection_pid") . '<br/>'; } return $output; }