diff --git a/ilives/book.inc b/ilives/book.inc
deleted file mode 100644
index 6480dec1..00000000
--- a/ilives/book.inc
+++ /dev/null
@@ -1,337 +0,0 @@
-pid = $pid;
- $this->item = new Fedora_Item($pid);
- }
- }
-
- public function buildDrupalForm($form = array(), $ingest_form = array(), &$form_state = array()) {
- $mods_save = '';
- if (isset($form_state['mods_save'])) {
- $mods_save = $form_state['mods_save'];
- }
-
- // Set #cache to true to create the $form_state cache
- $form['#cache'] = TRUE;
-
- // Give the user an option to enter a custom PID
- $form['custom_pid'] = array(
- '#type' => 'textfield',
- '#title' => 'Custom PID',
- '#description' => 'If you want to manually specify the PID for the new object, enter it here. ' .
- 'Leave it blank for an automatically-generated PID.',
- );
-
- // Prompt the user to enter a record ID to be looked up in Evergreen.
- $form['unapi_url'] = array(
- '#type' => 'textfield',
- '#title' => 'Catalogue item URL',
- );
- $form['unapi_url_submit'] = array(
- '#type' => 'submit',
- '#value' => t('Retrieve MODS record'),
- '#submit' => array('fedora_ilives_retrieve_unapi_submit'),
- '#ahah' => array(
- 'path' => 'fedora/ilives/retrieve_unapi/js', // path we defined in hook_menu
- 'wrapper' => 'mods-wrapper', // the HTML that wraps the element that needs to be replaced
- 'method' => 'replace', // the method we're going to use: a replace operation
- //'effect' => 'fade', // the effect used when replacing the element (try fade!)
- ),
- '#suffix' => ' ',
- );
- drupal_add_js('', 'inline');
- // We define a
wrapper. Everything in it will be replaced.
- $form['mods'] = array(
- '#tree' => TRUE,
- '#prefix' => '
',
- '#suffix' => '
',
- );
- $form['mods']['mods_record'] = array(
- '#type' => 'textarea',
- '#title' => 'MODS Record to Import',
- '#rows' => 20,
- );
-
- if (!empty($mods_save)) {
- $form['mods']['mods_record']['#value'] = $mods_save['mods']['mods_record'];
- }
- return $form;
- }
-
- public function buildEditMetadataForm($form = array()) {
-
- $form['submit'] = array(
- '#type' => 'submit',
- '#weight' => 10,
- '#value' => 'Update'
- );
- $form['pid'] = array(
- '#type' => 'hidden',
- '#value' => $this->pid,
- );
- $form['dsid'] = array(
- '#type' => 'hidden',
- '#value' => "DARWIN_CORE",
- );
-
- return $this->buildDrupalForm($form);
- }
-
- public function handleEditMetadataForm($form_id, $form_values) {
- /*
- * Process the metadata form
- * Update the datastreams
- */
-
- module_load_include('inc', 'fedora_repository', 'api/fedora_item');
- module_load_include('inc', 'fedora_repository', 'plugins/DarwinCore');
- module_load_include('inc', 'fedora_repository', 'MimeClass');
- global $user;
- $mimetype = new MimeClass();
- $dwc = new DarwinCore($this->item);
- $dwc->handleForm($form_values);
- $this->item->purge_datastream('DARWIN_CORE');
- $this->item->add_datastream_from_string($dwc->darwinCoreXML, 'DARWIN_CORE',
- 'Darwin Core Metadata', 'text/xml', 'X');
- return TRUE;
- }
-
- public function handleIngestForm($form_values, &$form_state) {
- /*
- * process the metadata form
- * Create fedora object
- * Add the datastreams
- */
- module_load_include('inc', 'fedora_repository', 'MimeClass');
- module_load_include('inc', 'fedora_repository', 'api/fedora_item');
- if ($form_state['clicked_button']['#value'] == 'Retrieve MODS record') {
- return;
- }
-
- $mods_list_doc = new DomDocument();
- $mods_list_doc->loadXML($form_values['mods']['mods_record']);
- $mods_item_doc = new DomDocument();
- $mods_item = $mods_list_doc->getElementsByTagNameNS('http://www.loc.gov/mods/v3', 'mods')->item(0);
- $new_mods_item = $mods_item_doc->importNode($mods_item, TRUE);
- $mods_item_doc->appendChild($new_mods_item);
-
- $title_info = $mods_item_doc->getElementsByTagNameNS('http://www.loc.gov/mods/v3', 'titleInfo')->item(0);
- $title = '';
- foreach (array('nonSort', 'title') as $title_field) {
- $title .= $title_info->getElementsByTagNameNS('http://www.loc.gov/mods/v3', $title_field)->item(0)->nodeValue . ' ';
- }
- $title = trim($title);
- $mods_text = $mods_item_doc->saveXML();
- global $user;
- $mimetype = new MimeClass();
-
- $new_item = Fedora_Item::ingest_new_item(!empty($form_values['custom_pid']) ? $form_values['custom_pid'] : $form_values['pid'], 'A', $title,
- $user->name);
-
- $new_item->add_datastream_from_string($mods_text, 'MODS',
- 'MODS Metadata', 'text/xml', 'X');
-
- $dc = transform_mods_to_dc($mods_text);
- if ($dc) {
- // Add the PID to a dc:identifier field.
- $dc_doc = simplexml_load_string($dc);
- $dc_doc->registerXPathNamespace('oai_dc', 'http://www.openarchives.org/OAI/2.0/oai_dc/');
- $dc_item = $dc_doc->xpath('//oai_dc:dc');
- foreach ($dc_item as $node) {
- $node->addChild('dc:identifier', $new_item->pid, 'http://purl.org/dc/elements/1.1/');
- }
- $new_item->modify_datastream_by_value($dc_doc->saveXML(), 'DC', 'Dublin Core XML Metadata', 'text/xml');
- }
- $new_item->add_relationship('hasModel', $form_values['content_model_pid'], FEDORA_MODEL_URI);
- $new_item->add_relationship(!empty($form_values['relationship']) ? $form_values['relationship'] : 'isMemberOfCollection', $form_values['collection_pid']);
- drupal_set_message(t("Item !pid created successfully.", array('!pid' => l($new_item->pid, 'fedora/repository/' . $new_item->pid))), "status");
- }
-
- public function buildAddPagesForm($form = array()) {
-
- }
-
- public function showFieldSets() {
- module_load_include('inc', 'fedora_repository', 'plugins/tagging_form');
- module_load_include('inc', 'fedora_repository', 'plugins/DarwinCore');
- module_load_include('module', 'fedora_ilives');
- global $base_url;
- $show_purge_tab = (!empty($_POST['form_id']) && ($_POST['form_id'] == 'fedora_ilives_purge_pages_form'));
- $first_page = new Fedora_Item($this->pid . '-001');
- $hasPage = $first_page->exists();
- $tabset = array();
-
- global $user;
- $qs = '';
- if ($user->uid != 0) {
- $qs = '?uid=' . base64_encode($user->name . ':' . $user->pass);
- }
-
- $viewer_url = variable_get('fedora_base_url', '') . '/get/' . $this->pid . '/ilives:viewerSdef/getViewer' . $qs;
- $html = '';
-
- $tabset['first_tab'] = array(
- // #type and #title are the minimum requirements.
- '#type' => 'tabpage',
- '#title' => t('Description'),
- // This will be the content of the tab.
- '#content' => fedora_ilives_create_book_view($this->pid),
- );
-
- if ($hasPage) {
- $tabset['second_tab'] = array(
- '#type' => 'tabpage',
- '#title' => t('Read'),
- '#content' => $html
- );
- }
-
- if (!$hasPage && user_access('ingest new fedora objects')) {
- $tabset['third_tab'] = array(
- '#type' => 'tabpage',
- '#title' => t('Add pages'),
- '#content' => drupal_get_form('book_add_pages_form', $this->pid),
- );
- }
- if ($hasPage && user_access('purge objects and datastreams')) {
- $tabset['fourth_tab'] = array(
- '#type' => 'tabpage',
- '#title' => t('Purge all pages'),
- '#selected' => $show_purge_tab,
- '#content' => drupal_get_form('fedora_ilives_purge_pages_form', $this->pid),
- );
- }
- return $tabset;
- }
-
-}
-
-function book_add_pages_form(&$form_state, $pid, $page_cmodel = 'ilives:pageCModel', $relation = 'isMemberOf') {
- $form['pid'] = array(
- '#type' => 'hidden',
- '#value' => $pid,
- );
- $form['page_cmodel'] = array(
- '#type' => 'hidden',
- '#value' => $page_cmodel,
- );
- $form['relation'] = array(
- '#type' => 'hidden',
- '#value' => $relation,
- );
- $form['tiff_dir'] = array(
- '#type' => 'textfield',
- '#title' => t('TIFF folder'),
- '#required' => TRUE,
- '#description' => t('Path to a web-accessible folder contining the book\'s page images in TIFF format on this server.'),
- );
-
- $form['submit'] = array(
- '#type' => 'submit',
- '#weight' => 10,
- '#value' => 'Ingest Pages'
- );
- return $form;
-}
-
-function book_add_pages_form_validate($form, &$form_state) {
- if ($form_state['values']['tiff_dir'] == '') {
- form_set_error('', t('You must select a name for this group of settings.'));
- }
-}
-
-function book_add_pages_form_submit($form, &$form_state) {
- $pid = $form_state['values']['pid'];
- if (!empty($form_state['values']['tiff_dir'])) {
- $file_list = array();
- if ($tiff_dir = opendir($form_state['values']['tiff_dir'])) {
- while (FALSE !== ($file_name = readdir($tiff_dir))) {
- $ext = strrchr($file_name, '.');
- if ($ext == '.tif' || $ext == '.tiff') {
- array_push($file_list, $form_state['values']['tiff_dir'] . '/' . $file_name);
- }
- }
- closedir($tiff_dir);
- sort($file_list);
- ilives_create_page_objects($pid, $file_list, $form_state['values']['page_cmodel'], $form_state['values']['relation']);
- }
- }
-}
-
-/**
- * Create a page object for each element in $image_list as a child object of $pid
- */
-function ilives_create_page_objects($pid, $image_list = array(), $page_cmodel = 'ilives:pageCModel', $relation = 'isMemberOfCollection') {
- module_load_include('inc', 'fedora_repository', 'api/fedora_item');
- module_load_include('inc', 'fedora_repository', 'ObjectHelper');
- $book = new Fedora_Item($pid);
- if (!$book->exists()) {
- return FALSE;
- }
-
-
- $page_pids = array();
- $batch = array(
- 'title' => 'Creating page objects',
- 'operations' => array(),
- 'file' => drupal_get_path('module', 'fedora_ilives') . '/book.inc',
- );
- $page_num = 1;
- $book_title = $book->objectProfile->objLabel;
- foreach ($image_list as $image_path) {
- $batch['operations'][] = array('ilives_add_single_page_object', array($pid, $image_path, $page_num, "$book_title - Page " . sprintf("%03d", $page_num), $page_cmodel, $relation));
- $page_num++;
- }
- batch_set($batch);
- $objectHelper = new ObjectHelper;
- $dc_xml = $objectHelper->getStream($pid, 'DC');
- $xml = new DOMDocument();
- $xml->loadXML($dc_xml);
- $root = $xml->documentElement;
- $typeNode = $xml->createElement('dc:type', 'ingested');
- $typeNode = $xml->createElementNS("http://purl.org/dc/elements/1.1/", 'dc:type', 'ingested');
- $root->appendChild($typeNode);
- $book->modify_datastream_by_value($xml->saveXML(), 'DC', 'Dublin core', 'text/xml', TRUE, "Added Type of Ingest", FALSE);
-}
-
-function ilives_add_single_page_object($book_pid, $page_file, $page_num = 1, $page_title = NULL, $page_cmodel = 'ilives:pageCModel', $relation = 'isMemberOfCollection') {
- module_load_include('inc', 'fedora_repository', 'api/fedora_utils');
- module_load_include('inc', 'fedora_repository', 'api/fedora_item');
- $page_item = Fedora_Item::ingest_new_item("$book_pid-" . sprintf("%03d", $page_num), 'A', $page_title);
- $page_item->add_relationship('hasModel', $page_cmodel, FEDORA_MODEL_URI);
- $page_item->add_relationship($relation, $book_pid);
- $page_item->add_datastream_from_file($page_file, 'TIFF', 'Archival TIFF', 'image/tiff', 'M');
-}
-
-function transform_mods_to_dc($mods) {
- $xp = new XsltProcessor();
- // create a DOM document and load the XSL stylesheet
- $xsl = new DomDocument;
- $xsl->load(drupal_get_path('module', 'fedora_ilives') . '/xsl/MODS3-22simpleDC.xsl');
-
- // import the XSL styelsheet into the XSLT process
- $xp->importStylesheet($xsl);
-
- // create a DOM document and load the XML datat
- $xml_doc = new DomDocument;
- $xml_doc->loadXML($mods);
-
- // transform the XML into HTML using the XSL file
- if ($dc = $xp->transformToXML($xml_doc)) {
- return $dc;
- }
- else {
- return FALSE;
- }
-}
diff --git a/ilives/fedora_ilives.info b/ilives/fedora_ilives.info
deleted file mode 100644
index 763adfdc..00000000
--- a/ilives/fedora_ilives.info
+++ /dev/null
@@ -1,7 +0,0 @@
-; $Id$
-name = Islandora Book
-description = Provides book interface
-package = Fedora Repository
-dependencies[] = fedora_repository
-version = 6.1dev
-core = 6.x
diff --git a/ilives/fedora_ilives.install b/ilives/fedora_ilives.install
deleted file mode 100644
index 04ed6064..00000000
--- a/ilives/fedora_ilives.install
+++ /dev/null
@@ -1,14 +0,0 @@
- t('Book view'),
- 'page callback' => 'fedora_ilives_create_book_view',
- 'type' => MENU_CALLBACK,
- 'access arguments' => array('view fedora collection'),
- );
- $items['fedora/ilives_book_viewer'] = array(
- 'title' => t('Book viewer'),
- 'page callback' => 'fedora_ilives_book_viewer',
- 'type' => MENU_CALLBACK,
- 'access arguments' => array('view fedora collection'),
- );
- $items['fedora/ilives_book_search'] = array(
- 'title' => t('Book viewer'),
- 'page callback' => 'fedora_ilives_book_search',
- 'type' => MENU_CALLBACK,
- 'access arguments' => array('view fedora collection'),
- );
- $items['fedora/ilives_page_search'] = array(
- 'title' => t('Book viewer'),
- 'page callback' => 'fedora_ilives_page_search',
- 'type' => MENU_CALLBACK,
- 'access arguments' => array('view fedora collection'),
- );
- // This block defines the path and the corresponding callback function.
- $items['fedora/ilives/retrieve_unapi/js'] = array(
- 'page callback' => 'fedora_ilives_button_retrieve_unapi_ahah', // the AHAH callback function
- 'access arguments' => array('add fedora datastreams'),
- 'type' => MENU_CALLBACK,
- );
- return $items;
-}
-
-//function fedora_ilives_book_search($query) {
-//}
-//function fedora_ilives_page_search($query) {
-//}
-
-function fedora_ilives_block($op = 'list', $delta = 0, $edit = array()) {
- // The $op parameter determines what piece of information is being requested.
- switch ($op) {
- case 'list':
- // If $op is "list", we just need to return a list of block descriptions.
- // This is used to provide a list of possible blocks to the administrator,
- // end users will not see these descriptions.
- $blocks[0] = array(
- 'info' => t('Book search block'),
- );
- $blocks[1] = array(
- 'info' => t('Image rotator and tagger'),
- );
- $blocks[2] = array(
- 'info' => t('Simple book search block'),
- );
-
- return $blocks;
- case 'configure':
- // If $op is "configure", we need to provide the administrator with a
- // configuration form. The $delta parameter tells us which block is being
- // configured. In this example, we'll allow the administrator to customize
- // the text of the first block.
- // If $op is "configure", we need to provide the administrator with a
- // configuration form. The $delta parameter tells us which block is being
- // configured. In this example, we'll allow the administrator to customize
- // the text of the first block.
- $form = array();
- switch ($delta) {
- case 0:
- // All we need to provide is a text field, Drupal will take care of
- // the other block configuration options and the save button.
- $form['fedora_ilives_book_search_block_repeat'] = array(
- '#type' => 'textfield',
- '#title' => t('Number of times to repeat search fields'),
- '#size' => 5,
- '#description' => t('The number of times you would like the search blocks to be repeated'),
- '#default_value' => variable_get('fedora_ilives_book_search_block_repeat', t('3')),
- );
- break;
- case 1:
- // This is the image rotator block.
- $form['fedora_ilives_image_rotator_block_query'] = array(
- '#type' => 'textarea',
- '#title' => t('ITQL Query'),
- '#description' => t('The ITQL query to return a list of images.'),
- '#default_value' => variable_get('fedora_ilives_image_rotator_tagger_block_query', 'select $object $title from <#ri>
-where $object
-and $object
-and $object $title'),
- );
- break;
- case 2:
- // All we need to provide is a text field, Drupal will take care of
- // the other block configuration options and the save button.
- $form['fedora_ilives_simple_book_search_block_title'] = array(
- '#type' => 'textfield',
- '#title' => t('Title'),
- '#size' => 15,
- '#description' => t('The title of the block'),
- '#default_value' => variable_get('fedora_ilives_simple_book_search_block_title', t('Title')),
- );
- break;
- }
-
- return $form;
- case 'save':
- // If $op is "save", we need to save settings from the configuration form.
- // Since the first block is the only one that allows configuration, we
- // need to check $delta to make sure we only save it.
- switch ($delta) {
- case 0:
- // Have Drupal save the string to the database.
- variable_set('fedora_ilives_book_search_block_repeat', $edit['fedora_ilives_book_search_block_repeat']);
- break;
- case 1:
- variable_set('fedora_ilives_image_rotator_tagger_block_query', $edit['fedora_ilives_image_rotator_block_query']);
- break;
- case 2:
- // Have Drupal save the string to the database.
- variable_set('fedora_ilives_simple_book_search_block_title', $edit['fedora_ilives_simple_book_search_block_title']);
- break;
- }
- return;
- case 'view': default:
- // If $op is "view", then we need to generate the block for display
- // purposes. The $delta parameter tells us which block is being requested.
- switch ($delta) {
- case 0:
- // The subject is displayed at the top of the block. Note that it
- // should be passed through t() for translation.
- $block['subject'] = t('Book advanced search');
- // The content of the block is typically generated by calling a custom
- // function.
- $block['content'] = drupal_get_form('fedora_ilives_book_search_form');
- break;
- case 1:
- module_load_include('inc', 'fedora_ilives', 'image_rotator_tagger_block');
- $block['subject'] = t('Random repository image');
- $block['content'] = _fedora_image_rotator_tagger_block_content();
- break;
- case 2:
- // The subject is displayed at the top of the block. Note that it
- // should be passed through t() for translation.
- $block['subject'] = t('Simple Book Search');
- // The content of the block is typically generated by calling a custom
- // function.
- $block['content'] = drupal_get_form('fedora_ilives_simple_book_search_form');
- break;
- }
-
- return $block;
- }
-}
-
-function fedora_ilives_book_viewer($pid) {
- global $user;
- $qs = '';
- if ($user->uid != 0) {
-// $qs = '?uid=' . base64_encode($user->name . ':' . $user->sid);
- $qs = '?uid=' . base64_encode($user->name . ':' . $user->pass);
- }
-
- $viewer_url = variable_get('fedora_base_url', '') . '/get/' . $pid . '/ilives:viewerSdef/getViewer' . $qs;
- $html = '';
- $fieldset = array(
- '#title' => t('Viewer - ') . $pid,
- '#collapsible' => TRUE,
- '#collapsed' => FALSE,
- '#value' => $html);
- drupal_add_css(path_to_theme() . '/header-viewer.css', 'theme');
- return theme('fieldset', $fieldset);
-}
-
-//loads an xslt for the main book page uses mods for most of the display. if there is a $query parameter
-// it will execute it against the book.
-function fedora_ilives_create_book_view($pid, $query = NULL) {
- global $user;
- module_load_include('inc', 'fedora_repository', 'ObjectHelper');
- $path = drupal_get_path('module', 'Fedora_Repository');
- $objectHelper = new ObjectHelper;
- $xml = $objectHelper->getStream($pid, 'MODS');
- $dc_xml = $objectHelper->getStream($pid, 'DC');
- if (!$dc_xml) {
- drupal_set_message(t('Object does not exist.'), 'error');
- return '';
- }
- $simpleDCxml = simplexml_load_string($dc_xml);
- $types = $simpleDCxml->xpath('//dc:type');
- $ingested = 'false';
- if (!empty($types)) {
- foreach ($types as $type) {
- if ($type == 'ingested') {
- $ingested = 'true';
- }
- }
- }
-
- if (!isset($pid)) {
- drupal_set_message(t('Error getting book view, no identifier specified.'));
- return;
- }
- $proc = NULL;
- try {
- $proc = new XsltProcessor();
- } catch (Exception $e) {
- drupal_set_message(t('Error loading Book View XSLT: $e', array('!e' => $e->getMessage())));
- return;
- }
-
- //inject into xsl stylesheet
- $proc->setParameter('', 'userID', $user->uid);
- $proc->setParameter('', 'objectsPage', base_path());
- $proc->setParameter('', 'pid', $pid);
- $proc->setParameter('', 'ingested', $ingested);
- $xsl = new DomDocument();
- $test = $xsl->load($path . '/ilives/xsl/book_view.xsl');
- if (!isset($test)) {
- drupal_set_message(t('Error loading search results XSLT.'));
- return t('Error loading search results XSLT.');
- }
-
- $input = new DomDocument();
- $didLoadOk = $input->loadXML($xml);
- $output = NULL;
- if (!isset($didLoadOk)) {
- drupal_set_message(t('Error loading Book View XML.'));
- return t('Error loading Book View XML.');
- }
- else {
- $xsl = $proc->importStylesheet($xsl);
- $newdom = $proc->transformToDoc($input);
- $output .= $newdom->saveXML();
- }
- if (isset($query)) {
- module_load_include('inc', 'fedora_repository', 'SearchClass');
- $searchClass = new SearchClass();
- $pageQuery = convert_query_to_page_query($query, $pid);
- $output .= '
'; //limit results to 500 pages of a book since there is no paging if we enable paging in xslt this can be changed
- //return $output."
used this query to find this page $query and new query = $pageQuery
";
-
- return $output;
- }
- else {
- return $output;
- }
-}
-
-function convert_query_to_page_query($query, $pid) {
- $newQuery = substr($query, 0, strlen($query) - 23);
- $pid = str_replace(':', '?', $pid);
- $newQuery = $newQuery . " AND PID:$pid* AND dc.type:Text";
- //$newQuery=htmlentities(urlencode($newQuery));
- return $newQuery;
-}
-
-/**
- * Custom form element to do our nice images.
- */
-function fedora_ilives_elements() { // Change this line
- $type['imagebutton'] = array(
- '#input' => TRUE,
- '#button_type' => 'submit',
- '#executes_submit_callback' => TRUE,
- '#name' => 'op',
- '#process' => array('hook_imagebutton_process' => array()),
- );
- return $type;
-}
-
-function theme_imagebutton($element) {
- return '\n";
-}
-
-/**
- * Implementation of hook_theme() to register how to theme image buttons.
- */
-function fedora_ilives_theme() {
- return array(
- 'imagebutton' => array(
- 'arguments' => array('form' => NULL),
- ),
- 'fedora_ilives_book_search_form' => array(
- 'arguments' => array('form' => NULL),
- ),
- 'fedora_ilives_simple_book_search_form' => array(
- 'arguments' => array('form' => NULL),
- )
- );
-}
-
-//return array(
-// 'fedora_repository_mnpl_advanced_search_form' => array(
-// 'arguments' => array('form' => NULL)
-// )
-// );
-
-function theme_fedora_ilives_book_search_form($form) {
- module_load_include('inc', 'fedora_repository', 'SearchClass');
- $advanced_search_form = new SearchClass();
- $repeats = variable_get('fedora_ilives_book_search_block_repeat', t('3'));
- return $advanced_search_form->theme_advanced_search_form($form, $repeats);
-}
-
-function fedora_ilives_simple_book_search_form($form) {
- $form = array();
- $form['search_type']['type1'] = array(
- '#title' => t(''),
- '#type' => 'hidden',
- '#default_value' => 'tei.fullText'
- );
- $form['fedora_terms1'] = array(
- '#size' => '24',
- '#type' => 'textfield',
- '#title' => t(''),
- '#required' => TRUE,
- '#default_value' => ''
- );
- $form['submit'] = array(
- '#type' => 'submit',
- '#value' => t('search')
- );
- return $form;
-}
-
-function fedora_ilives_simple_book_search_form_submit($form, &$form_state) {
- $type_id = $form_state['values']['type'];
-
- $searchString = $form_state['values']['type1'] . ':' . $form_state['values']['fedora_terms1'];
-
- $searchString = trim($searchString) . '+AND+dc.type:collection';
- $form_state['redirect'] = "fedora/ilives_book_search/$searchString";
- //drupal_goto("fedora/ilives_book_search/$searchString");
-}
-
-function fedora_ilives_book_search_form() {
- module_load_include('inc', 'fedora_repository', 'SearchClass');
- $searchClass = new SearchClass();
- $repeats = variable_get('fedora_ilives_book_search_block_repeat', t('3'));
- $path = drupal_get_path('module', 'Fedora_Repository') . '/ilives';
- $query = NULL;
- if (arg(1) == 'ilives_book_search' && arg(2) != 'dc.type:ingested') {
- $length = strlen(arg(2));
- if (($test = strpos(arg(2), 'dc.type:collection')) > 0) {
- $length = $test - 5; //get rid of the AND
- }
- $query = trim(substr(arg(2), 0, $length));
- }
- return $searchClass->build_advanced_search_form($repeats, $path, $query);
-}
-
-function fedora_ilives_book_search_form_submit($form, &$form_state) {
- $type_id = $form_state['values']['type'];
- $repeat = variable_get('fedora_ilives_book_search_block_repeat', t('3'));
- $searchString = $form_state['values']['type1'] . ':' . $form_state['values']['fedora_terms1'];
- if ($form_state['values']['fedora_terms2'] != '') {
- $searchString .= '+' . $form_state['values']['andor1'] . '+' . $form_state['values']['type2'] . ':' . $form_state['values']['fedora_terms2'];
- }
- if ($repeat > 2 && $repeat < 9) {
- for ($i = 3; $i < $repeat + 1; $i++) {
- $t = $i - 1;
- if ($form_state['values']["fedora_terms$i"] != '') {
- $searchString .= '+' . $form_state['values']["andor$t"] . '+' . $form_state['values']["type$i"] . ':' . $form_state['values']["fedora_terms$i"];
- }
- }
- }
- $searchString = trim($searchString) . '+AND+dc.type:collection';
- $form_state['redirect'] = "fedora/ilives_book_search/$searchString";
- //drupal_goto("fedora/ilives_book_search/$searchString");
-}
-
-function fedora_ilives_book_search($query, $startPage = 1) {
- module_load_include('inc', 'fedora_repository', 'SearchClass');
- $searchClass = new SearchClass();
- return $searchClass->custom_search($query, $startPage, '/ilives/xsl/results.xsl', 10);
-}
-
-function retrieve_unapi_MODS_record($url) {
- $bib_response = drupal_http_request($url);
- $bib_html = $bib_response->data;
- $bib_doc = new DOMDocument;
- @$bib_doc->loadHTML($bib_html);
- $links = $bib_doc->getElementsByTagName('link');
- foreach ($links as $link) {
- if ($link->getAttribute('rel') == 'unapi-server') {
- $unapi_server = $link->getAttribute('href');
- break;
- }
- }
- $attrs = $bib_doc->getElementsByTagName('abbr');
- foreach ($attrs as $attr) {
- if ($attr->getAttribute('class') == 'unapi-id') {
-
- $unapi_id = $attr->getAttribute('title');
- break;
- }
- }
- $mods_url = "$unapi_server?id=$unapi_id&format=mods3";
- $mods_resp = drupal_http_request($mods_url);
- $mods_data = $mods_resp->data;
- return $mods_data;
-}
-
-/**
- * AHAH callback for the 'match type' select.
- * This function handles the actual replace and sets the $form and $form_state arrays.
- * */
-function fedora_ilives_button_retrieve_unapi_ahah() {
-
- // this part is used to set up $form_state.
- // In Drupal 7, these next 11 lines will be put in a core utility function.
- // Just remember you'll need them in D6 when you do AHAH.
- $form_state = array('storage' => NULL, 'submitted' => FALSE);
- $form_build_id = $_POST['form_build_id'];
- $form = form_get_cache($form_build_id, $form_state);
- $args = $form['#parameters'];
- $form_id = array_shift($args);
- $form['#post'] = $_POST;
- $form['#redirect'] = FALSE;
- $form['#programmed'] = FALSE;
-
- $form_state['post'] = $_POST;
- drupal_process_form($form_id, $form, $form_state);
- $form_state['storage']['step'] = 2;
- $form = drupal_rebuild_form($form_id, $form_state, $args, $form_build_id);
- // From here on, we'll add our own code.
- // We just get the element of $form that needs to be refreshed, and just resubmit that
- // part through the json call. In this case we want to rebuild the 'kind'
wrapper and the
- // select box it contains
- $changed_elements = $form['mods']['mods_record'];
-
-
- unset($changed_elements['#prefix'], $changed_elements['suffix']); // we'll unset the div to make sure it won't be repeated!
- // the actual JSON call
- $javascript = drupal_add_js(NULL, NULL, 'header');
- drupal_json(array(
- 'status' => TRUE,
- 'data' => theme('status_messages') . drupal_render($changed_elements), // rebuild just the part that needs to be changed
- 'settings' => call_user_func_array('array_merge_recursive', $javascript['setting']),
- ));
-}
-
-/**
- * This is the handler for the 'type' box: pressing this will refresh the
kind wrapper.
- * */
-function fedora_ilives_retrieve_unapi_submit($form, &$form_state) {
-
- unset($form_state['submit_handlers']); // unset all the submit handlers in the form
- form_execute_handlers('submit', $form, $form_state); // execute submit handler
- $url = $form_state['values']['unapi_url'];
- $mods = retrieve_unapi_MODS_record($url);
- $form_state['values']['mods']['mods_record'] = $mods;
- $mods_save = $form_state['values']; // store all the submitted values in the form
- $form_state['mods_save'] = $mods_save; // put the values in a new form
-
- $form_state['rebuild'] = TRUE; // set to true to make sure the form gets rebuild
- return $mods_save;
-}
-
-function fedora_ilives_form_alter(&$form, &$form_state, $form_id) {
- if ($form_id == 'fedora_repository_admin') {
- # Custom settings for book module.
- }
- elseif ($form_id == 'fedora_repository_demo_objects_form') {
- if (!Fedora_Item::fedora_item_exists('ilives:bookCModel')) {
-
- $form['install_demos']['demo_collections']['#options']['ilives:bookCModel'] = 'Book-related content models and service objects';
- $form['install_demos']['ingest']['#disabled'] = FALSE;
- $form['#submit'][] = 'fedora_ilives_install_demos_form_submit';
- }
- else {
-
- module_load_include('inc', 'fedora_repository', 'api/fedora_item');
- $book_item = new Fedora_Item('ilives:bookCModel');
-
- $form['existing_demos']['ilives:bookCModel'] = array(
- '#prefix' => '