1: <?php
2:
3: ini_set('auto_detect_line_endings', TRUE);
4:
5: function DescriptivMetafromarray($csvarray, $registrant, $sep, Simplelog $log) {
6:
7: $desmeta = new IGSN_Descriptive_Metadata_Representation();
8:
9: if (!empty($csvarray['igsn'])) {
10: $desmeta->setIdentifier_type($csvarray['igsn'], 'IGSN');
11: } else {
12: echo "\r\n";
13: echo 'to errorhandling!! des GSN Missing in Sampel';
14: echo "\r\n";
15: }
16: $desmeta->setRegistrantName($registrant);
17: $desmeta->setRegistrant_affiliation_name('Helmholtz Centre Potsdam - GFZ German Research Centre for Geosciences');
18: // $desmeta->setRegistrant_affiliation_identifier_name($registrantAffiliationIdentifier, $registrantAffiliationIdentifiertype, $registrantAffiliationName);
19: $desmeta->setIdentifier_withType($csvarray['igsn'], 'IGSN');
20: // $desmeta->setIdentifier_withType($csvarray[$i]['igsn'], $csvarray[$i]['identifierType']);
21: if (!empty($csvarray['name'])) {
22: $desmeta->setName($csvarray['name']);
23: }
24: // Sample Access is mandatory Value
25: if (isset($csvarray['sampleAccess'])) {
26: $access = ucfirst($csvarray['sampleAccess']);
27: if (strcmp($access, 'Public') === 0) {
28: $desmeta->setSampleAccess('Public');
29: }
30: } else {
31: $desmeta->setSampleAccess('Private');
32: }
33:
34: if (isset($csvarray['description'])) {
35: $desmeta->setDescription($csvarray['description']);
36: }
37: else {
38: $desmeta->setDescription('');
39: }
40:
41:
42: if (isset($csvarray['collector']) && isset($csvarray['orcid']) && isset($csvarray['affiliation'])&& isset($csvarray['ror'])) {
43: $desmeta->setCollector_identifier_type(($csvarray['orcid']),'ORCID' );
44: $desmeta->setCollectorName($csvarray['collector']);
45: $desmeta->setCollector_affiliation_name_identifier($csvarray['affiliation'], $csvarray['ror'], 'URL');
46:
47: }elseif(isset($csvarray['collector']) && isset($csvarray['orcid']) && isset($csvarray['affiliation'])){
48:
49: $desmeta->setCollector_identifier_type(($csvarray['orcid']),'ORCID' );
50: $desmeta->setCollectorName($csvarray['collector']);
51: }elseif(isset($csvarray['collector']) && isset($csvarray['orcid']) ){
52:
53: $desmeta->setCollectorName($csvarray['collector']);
54: $desmeta->setCollector_identifier_type(($csvarray['orcid']),'ORCID' );
55: $desmeta->setCollectorName($csvarray['collector']);
56: }elseif(isset($csvarray['collector']) && isset($csvarray['affiliation'])){
57:
58: }
59:
60: if (isset($csvarray['resourceType'])) {
61: $desmeta->setResourceType($csvarray['resourceType']);
62: } else {
63: $desmeta->setResourceType('');
64: }
65:
66: //@Todo review
67: if (!empty($csvarray['contributor']) & !empty($csvarray['contributorType'])) {
68: $contributor_liste = NULL;
69: $contributorType_identifierlist = Null;
70: $contributor_count = substr_count($csvarray['contributor'], $sep);
71: if ($contributor_count > 0) {
72: $contributor_liste = valueSplit($csvarray['contributor'], $sep);
73: $contributorType_count = substr_count($csvarray['contributorType'], $sep);
74: if ($contributor_count === $contributorType_count) {
75: $contributorType_identifierlist = valueSplit($csvarray['contributorType'], $sep);
76: for ($r = 0; $r < $contributor_count; $r++) {
77: $desmeta->setContributor_nametype($contributor_liste[$r], $contributorType_identifierlist[$r]);
78: }
79: } elseif ($contributorType_count == 1) {
80: for ($r = 0; $r < $contributor_count; $r++) {
81: $desmeta->setContributor_nametype($contributor_liste[$r], $contributorType_identifierlist[1]);
82: }
83: } else {
84: $log->logmessage('Error on Contributer Number of Contributor an dContributorsTypes differ to much');
85: }
86: } else {
87: $desmeta->setContributor_nametype($csvarray['contributor'], $csvarray['contributorType']);
88: }
89: }
90:
91: if (isset($csvarray['material'])) {
92: $desmeta->setMaterial($csvarray['material'], ENT_QUOTES | ENT_IGNORE, "UTF-8");
93: } else {
94: $desmeta->setMaterial('');
95: }
96:
97:
98: return $desmeta;
99: }
100: