1: <?php
2:
3: ini_set('auto_detect_line_endings', TRUE);
4: //include '';
5:
6: function GFZMetafromarray($csvarray, $usercode) {
7: $sep = ';';
8: $GFZmeta = new IGSN_GFZ_Descriptive_Metadata_Representation();
9:
10: if (!empty($csvarray['igsn'])) {
11: $GFZmeta->setIgsn($csvarray['igsn']);
12: } else {
13: return false;
14: }
15:
16: if (isset($csvarray['user_code'])) {
17: $GFZmeta->setUsercode($csvarray['user_code']);
18: } elseif (isset($csvarray['usercode'])) {
19: $GFZmeta->setUsercode($csvarray['usercode']);
20: } else {
21: $GFZmeta->setUsercode($usercode);
22: }
23:
24: if (isset($csvarray['parent_igsn'])) {
25: $GFZmeta->setParent_igsn($csvarray['parent_igsn']);
26: } else {
27: $GFZmeta->setParent_igsn('');
28: }
29:
30:
31: if (isset($csvarray['name'])) {
32: $GFZmeta->setName($csvarray['name']);
33: } else {
34: $GFZmeta->setName('');
35: }
36:
37:
38: if (isset($csvarray['is_private'])) {
39: $GFZmeta->setIs_private($csvarray['is_private']);
40: } else {
41: $GFZmeta->setIs_private('');
42: }
43:
44: if (isset($csvarray['sample_request'])) {
45: $GFZmeta->setSample_request($csvarray['sample_request']);
46: } else {
47: $GFZmeta->setSample_request('');
48: }
49:
50: if (isset($csvarray['sample_type'])) {
51: if (strcmp($csvarray['sample_type'], "Individual Sample>Liquid") == 0) {
52:
53: $GFZmeta->setSample_type('Individual Sample');
54: } else {
55: $GFZmeta->setSample_type($csvarray['sample_type']);
56: }
57: } else {
58: $GFZmeta->setSample_type('');
59: }
60:
61: if (isset($csvarray['sampled_by'])) {
62: $GFZmeta->setSampled_by($csvarray['sampled_by']);
63: } else {
64: $GFZmeta->setSampled_by('');
65: }
66:
67: if (isset($csvarray['sample_purpose'])) {
68: $GFZmeta->setSample_purpose($csvarray['sample_purpose']);
69: } else {
70: $GFZmeta->setSample_purpose('');
71: }
72:
73: //publish_date must not be empty
74: if (!empty($csvarray['publish_date'])) {
75: $GFZmeta->setPublish_date($csvarray['publish_date']);
76: }
77:
78: if (isset($csvarray['material'])) {
79:
80: $GFZmeta->setMaterial(htmlentities($csvarray['material'], ENT_QUOTES | ENT_IGNORE, "UTF-8"));
81: } else {
82: $GFZmeta->setMaterial('');
83: }
84:
85: // Check on existenz and Emtpyness to choose the best possible entry
86: if (isset($csvarray['latitude_wgs84']) && strcmp($csvarray['latitude_wgs84'], '') != 0) {
87: $GFZmeta->setLatitude($csvarray['latitude_wgs84']);
88: } elseif (isset($csvarray['latitude']) && strcmp($csvarray['latitude'], '') != 0) {
89: $GFZmeta->setLatitude($csvarray['latitude']);
90: }
91:
92: // Check on existenz and Emtpyness to choose the best possible entry
93: if (isset($csvarray['longitude_wgs84']) && strcmp($csvarray['longitude_wgs84'], '') != 0) {
94: $GFZmeta->setLongitude($csvarray['longitude_wgs84']);
95: } elseif (isset($csvarray['longitude']) && strcmp($csvarray['longitude'], '') != 0) {
96: $GFZmeta->setLongitude($csvarray['longitude']);
97: }
98:
99: if (isset($csvarray['latitude_end']) && strcmp($csvarray['latitude_end'], '') != 0) {
100: $GFZmeta->setLatitude_end($csvarray['latitude_end']);
101: }
102:
103: if (isset($csvarray['longitude_end']) && strcmp($csvarray['longitude_end'], '') != 0) {
104: $GFZmeta->setLongitude_end($csvarray['longitude_end']);
105: }
106:
107: if (isset($csvarray['coordinate_system_wgs84']) && strcmp($csvarray['coordinate_system_wgs84'], '') != 0) {
108: $GFZmeta->setCoordinate_system($csvarray['coordinate_system_wgs84']);
109: } elseif (isset($csvarray['coordinate_system']) && strcmp($csvarray['coordinate_system'], '') != 0) {
110: $GFZmeta->setCoordinate_system($csvarray['coordinate_system']);
111: }
112: if (isset($csvarray['elevation']) && strcmp($csvarray['elevation'], '') != 0) {
113: $GFZmeta->setElevation($csvarray['elevation']);
114: }
115:
116: if (isset($csvarray['elevation_end']) && strcmp($csvarray['elevation_end'], '') != 0) {
117: $GFZmeta->setElevation_end($csvarray['elevation_end']);
118: }
119:
120: if (isset($csvarray['elevation_unit']) && strcmp($csvarray['elevation_unit'], '') != 0) {
121: $GFZmeta->setElevation_unit($csvarray['elevation_unit']);
122: }
123: if (isset($csvarray['elevation_end_unit']) && strcmp($csvarray['elevation_end_unit'], '') != 0) {
124: $GFZmeta->setElevation_end_unit($csvarray['elevation_end_unit']);
125: }
126:
127: if (!empty($csvarray['sampling_date'])) {
128: $GFZmeta->setSampling_date($csvarray['sampling_date']);
129: }
130: if (!empty($csvarray['primary_location_type'])) {
131: $GFZmeta->setPrimary_location_type($csvarray['primary_location_type']);
132: }
133: if (!empty($csvarray['primary_location_name'])) {
134: $GFZmeta->setPrimary_location_name($csvarray['primary_location_name']);
135: }
136: if (!empty($csvarray['location_description'])) {
137: $GFZmeta->setLocation_description($csvarray['location_description']);
138: }
139: if (!empty($csvarray['locality'])) {
140: $GFZmeta->setLocality(htmlspecialchars($csvarray['locality']));
141: }
142: if (!empty($csvarray['locality_description'])) {
143: $GFZmeta->setLocality_description($csvarray['locality_description']);
144: }
145: if (!empty($csvarray['country'])) {
146: $GFZmeta->setCountry($csvarray['country']);
147: }
148: if (!empty($csvarray['province'])) {
149: $GFZmeta->setProvince($csvarray['province']);
150: }
151: if (!empty($csvarray['county'])) {
152: $GFZmeta->setCounty($csvarray['county']);
153: }
154: if (!empty($csvarray['city'])) {
155: $GFZmeta->setCity($csvarray['city']);
156: } if (!empty($csvarray['material'])) {
157: $GFZmeta->setMaterial($csvarray['material']);
158: }
159: if (isset($csvarray['classification'])) {
160: $GFZmeta->setClassification($csvarray['classification']);
161: }
162: if (!empty($csvarray['classification_comment'])) {
163: $GFZmeta->setClassification_comment($csvarray['classification_comment']);
164: }
165:
166: if (!empty($csvarray['field_name'])) {
167: $GFZmeta->setfield_name($csvarray['field_name']);
168: }
169:
170:
171: if (isset($csvarray['description'])) {
172:
173: $GFZmeta->setDescription($csvarray['description']);
174: } else {
175: $GFZmeta->setDescription('');
176: }
177:
178:
179: if (!empty($csvarray['collection_start_date'])) {
180: $GFZmeta->setCollection_start_date($csvarray['collection_start_date']);
181: }
182: if (!empty($csvarray['collection_end_date'])) {
183: $GFZmeta->setCollection_end_date($csvarray['collection_end_date']);
184: }
185: if (!empty($csvarray['collection_date_precision'])) {
186: $GFZmeta->setCollection_date_precision($csvarray['collection_date_precision']);
187: }
188:
189: if (isset($csvarray['depth_max'])) {
190: $GFZmeta->setDepth_max($csvarray['depth_max']);
191: } else {
192: $GFZmeta->setDepth_max('');
193: }
194:
195: if (isset($csvarray['depth_min'])) {
196: $GFZmeta->setDepth_min($csvarray['depth_min']);
197: } else {
198: $GFZmeta->setDepth_min('');
199: }
200:
201: if (!empty($csvarray['depth_scale'])) {
202: $GFZmeta->setDepth_scale($csvarray['depth_scale']);
203: }
204: if (!empty($csvarray['size'])) {
205: $GFZmeta->setSize($csvarray['size']);
206: }
207: if (!empty($csvarray['size_unit'])) {
208: $GFZmeta->setSize_unit($csvarray['size_unit']);
209: }
210: if (!empty($csvarray['age_min'])) {
211: $GFZmeta->setAge_min($csvarray['age_min']);
212: }
213: if (!empty($csvarray['age_max'])) {
214: $GFZmeta->setAge_max($csvarray['age_max']);
215: }
216: if (!empty($csvarray['age_unit'])) {
217: $GFZmeta->setAge_unit($csvarray['age_unit']);
218: }
219: if (!empty($csvarray['geological_age'])) {
220: $GFZmeta->setGeological_age($csvarray['geological_age']);
221: }
222: if (!empty($csvarray['geological_unit'])) {
223: $GFZmeta->setGeological_unit($csvarray['geological_unit']);
224: }
225: if (!empty($csvarray['collection_method'])) {
226: $GFZmeta->setCollection_method($csvarray['collection_method']);
227: }
228: if (!empty($csvarray['collection_method_descr'])) {
229: $GFZmeta->setCollection_method_descr($csvarray['collection_method_descr']);
230: }
231: if (!empty($csvarray['cruise_field_prgrm'])) {
232: $GFZmeta->setCruise_field_prgrm($csvarray['cruise_field_prgrm']);
233: }
234: if (!empty($csvarray['platform_type'])) {
235: $GFZmeta->setPlatform_type($csvarray['platform_type']);
236: }
237: if (!empty($csvarray['platform_name'])) {
238: $GFZmeta->setPlatform_name($csvarray['platform_name']);
239: }
240: if (!empty($csvarray['platform_descr'])) {
241: $GFZmeta->setPlatform_descr($csvarray['platform_descr']);
242: }
243:
244: if (!empty($csvarray['collector'])) {
245: $GFZmeta->setCollector($csvarray['collector']);
246: } if (!empty($csvarray['collector_detail'])) {
247: $GFZmeta->setCollector_detail($csvarray['collector_detail']);
248: } else if (!empty($csvarray['affiliation'])) {
249: $GFZmeta->setCollector_detail($csvarray['affiliation']);
250: }
251:
252: if (isset($csvarray['current_archive'])) {
253: $GFZmeta->setCurrent_archive($csvarray['current_archive']);
254: } else {
255: $GFZmeta->setCurrent_archive('');
256: }
257: if (isset($csvarray['current_archive_contact'])) {
258: $GFZmeta->setCurrent_archive_contact($csvarray['current_archive_contact']);
259: } else {
260: $GFZmeta->setCurrent_archive_contact('');
261: }
262: if (isset($csvarray['original_archive'])) {
263: $GFZmeta->setOriginal_archive($csvarray['original_archive']);
264: } else {
265: $GFZmeta->setOriginal_archive('');
266: }
267: if (isset($csvarray['original_archive_contact'])) {
268: $GFZmeta->setOriginal_archive_contact($csvarray['original_archive_contact']);
269: } else {
270: $GFZmeta->setOriginal_archive_contact('');
271: }
272: if (!empty($csvarray['sample_other_name'])) {
273: $GFZmeta->setSample_other_name($csvarray['sample_other_name']);
274: }
275:
276: if (isset($csvarray['relatedIdentifier']) && strcmp($csvarray['relatedIdentifier'], '') != 0) {
277: $dataRelatedIdentifierType = array();
278: $datarelationType = array();
279:
280: $dataRelatedIdentifier = valueSplit($csvarray['relatedIdentifier'], $sep);
281: if (isset($csvarray['relatedIdentifierType']) && strcmp($csvarray['relatedIdentifierType'], '') != 0) {
282: $dataRelatedIdentifierType = valueSplit($csvarray['relatedIdentifierType'], $sep);
283: }
284: if (isset($csvarray['relationType']) && strcmp($csvarray['relationType'], '') != 0) {
285: $datarelationType = valueSplit($csvarray['relationType'], $sep);
286: }
287: $dataRelatedIdentifierlength = sizeof($dataRelatedIdentifier);
288: if (sizeof($dataRelatedIdentifier) == sizeof($dataRelatedIdentifierType) && sizeof($dataRelatedIdentifier) == sizeof($datarelationType)) {
289: for ($i = 0; $i < $dataRelatedIdentifierlength; $i++) {
290: if(strcmp( trim($datarelationType[$i]), 'Reference') ===0 ){
291: $datarelationType[$i] ='References';
292: }
293: $GFZmeta->setRelatedIdentifier_type_relation(trim($dataRelatedIdentifier[$i]), trim($dataRelatedIdentifierType[$i]), trim($datarelationType[$i]));
294: }
295: } elseif (sizeof($dataRelatedIdentifier) == sizeof($dataRelatedIdentifierType)) {
296: for ($i = 0; $i < $dataRelatedIdentifierlength; $i++) {
297: $GFZmeta->setRelatedIdentifier_type(trim($dataRelatedIdentifier[$i]), trim($dataRelatedIdentifierType[$i]));
298: }
299: } elseif (sizeof($dataRelatedIdentifier) == sizeof($datarelationType)) {
300: for ($i = 0; $i < $dataRelatedIdentifierlength; $i++) {
301: if(strcmp( trim($datarelationType[$i]), 'Reference') ===0 ){
302: $datarelationType[$i] ='References';
303: }
304: $GFZmeta->setRelatedIdentifier_relation(trim($dataRelatedIdentifier[$i]), trim($datarelationType[$i]));
305: }
306: } else {
307: for ($i = 0; $i < $dataRelatedIdentifierlength; $i++) {
308:
309: $GFZmeta->setRelatedIdentifier(trim($relatedIdentifier));
310: }
311: }
312: }
313:
314:
315: return $GFZmeta;
316: }
317: