Browse Source

Name changes and error trapping

pull/907/head
Alan Stanley 7 years ago
parent
commit
bf55f84649
  1. 22
      config/install/field.field.media.fits_technical_metadata.field_complete.yml
  2. 21
      config/install/field.storage.media.field_complete.yml
  3. 2
      islandora_fits.services.yml
  4. 13
      src/Services/XMLTransform.php

22
config/install/field.field.media.fits_technical_metadata.field_complete.yml

@ -0,0 +1,22 @@
langcode: en
status: true
dependencies:
config:
- field.storage.media.field_complete
- media.type.fits_technical_metadata
id: media.fits_technical_metadata.field_complete
field_name: field_complete
entity_type: media
bundle: fits_technical_metadata
label: Complete
description: ''
required: false
translatable: false
default_value:
-
value: 0
default_value_callback: ''
settings:
on_label: Complete
off_label: Incomplete
field_type: boolean

21
config/install/field.storage.media.field_complete.yml

@ -0,0 +1,21 @@
langcode: en
status: true
dependencies:
module:
- field_permissions
- media
third_party_settings:
field_permissions:
permission_type: public
id: media.field_complete
field_name: field_complete
entity_type: media
type: boolean
settings: { }
module: core
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

2
islandora_fits.services.yml

@ -1,4 +1,4 @@
services:
islandora_fits.transformxml:
class: Drupal\islandora_fits\Services\XMLTransform
arguments: ['@renderer','@entity_field.manager']
arguments: ['@renderer','@entity_field.manager', '@messenger']

13
src/Services/XMLTransform.php

@ -15,13 +15,15 @@ class XMLTransform extends ServiceProviderBase {
private $renderer;
private $entityManager;
private $forbidden;
private $messenger;
/**
* Constructs a new XMLTransform object.
*/
public function __construct($renderer, $entityManager) {
public function __construct($renderer, $entityManager, $messenger) {
$this->renderer = $renderer;
$this->entityManager = $entityManager;
$this->messenger = $messenger;
$this->forbidden = ['-', ' '];
}
@ -32,7 +34,12 @@ class XMLTransform extends ServiceProviderBase {
* @return array
*/
public function transformFits($input_xml) {
$xml = new \SimpleXMLElement($input_xml);
try {
$xml = new \SimpleXMLElement($input_xml);
} catch (\Exception $e) {
$this->messenger->addWarning(t('File does not contain valid xml.'));
return;
}
$xml->registerXPathNamespace('fits', 'http://hul.harvard.edu/ois/xml/ns/fits/fits_output');
$fits_metadata = $this->islandora_fits_child_xpath($xml);
$headers = array(
@ -277,7 +284,7 @@ class XMLTransform extends ServiceProviderBase {
foreach ($all_fields as $label => $field_value) {
$lower = strtolower($label);
$normalized = str_replace($this->forbidden, '_', $lower);
$field_name = substr("field_$normalized", 0, 32);
$field_name = substr("fits_$normalized", 0, 32);
$to_add[$field_name] = $field_value;
}
foreach ($to_add as $field_name => $field_value) {

Loading…
Cancel
Save