From 9d1bbb050b19839ad57e459f919fbb75fe5453c6 Mon Sep 17 00:00:00 2001 From: rwincewicz Date: Thu, 24 May 2012 11:08:27 -0300 Subject: [PATCH 1/6] Adding .install file to image solution pack --- .../islandora_basic_image.install | 95 ++ .../xml/islandora_basic_imageCM.xml | 818 ++++++++++++++++++ .../xml/islandora_basic_image_collection.xml | 51 ++ ...slandora_basic_image_collection_policy.xml | 11 + .../xml/simple_islandora_basic_imageCM.xml | 75 ++ 5 files changed, 1050 insertions(+) create mode 100644 islandora_basic_image/islandora_basic_image.install create mode 100644 islandora_basic_image/xml/islandora_basic_imageCM.xml create mode 100644 islandora_basic_image/xml/islandora_basic_image_collection.xml create mode 100644 islandora_basic_image/xml/islandora_basic_image_collection_policy.xml create mode 100644 islandora_basic_image/xml/simple_islandora_basic_imageCM.xml diff --git a/islandora_basic_image/islandora_basic_image.install b/islandora_basic_image/islandora_basic_image.install new file mode 100644 index 00000000..9702cf58 --- /dev/null +++ b/islandora_basic_image/islandora_basic_image.install @@ -0,0 +1,95 @@ + $e)), 'error'); + return; + } + + $content_model_query = $restConnection->api->a->findObjects('query', 'pid=islandora:sp_basic_image'); + if (empty($content_model_query['results'])) { + try { + $xml = file_get_contents(drupal_get_path('module', 'islandora_basic_image') . '/xml/simple_islandora_basic_imageCM.xml'); + $restConnection->api->m->ingest(array('string' => $xml)); + } catch (Exception $e) { + drupal_set_message(t('Unable to install content models %e', array('%e' => $e)), 'error'); + return; + } + drupal_set_message(t('Content models installed!')); + } + else { + drupal_set_message(t('Content models already exist!'), 'warning'); + } + + $collection_query = $restConnection->api->a->findObjects('query', 'pid=islandora:sp_basic_image_collection'); + if (empty($collection_query['results'])) { + try { + $xml = file_get_contents(drupal_get_path('module', 'islandora_basic_image') . '/xml/islandora_basic_image_collection.xml'); + $restConnection->api->m->ingest(array('string' => $xml)); + $fedora_object = new FedoraObject('islandora:sp_basic_image_collection', $restConnection->repository); + $datastream = new FedoraDatastream('COLLECTION_POLICY', $fedora_object, $restConnection->repository); + $datastream->setContentFromFile($base_root . '/' . drupal_get_path('module', 'islandora_basic_image') . '/xml/islandora_basic_image_collection_policy.xml'); + $datastream->controlGroup = 'M'; + + } catch (Exception $e) { + drupal_set_message(t('Unable to install collections %e', array('%e' => $e)), 'error'); + return; + } + drupal_set_message(t('Collections installed!')); + } + else { + drupal_set_message(t('Collections already exist!'), 'warning'); + } +} + +function islandora_basic_image_uninstall() { + module_load_include('inc', 'islandora', 'RestConnection'); + global $user; + try { + $restConnection = new RestConnection($user); + } catch (Exception $e) { + drupal_set_message(t('Unable to connect to the repository %e', array('%e' => $e)), 'error'); + return; + } + + $content_model_query = $restConnection->api->a->findObjects('query', 'pid=islandora:sp_basic_image'); + if (!empty($content_model_query['results'])) { + try { + $restConnection->repository->purgeObject('islandora:sp_basic_image'); + } catch (Exception $e) { + drupal_set_message(t('Unable to purge content models %e', array('%e' => $e)), 'error'); + return; + } + drupal_set_message(t('Content models purged!')); + } + else { + drupal_set_message(t('Content models don\'t exist!'), 'warning'); + } + + $collection_query = $restConnection->api->a->findObjects('query', 'pid=islandora:sp_basic_image_collection'); + if (!empty($collection_query['results'])) { + try { + $restConnection->repository->purgeObject('islandora:sp_basic_image_collection'); + } catch (Exception $e) { + drupal_set_message(t('Unable to purge collections %e', array('%e' => $e)), 'error'); + return; + } + drupal_set_message(t('Collections purged!')); + } + else { + drupal_set_message(t('Collections don\'t exist!'), 'warning'); + } +} \ No newline at end of file diff --git a/islandora_basic_image/xml/islandora_basic_imageCM.xml b/islandora_basic_image/xml/islandora_basic_imageCM.xml new file mode 100644 index 00000000..cb3fae77 --- /dev/null +++ b/islandora_basic_image/xml/islandora_basic_imageCM.xml @@ -0,0 +1,818 @@ + + + + + + + + + + + + + + + +
+ + + +
+ +
+
+ +
+
+ +
+
+
+
+
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + + + + + + + + + + + + Islandora basic image content model + islandora:sp_basic_image + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + XML Schema 2002-03-18 by Pete Johnston. + Adjusted for usage in the OAI-PMH. + Schema imports the Dublin Core elements from the DCMI schema for unqualified Dublin Core. + 2002-12-19 updated to use simpledc20021212.xsd (instead of simpledc20020312.xsd) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Simple DC XML Schema, 2002-10-09 + by Pete Johnston (p.johnston@ukoln.ac.uk), + Carl Lagoze (lagoze@cs.cornell.edu), Andy Powell (a.powell@ukoln.ac.uk), + Herbert Van de Sompel (hvdsomp@yahoo.com). + This schema defines terms for Simple Dublin Core, i.e. the 15 + elements from the http://purl.org/dc/elements/1.1/ namespace, with + no use of encoding schemes or element refinements. + Default content type for all elements is xs:string with xml:lang + attribute available. + + Supercedes version of 2002-03-12. + Amended to remove namespace declaration for http://www.w3.org/XML/1998/namespace namespace, + and to reference lang attribute via built-in xml: namespace prefix. + xs:appinfo also removed. + + + + + + + + + + + + This is the default type for all of the DC elements. + It permits text content only with optional + xml:lang attribute. + Text is allowed because mixed="true", but sub-elements + are disallowed because minOccurs="0" and maxOccurs="0" + are on the xs:any tag. + + This complexType allows for restriction or extension permitting + child elements. + + + + + + + + + + + + + + + + + + + + + + + + + + + invisible + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + See http://www.w3.org/XML/1998/namespace.html and + http://www.w3.org/TR/REC-xml for information about this namespace. + + This schema document describes the XML namespace, in a form + suitable for import by other schema documents. + + Note that local names in this namespace are intended to be defined + only by the World Wide Web Consortium or its subgroups. The + following names are currently defined in this namespace and should + not be used with conflicting semantics by any Working Group, + specification, or document instance: + + base (as an attribute name): denotes an attribute whose value + provides a URI to be used as the base for interpreting any + relative URIs in the scope of the element on which it + appears; its value is inherited. This name is reserved + by virtue of its definition in the XML Base specification. + + lang (as an attribute name): denotes an attribute whose value + is a language code for the natural language of the content of + any element; its value is inherited. This name is reserved + by virtue of its definition in the XML specification. + + space (as an attribute name): denotes an attribute whose + value is a keyword indicating what whitespace processing + discipline is intended for the content of the element; its + value is inherited. This name is reserved by virtue of its + definition in the XML specification. + + Father (in any context at all): denotes Jon Bosak, the chair of + the original XML Working Group. This name is reserved by + the following decision of the W3C XML Plenary and + XML Coordination groups: + + In appreciation for his vision, leadership and dedication + the W3C XML Plenary on this 10th day of February, 2000 + reserves for Jon Bosak in perpetuity the XML name + xml:Father + + + + + + In keeping with the XML Schema WG's standard versioning + policy, this schema document will persist at + http://www.w3.org/2001/03/xml.xsd. + At the date of issue it can also be found at + http://www.w3.org/2001/xml.xsd. + The schema document at that URI may however change in the future, + in order to remain compatible with the latest version of XML Schema + itself. In other words, if the XML Schema namespace changes, the version + of this document at + http://www.w3.org/2001/xml.xsd will change + accordingly; the version at + http://www.w3.org/2001/03/xml.xsd will not change. + + + + + + In due course, we should install the relevant ISO 2- and 3-letter + codes as the enumerated possible values . . . + + + + + + + + + + + + + + + + + See http://www.w3.org/TR/xmlbase/ for + information about this attribute. + + + + + + + + + + + + + + + + + + + + + + + + + Islandora Content Model Schema + Islandora, Robertson Library, University of Prince Edward Island, 550 University Ave., Charlottetown, Prince Edward Island + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/islandora_basic_image/xml/islandora_basic_image_collection.xml b/islandora_basic_image/xml/islandora_basic_image_collection.xml new file mode 100644 index 00000000..d70f63e1 --- /dev/null +++ b/islandora_basic_image/xml/islandora_basic_image_collection.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + Islandora Basic Image Collection + islandora:sp_basic_image_collection + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/islandora_basic_image/xml/islandora_basic_image_collection_policy.xml b/islandora_basic_image/xml/islandora_basic_image_collection_policy.xml new file mode 100644 index 00000000..c259bab3 --- /dev/null +++ b/islandora_basic_image/xml/islandora_basic_image_collection_policy.xml @@ -0,0 +1,11 @@ + + + + + + + isMemberOfCollection + \ No newline at end of file diff --git a/islandora_basic_image/xml/simple_islandora_basic_imageCM.xml b/islandora_basic_image/xml/simple_islandora_basic_imageCM.xml new file mode 100644 index 00000000..356f6d52 --- /dev/null +++ b/islandora_basic_image/xml/simple_islandora_basic_imageCM.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+ + + + + + + + + + Islandora basic image content model + islandora:sp_basic_image + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 256a9013033f9d387ac2844753bf379b3c9e2ed0 Mon Sep 17 00:00:00 2001 From: Paul Pound Date: Thu, 24 May 2012 12:27:12 -0300 Subject: [PATCH 2/6] added formatted array output to dublin core class --- includes/islandora_dublin_core.inc | 19 +++++++++++++++++++ .../islandora_basic_image.module | 19 +------------------ 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/includes/islandora_dublin_core.inc b/includes/islandora_dublin_core.inc index 9ea4aa35..6d3326e5 100644 --- a/includes/islandora_dublin_core.inc +++ b/includes/islandora_dublin_core.inc @@ -99,6 +99,25 @@ class Dublin_Core { } + function as_formatted_array() { + $dc_array = array(); + foreach ($this->dc as $element) { + if (!empty($element)) { + foreach ($element as $field => $value) { + // split value if the result value is an array + if (is_array($value)) { + $value = implode(", ", $value); + } + $dc_label = explode(':', $field); + $element_label = ucfirst($dc_label[1]); + $dc_array[$field]['label'] = $element_label; + $dc_array[$field]['value'] = strip_tags($value); + $dc_array[$field]['class'] = strtolower(preg_replace('/[^A-Za-z0-9]/', '-', $field)); + } + } + } + return $dc_array; + } /** diff --git a/islandora_basic_image/islandora_basic_image.module b/islandora_basic_image/islandora_basic_image.module index 372d80dd..ec3e9cd1 100644 --- a/islandora_basic_image/islandora_basic_image.module +++ b/islandora_basic_image/islandora_basic_image.module @@ -101,24 +101,7 @@ function islandora_basic_image_preprocess_islandora_basic_image(&$variables) { $variables['islandora_dublin_core'] = $dc_object; //create a nicer array for themers //TODO: give this a better home - - $dc_array = array(); - foreach ($dc_object as $element) { - if (!empty($element)) { - foreach ($element as $field => $value) { - // split value if the result value is an array - if (is_array($value)) { - $value = implode(", ", $value); - } - $dc_label = explode(':', $field); - $element_label = ucfirst($dc_label[1]); - $dc_array[$field]['label'] = $element_label; - $dc_array[$field]['value'] = strip_tags($value); - $dc_array[$field]['class'] = strtolower( preg_replace('/[^A-Za-z0-9]/', '-', $field)); - } - } - } - $variables['dc_array'] = $dc_array; + $variables['dc_array'] = $dc_object->as_formatted_array(); $variables['islandora_object_label'] = $islandora_object->label; $variables['theme_hook_suggestions'][] = 'islandora_basic_image__' . str_replace(':', '_', $islandora_object->id); global $base_url; From 804725a2eb5aa93cddae5943ad8f5c42345c4966 Mon Sep 17 00:00:00 2001 From: Paul Pound Date: Thu, 24 May 2012 13:35:52 -0300 Subject: [PATCH 3/6] fixed the as_formatted array from dublin core class i think --- includes/datastream.inc | 158 ++++++++++++++++++ includes/islandora_dublin_core.inc | 2 +- .../islandora_basic_image.module | 18 ++ 3 files changed, 177 insertions(+), 1 deletion(-) diff --git a/includes/datastream.inc b/includes/datastream.inc index 2f271e60..6fa95ddc 100644 --- a/includes/datastream.inc +++ b/includes/datastream.inc @@ -12,6 +12,9 @@ * @return stream * prints datastream to browser */ + +define('DS_COMP_STREAM', 'DS-COMPOSITE-MODEL'); + function islandora_datastream_as_attachment($object_id, $dsid) { module_load_include('inc', 'islandora', 'RestConnection'); global $user; @@ -33,3 +36,158 @@ function islandora_datastream_as_attachment($object_id, $dsid) { exit(); } + +/** + * + * @param array $arr + * an array of dsids that are defined by this objects cmodels + * @param string $ds_comp_stream + * the dscomposite stream as xml + */ +function islandora_update_available_dsids_array(&$arr, $ds_comp_stream){ + $sxml = new SimpleXMLElement($ds_comp_stream); + foreach($sxml->dsTypeModel as $ds){ + //$arr[$ds['ID']] + $mimes = array(); + foreach($ds->form as $form){ + $mimetype = (string)$form['MIME']; + $mimes[] = $mimetype; + } + $dsid = (string)$ds['ID']; + if($dsid != 'AUDIT'){ + $arr[(string)$ds['ID']] = $mimes; + } + } +} + +/** + * this function may not be being used + * @param type $pid + * @param type $form_state + * @return string + */ +function islandora_add_datastream_form($object_id, &$form_state) { + //dump_vars($form_state); + // Populate the list of datastream IDs. + module_load_include('inc', 'islandora', 'RestConnection'); + global $user; + try { + $restConnection = new RestConnection($user); + $fedora_object = new FedoraObject($object_id, $restConnection->repository); + } catch (Exception $e) { + drupal_set_message(t('Error getting Islandora object %s ', array('%s' => $object_id)), 'error'); + return ""; + } + if (!isset($fedora_object)) { + drupal_set_message(t('Could not create add datastream form for %s'), array('%s' => $object_id)); + return; + } + $models = $fedora_object->models; + $available_dsids = array(); + if (isset($models)) { + foreach ($models as $model) { + try { + $model_object = new FedoraObject($model, $restConnection->repository); + $dscomposite_stream = $model_object[DS_COMP_STREAM]->content; + islandora_update_available_dsids_array($available_dsids, $dscomposite_stream); + } catch (Exception $e) { + //do nothing as other objects may have a dscompsite stream + } + //$model_ds_comp = + } + } + + /*if (!empty($content_models)) { + foreach ($content_models as $content_model) { + + + $newElements = $content_model->listDatastreams(); + if (!empty($newElements)) { + $available_dsids = array_merge($available_dsids, $newElements); + } + } + } + + $item = new Fedora_Item($pid); + $used_datastreams = $item->get_datastreams_list_as_SimpleXML(); + $used_datastream_ids = array(); + foreach ($used_datastreams->datastreamDef as $used_datastream) { + array_push($used_datastream_ids, $used_datastream->ID); + } + $unused_dsids = array(); + + if ($form_state['submitted'] && $form_state['clicked_button']['#value'] != 'OK') { + $form['add_datastream_label'] = array( + '#value' => t('

The datastream has been uploaded.

'), + '#weight' => -10, + ); + $form['#redirect'] = "fedora/repository/$pid/"; + $form['submit'] = array( + '#type' => 'submit', + '#value' => t('OK') + ); + return $form; + } + if (!empty($available_dsids)) { + $unused_dsids = array_diff($available_dsids, $used_datastream_ids); + if (empty($unused_dsids)) { + return; + } + } + + $form['add_datastream_label'] = array( + '#value' => t('

Add Datastream:

'), + '#weight' => -10, + ); + + $form['pid'] = array( + '#type' => 'hidden', + '#value' => "$pid" + ); + + $form['stream_label'] = array( + '#title' => 'Datastream Label', + '#required' => 'TRUE', + '#description' => t('A Human readable label'), + '#type' => 'textfield' + ); + + $form['#attributes']['enctype'] = 'multipart/form-data'; + $form['add-stream-file-location'] = array( + '#type' => 'file', + '#title' => t('Upload Document'), + '#size' => 48, + // '#required'=>'TRUE', + '#description' => t('The file to upload.') + ); + $form['#redirect'] = "fedora/repository/$pid/"; + $form['submit'] = array( + '#type' => 'submit', + '#value' => t('Add Datastream') + ); + + if (!empty($unused_dsids)) { + $dsidsForForm = array(); + foreach ($unused_dsids as $dsid) { + $dsidsForForm[$dsid] = $dsid; + } + $form['stream_id'] = array( + '#type' => 'select', + '#title' => t('Datastream ID'), + '#default_value' => variable_get('feed_item_length', 'teaser'), + '#weight' => '-1', + '#description' => t('Datastream IDs defined by the content model.'), + ); + $form['stream_id']['#options'] = array_combine($unused_dsids, $unused_dsids); + } + else { + $form['stream_id'] = array( + '#title' => 'Datastream ID', + '#required' => 'TRUE', + '#description' => t('An ID for this stream that is unique to this object. Must start with a letter and contain only alphanumeric characters and dashes and underscores.'), + '#type' => 'textfield', + '#weight' => -1, + ); + } + return $form;*/ +} diff --git a/includes/islandora_dublin_core.inc b/includes/islandora_dublin_core.inc index 6d3326e5..c59c89f2 100644 --- a/includes/islandora_dublin_core.inc +++ b/includes/islandora_dublin_core.inc @@ -101,7 +101,7 @@ class Dublin_Core { function as_formatted_array() { $dc_array = array(); - foreach ($this->dc as $element) { + foreach ($this as $element) { if (!empty($element)) { foreach ($element as $field => $value) { // split value if the result value is an array diff --git a/islandora_basic_image/islandora_basic_image.module b/islandora_basic_image/islandora_basic_image.module index ec3e9cd1..ff952c64 100644 --- a/islandora_basic_image/islandora_basic_image.module +++ b/islandora_basic_image/islandora_basic_image.module @@ -101,6 +101,24 @@ function islandora_basic_image_preprocess_islandora_basic_image(&$variables) { $variables['islandora_dublin_core'] = $dc_object; //create a nicer array for themers //TODO: give this a better home + + //$dc_array = array(); + //foreach ($dc_object as $element) { + // if (!empty($element)) { + // foreach ($element as $field => $value) { + // // split value if the result value is an array + // if (is_array($value)) { + // $value = implode(", ", $value); + // } + // $dc_label = explode(':', $field); + // $element_label = ucfirst($dc_label[1]); + // $dc_array[$field]['label'] = $element_label; + // $dc_array[$field]['value'] = strip_tags($value); + // $dc_array[$field]['class'] = strtolower( preg_replace('/[^A-Za-z0-9]/', '-', $field)); + // } + // } + //} + $variables['dc_array'] = $dc_object->as_formatted_array(); $variables['islandora_object_label'] = $islandora_object->label; $variables['theme_hook_suggestions'][] = 'islandora_basic_image__' . str_replace(':', '_', $islandora_object->id); From a4d7cf1eee61df699a3055e0947919e82cd04f7a Mon Sep 17 00:00:00 2001 From: rwincewicz Date: Thu, 24 May 2012 14:10:21 -0300 Subject: [PATCH 4/6] Added thumbnail to basic image collection object --- .../Crystal_Clear_filesystem_folder_grey.png | Bin 0 -> 5137 bytes .../islandora_basic_image.install | 9 ++++-- .../xml/islandora_basic_image_collection.xml | 29 ++++++++---------- 3 files changed, 18 insertions(+), 20 deletions(-) create mode 100644 islandora_basic_image/Crystal_Clear_filesystem_folder_grey.png diff --git a/islandora_basic_image/Crystal_Clear_filesystem_folder_grey.png b/islandora_basic_image/Crystal_Clear_filesystem_folder_grey.png new file mode 100644 index 0000000000000000000000000000000000000000..f4c80d830c5360c15a503e50e0bf3d8f7df3cddf GIT binary patch literal 5137 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 literal 0 HcmV?d00001 diff --git a/islandora_basic_image/islandora_basic_image.install b/islandora_basic_image/islandora_basic_image.install index 9702cf58..f900d247 100644 --- a/islandora_basic_image/islandora_basic_image.install +++ b/islandora_basic_image/islandora_basic_image.install @@ -40,9 +40,12 @@ function islandora_basic_image_install() { $xml = file_get_contents(drupal_get_path('module', 'islandora_basic_image') . '/xml/islandora_basic_image_collection.xml'); $restConnection->api->m->ingest(array('string' => $xml)); $fedora_object = new FedoraObject('islandora:sp_basic_image_collection', $restConnection->repository); - $datastream = new FedoraDatastream('COLLECTION_POLICY', $fedora_object, $restConnection->repository); - $datastream->setContentFromFile($base_root . '/' . drupal_get_path('module', 'islandora_basic_image') . '/xml/islandora_basic_image_collection_policy.xml'); - $datastream->controlGroup = 'M'; + $datastream = new NewFedoraDatastream('TN', 'M', $fedora_object, $restConnection->repository); + $file_path = $base_root . '/' . drupal_get_path('module', 'islandora_basic_image') . '/Crystal_Clear_filesystem_folder_grey.png'; + $datastream->label = 'Thumbnail'; + $datastream->mimetype = 'image/png'; + $datastream->setContentFromUrl($file_path); + $fedora_object->ingestDatastream($datastream); } catch (Exception $e) { drupal_set_message(t('Unable to install collections %e', array('%e' => $e)), 'error'); diff --git a/islandora_basic_image/xml/islandora_basic_image_collection.xml b/islandora_basic_image/xml/islandora_basic_image_collection.xml index d70f63e1..29eccbec 100644 --- a/islandora_basic_image/xml/islandora_basic_image_collection.xml +++ b/islandora_basic_image/xml/islandora_basic_image_collection.xml @@ -19,32 +19,27 @@ xsi:schemaLocation="info:fedora/fedora-system:def/foxml# http://www.fedora.info/ - - - - - - - - - - + + - + + + - - - - - - + + + + + + isMemberOfCollection + From 90fa0ec600bde3c035965d58026b69c5ae7fadec Mon Sep 17 00:00:00 2001 From: rwincewicz Date: Thu, 24 May 2012 14:33:25 -0300 Subject: [PATCH 5/6] Fixed collection XML so RELS-EXT is created --- .../xml/islandora_basic_image_collection.xml | 88 ++++++++++--------- 1 file changed, 45 insertions(+), 43 deletions(-) diff --git a/islandora_basic_image/xml/islandora_basic_image_collection.xml b/islandora_basic_image/xml/islandora_basic_image_collection.xml index 29eccbec..adb21ca8 100644 --- a/islandora_basic_image/xml/islandora_basic_image_collection.xml +++ b/islandora_basic_image/xml/islandora_basic_image_collection.xml @@ -1,46 +1,48 @@ - - - - - - - - - - - - Islandora Basic Image Collection - islandora:sp_basic_image_collection - - - - - - - - - - - - - - - - - - - - - - - isMemberOfCollection - - - - + xmlns:foxml="info:fedora/fedora-system:def/foxml#" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="info:fedora/fedora-system:def/foxml# http://www.fedora.info/definitions/1/0/foxml1-1.xsd"> + + + + + + + + + + + + Islandora Basic Image Collection + islandora:sp_basic_image_collection + + + + + + + + + + + + + + + + + + + + + + + + + isMemberOfCollection + + + + \ No newline at end of file From 04116a587ab0b895bd2ac172a2dcf9a53634445d Mon Sep 17 00:00:00 2001 From: rwincewicz Date: Thu, 24 May 2012 14:58:36 -0300 Subject: [PATCH 6/6] Added .install file for islandora_basic_collection module --- .../Crystal_Clear_filesystem_folder_grey.png | Bin 0 -> 5137 bytes .../islandora_basic_collection.install | 95 ++++++++++++++++++ .../xml/islandora_collection_CModel.xml | 58 +++++++++++ .../xml/islandora_root_collection.xml | 68 +++++++++++++ 4 files changed, 221 insertions(+) create mode 100644 islandora_basic_collection/Crystal_Clear_filesystem_folder_grey.png create mode 100644 islandora_basic_collection/islandora_basic_collection.install create mode 100644 islandora_basic_collection/xml/islandora_collection_CModel.xml create mode 100644 islandora_basic_collection/xml/islandora_root_collection.xml diff --git a/islandora_basic_collection/Crystal_Clear_filesystem_folder_grey.png b/islandora_basic_collection/Crystal_Clear_filesystem_folder_grey.png new file mode 100644 index 0000000000000000000000000000000000000000..f4c80d830c5360c15a503e50e0bf3d8f7df3cddf GIT binary patch literal 5137 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 literal 0 HcmV?d00001 diff --git a/islandora_basic_collection/islandora_basic_collection.install b/islandora_basic_collection/islandora_basic_collection.install new file mode 100644 index 00000000..6b90190d --- /dev/null +++ b/islandora_basic_collection/islandora_basic_collection.install @@ -0,0 +1,95 @@ + $e)), 'error'); + return; + } + + $content_model_query = $restConnection->api->a->findObjects('query', 'pid=islandora:collectionCModel'); + if (empty($content_model_query['results'])) { + try { + $xml = file_get_contents(drupal_get_path('module', 'islandora_basic_collection') . '/xml/islandora_collection_CModel.xml'); + $restConnection->api->m->ingest(array('string' => $xml)); + } catch (Exception $e) { + drupal_set_message(t('Unable to install content models %e', array('%e' => $e)), 'error'); + return; + } + drupal_set_message(t('Content models installed!')); + } + else { + drupal_set_message(t('Content models already exist!'), 'warning'); + } + + $collection_query = $restConnection->api->a->findObjects('query', 'pid=islandora:root'); + if (empty($collection_query['results'])) { + try { + $xml = file_get_contents(drupal_get_path('module', 'islandora_basic_collection') . '/xml/islandora_root_collection.xml'); + $restConnection->api->m->ingest(array('string' => $xml)); + $fedora_object = new FedoraObject('islandora:root', $restConnection->repository); + $datastream = new NewFedoraDatastream('TN', 'M', $fedora_object, $restConnection->repository); + $file_path = $base_root . '/' . drupal_get_path('module', 'islandora_basic_collection') . '/Crystal_Clear_filesystem_folder_grey.png'; + $datastream->label = 'Thumbnail'; + $datastream->mimetype = 'image/png'; + $datastream->setContentFromUrl($file_path); + $fedora_object->ingestDatastream($datastream); + + } catch (Exception $e) { + drupal_set_message(t('Unable to install collections %e', array('%e' => $e)), 'error'); + return; + } + drupal_set_message(t('Collections installed!')); + } + else { + drupal_set_message(t('Collections already exist!'), 'warning'); + } +} + +function islandora_basic_collection_uninstall() { + module_load_include('inc', 'islandora', 'RestConnection'); + global $user; + try { + $restConnection = new RestConnection($user); + } catch (Exception $e) { + drupal_set_message(t('Unable to connect to the repository %e', array('%e' => $e)), 'error'); + return; + } + + $content_model_query = $restConnection->api->a->findObjects('query', 'pid=islandora:collectionCModel'); + if (!empty($content_model_query['results'])) { + try { + $restConnection->repository->purgeObject('islandora:collectionCModel'); + } catch (Exception $e) { + drupal_set_message(t('Unable to purge content models %e', array('%e' => $e)), 'error'); + return; + } + drupal_set_message(t('Content models purged!')); + } + else { + drupal_set_message(t('Content models don\'t exist!'), 'warning'); + } + + $collection_query = $restConnection->api->a->findObjects('query', 'pid=islandora:root'); + if (!empty($collection_query['results'])) { + try { + $restConnection->repository->purgeObject('islandora:root'); + } catch (Exception $e) { + drupal_set_message(t('Unable to purge collections %e', array('%e' => $e)), 'error'); + return; + } + drupal_set_message(t('Collections purged!')); + } + else { + drupal_set_message(t('Collections don\'t exist!'), 'warning'); + } +} \ No newline at end of file diff --git a/islandora_basic_collection/xml/islandora_collection_CModel.xml b/islandora_basic_collection/xml/islandora_collection_CModel.xml new file mode 100644 index 00000000..06966bdf --- /dev/null +++ b/islandora_basic_collection/xml/islandora_collection_CModel.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + Islandora Collection Content Model + islandora:collectionCModel + + + + + + + + + + + + +
+
+ +
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/islandora_basic_collection/xml/islandora_root_collection.xml b/islandora_basic_collection/xml/islandora_root_collection.xml new file mode 100644 index 00000000..ac276efd --- /dev/null +++ b/islandora_basic_collection/xml/islandora_root_collection.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + Islandora Top-level Collection + islandora:root + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + dc.title + dc.creator + dc.description + dc.date + dc.identifier + dc.language + dc.publisher + dc.rights + dc.subject + dc.relation + dcterms.temporal + dcterms.spatial + Full Text + + isMemberOfCollection + + + + + \ No newline at end of file