function ingestPage($list, $form_values) { $output = "<stru>"; //rsort($list); $index = 1; foreach ($list as $myfile) { //drupal_set_message("File: ".$myfile); $temp = explode(" ", $myfile); $file = $temp[sizeof($temp) - 1]; $file = trim(str_replace($_SERVER['DOCUMENT_ROOT'] . base_path(), "", $file)); $image = new EpistemetecImageManipulation(); $parameterArray = array('width' => 160, 'height' => 120); $folder = basename($form_values["ingest-file-location"], '.zip'); $image->manipulateImage($parameterArray, "MEDIUM_SIZE", $file, 'jpg', $folder); $parameterArray = array('width' => 120, 'height' => 120); $image->manipulateImage($parameterArray, "TN", $file, 'jpg', $folder); //drupal_set_message("File: ".$file); $form = array(); $form["step"] = 1; $form["ingest-file-location"] = $file; $form["content_model_name"] = "ISLANDORACM"; $form["models"] = "epistemetec:imageCModel/ISLANDORACM"; $form["fullpath"] = ""; // $form["gen_stprog"] = $form_values["gen_stprog"]; // $form["gen_collection"] = $form_values["gen_collection"]; // $form["gen_agency"] = $form_values["gen_agency"]; // $form["gen_access_rights"] = $form_values["gen_access_rights"]; // $form["bib_title"] = $form_values["bib_title"]; // $form["bib_creator"] = $form_values["bib_creator"]; // $form["bib_subject"] = $form_values["bib_subject"]; // $form["bib_description"] = $form_values["bib_description"]; // $form["bib_publisher"] = $form_values["bib_publisher"]; // $form["bib_contributor"] = $form_values["bib_contributor"]; // $form["bib_date"] = $form_values["bib_date"]; // $form["bib_type"] = $form_values["bib_type"]; // $form["bib_source"] = $form_values["bib_source"]; // $form["bib_identifier"] = $form_values["bib_identifier"]; // $form["bib_language"] = $form_values["bib_language"]; // $form["bib_relation"] = $form_values["bib_relation"]; // $form["bib_rights"] = $form_values["bib_rights"]; // $form["bib_library"] = $form_values["bib_library"]; // $form["bib_inventory_number"] = $form_values["bib_inventory_number"]; // $form["bib_shelfmark"] = $form_values["bib_shelfmark"]; $form["dis_item"] = basename($file, ".jpg"); $form["img_sequence_number"] = $index; $form["img_nomenclature"] = basename($file, ".jpg"); $form["collection_pid"] = $form_values["pid"]; $form["op"] = "Ingest"; $form["submit"] = "Ingest"; $form["form_build_id"] = ""; $form["form_token"] = ""; $form["form_id"] = "fedora_repository_ingest_form"; $form["user_id"] = "admin"; $form["pid"] = $form["collection_pid"] . "-" . $index; $form["content_model_pid"] = "epistemetec:imageCModel"; $form["relationship"] = "isMemberOfCollection"; module_load_include('php', 'Fedora_Repository', 'epistemetec/plugins/FormBuilder'); $handle = new EpistemetecFormBuilder(); $handle->handleImageForm($form, TRUE); $index++; $output .= "<sequence>"; $output .= "<sequence_number>" . $form["img_sequence_number"] . "</sequence_number>"; $output .= "<nomenclature>" . $form["img_nomenclature"] . "</nomenclature>"; $output .= "</sequence>"; } $output .= "</stru>"; return $output; }
function handleImageForm($form_values, $isBook = FALSE) { global $base_url; module_load_include('php', 'Fedora_Repository', 'api/fedora_item'); $dom = new DomDocument("1.0", "UTF-8"); $dom->formatOutput = true; $pid = $form_values['pid']; $title = $form_values['img_nomenclature']; $rootElement = $dom->createElement("foxml:digitalObject"); $rootElement->setAttribute('VERSION', '1.1'); $rootElement->setAttribute('PID', "{$pid}"); $rootElement->setAttribute('xmlns:foxml', "info:fedora/fedora-system:def/foxml#"); $rootElement->setAttribute('xmlns:xsi', "http://www.w3.org/2001/XMLSchema-instance"); $rootElement->setAttribute('xsi:schemaLocation', "info:fedora/fedora-system:def/foxml# http://www.fedora.info/definitions/1/0/foxml1-1.xsd"); $dom->appendChild($rootElement); //create standard fedora stuff $this->createStandardFedoraStuff($form_values, $dom, $rootElement); //create relationships $this->createRelationShips($form_values, $dom, $rootElement); //create dublin core $myForm = array(); $myForm['dc:title'] = $title; $this->createQDCStream($myForm, $dom, $rootElement); //create mag metadata module_load_include('php', 'Fedora_Repository', 'epistemetec/plugins/ImageManipulation'); $image = new EpistemetecImageManipulation(); $image->getMetadata($form_values); $ccks = array(); if (!$isBook) { module_load_include('php', 'Fedora_Repository', 'epistemetec/plugins/Node'); $node = new EpistemetecNode(); $ccks = $node->hashCCK($form_values, IMAGE_DL); $nid = $node->createNode($ccks, ITEM_DL); $form_values['dru_nurl'] = $base_url . '/node/' . $nid; $form_values['dru_nid'] = $nid; } $this->createMAGStream($form_values, $dom, $rootElement, 'image'); if (!empty($form_values['ingest-file-location'])) { $this->createFedoraDataStreams($form_values, $dom, $rootElement); } $collectionPid = $form_values['collection_pid']; $this->createPolicy($collectionPid, &$dom, &$rootElement); try { $object = Fedora_Item::ingest_from_FOXML($dom); if (!empty($object->pid)) { drupal_set_message("Item " . l($object->pid, 'fedora/repository/' . $object->pid) . " created successfully.", "status"); //TODO: creare qui il nuovo nodo drupal e caricare il valore del pid in un campo CCK } if (!empty($_SESSION['fedora_ingest_files'])) { foreach ($_SESSION['fedora_ingest_files'] as $dsid => $createdFile) { file_delete($createdFile); } } file_delete($form_values['ingest-file-location']); if (!$isBook) { $node->addNodeReference($ccks); } } catch (exception $e) { node_delete($nid); drupal_set_message(t('Error Ingesting Object! ') . $e->getMessage(), 'error'); watchdog(t("Fedora_Repository"), t("Error Ingesting Object!") . $e->getMessage(), NULL, WATCHDOG_ERROR); return; } }