Add a lot of new fields with improved and more integrated checks for

dependencies and allowed values
This commit is contained in:
jrenslin authored and Stefan Rohde-Enslin committed 2019-09-01 19:54:01 +02:00
1 parent b8a03e1509
commit 13395387a0
11 files changed
+556 -693

No files matched your search

+1
View File
@@ -4,3 +4,4 @@
*.swp *.swp
*.swo *.swo
commonservices commonservices
/xml
+3
View File
@@ -0,0 +1,3 @@
[submodule "mdAvailableLicenses"]
path = mdAvailableLicenses
url = /var/www/vhosts/museum-digital.de/git-base/mdAvailableLicenses
-5
View File
@@ -81,11 +81,6 @@ th { padding: .3em .5em; text-align: left; border-bottom: 2px solid #424242; }
tbody > tr:nth-child(2n + 1) { background: #F2F2F2; } tbody > tr:nth-child(2n + 1) { background: #F2F2F2; }
td { padding: .3em .5em; border-bottom: 1px solid #D6D6D6; } td { padding: .3em .5em; border-bottom: 1px solid #D6D6D6; }
@media screen and (min-width:1100px) {
textarea,
body > div > table { width: 1000px; margin-left: -200px; }
}
body > div.uploader { background: #F2F2F2; border: 2px solid #EEE; padding: 1em 1em; } body > div.uploader { background: #F2F2F2; border: 2px solid #EEE; padding: 1em 1em; }
ul.fieldList { display: block; margin: .5em 0; padding: 0 0; list-style: none; } ul.fieldList { display: block; margin: .5em 0; padding: 0 0; list-style: none; }
+9 -6
View File
@@ -38,10 +38,10 @@
$line1 = $line2 = $line3 = $line4 = []; $line1 = $line2 = $line3 = $line4 = [];
$tLine1 = $tLine2 = $tLine3 = $tLine4 = [];
foreach ($availableFields as $headline => $fields) { foreach ($availableFields as $headline => $fields) {
$i = 0; $i = 0;
$tLine1 = $tLine2 = $tLine3 = $tLine4 = [];
$tLine1[] = $headline; $tLine1[] = $headline;
foreach($fields as $fieldName => $field) { foreach($fields as $fieldName => $field) {
@@ -53,11 +53,14 @@
if ($i !== 0) $tLine1[] = ""; if ($i !== 0) $tLine1[] = "";
$tLine2[] = $fieldName; $tLine2[] = $fieldName;
$tLine3[] = $field['name_human_readable']; $tLine3[] = $field['name_human_readable'];
$tLine4[] = $field['remark']; # $tLine4[] = $field['remark'];
if (!empty($field['allowedValues'])) $tLine4[] = end($field['allowedValues']);
else $tLine4[] = $field['name_human_readable'];
$i++; $i++;
} }
if (empty($tLine2)) continue; if (empty($tLine2) or count($tLine2) === 0) continue;
for ($i = 1; $i <= 4; $i++) { for ($i = 1; $i <= 4; $i++) {
${"line$i"} = array_merge(${"line$i"}, ${"tLine$i"}); ${"line$i"} = array_merge(${"line$i"}, ${"tLine$i"});
@@ -65,12 +68,12 @@
} }
header('Content-Type: text/csv'); header('Content-Type: text/csv; charset=utf-8');
if ($selectionActive === true) if ($selectionActive === true)
header("Content-Disposition: attachment; filename=csvxml_museum-digital_template-{$lang}_selection.csv"); header("Content-Disposition: attachment; filename=csvxml_museum-digital_template-{$lang}_selection.csv");
else else
header("Content-Disposition: attachment; filename=csvxml_museum-digital_template-{$lang}.csv"); header("Content-Disposition: attachment; filename=csvxml_museum-digital_template-{$lang}.csv");
for ($i = 1; $i <= 4; $i++) { for ($i = 2; $i <= 4; $i++) {
echo '"' . implode("\";\"", ${"line$i"}) . '"' . PHP_EOL; echo mb_convert_encoding('"' . implode("\";\"", ${"line$i"}) . '"' . PHP_EOL, 'utf-16','utf-8');;
} }
+77 -368
View File
@@ -1,12 +1,59 @@
<?PHP <?PHP
ob_start(); declare(strict_types = 1);
error_reporting(E_ALL); error_reporting(E_ALL);
ini_set('display_errors', 1); ini_set('display_errors', "1");
require_once __DIR__ . "/functions/functions.php";
if (session_status() != PHP_SESSION_ACTIVE) {
session_start();
}
// This array contains all available languages
$allowed_langs = ['ar', 'de', 'en', 'hu', 'id', 'it', 'pl','pt'];
// Some languages are in translation. They will only be available for logged in users.
if (isset($_GET['navlang'])) {
$_SESSION['lang'] = $_GET['navlang'];
if (!in_array($_SESSION['lang'], $allowed_langs)) $_SESSION['lang'] = 'de';
}
else if (!isset($_SESSION['lang'])) {
$_SESSION['lang'] = lang_getfrombrowser($allowed_langs, 'en', "", false);
}
$lang = $_SESSION['lang'];
$filename = $_GET['fnam']; $filename = $_GET['fnam'];
$csv_datei = 'csv/' . $filename; $csv_datei = 'csv/' . $filename;
$allowed = array("institution_name", 'collection_name1', 'collection_name2', 'inventory_number', 'object_type', 'object_title', 'object_description', 'object_material_technique', 'object_dimensions', 'object_publication', 'object_other_title', 'object_other_title_kind_of', 'detailed_description', 'detailed_description_md', 'detailed_description_extern', 'inscription', 'inscription_md', 'inscription_extern', 'material_separate', 'technique_separate', 'dimensions_separate_length_value', 'dimensions_separate_length_unit', 'dimensions_separate_width_value', 'dimensions_separate_width_unit', 'dimensions_separate_height_value', 'dimensions_separate_height_unit', 'dimensions_separate_weight_value', 'dimensions_separate_weight_unit', 'dimensions_separate_diameter_value', 'dimensions_separate_diameter_unit', 'dimensions_separate_wall_thickness_value', 'dimensions_separate_wall_thickness_unit', 'dimensions_separate_show_md', 'dimensions_separate_show_extern', 'number_of_pieces', 'number_of_pages', 'comparable_objects_other_museums', 'comparable_objects_other_museums_show_md', 'comparable_objects_other_museums_show_extern', 'other_object_title', 'other_object_title_in', 'closer_location', 'closer_location_as', 'entry_number', 'other_inventory_number', 'subject_group', 'systematic', 'bundle', 'part_of', 'inclusion_when', 'inclusion_kind_of', 'bought_for', 'bought_for_currency', 'inclusion_who', 'inclusion_where', 'registration_first_who', 'registration_first_when', 'owner_previous', 'object_history', 'worth_determiner', 'worth_when', 'worth_value', 'worth_unit', 'worth_incurance_determiner', 'worth_incurance_when', 'worth_insurance_value', 'worth_insurance_unit', 'state', 'restauration', 'abode_actual', 'abode_regular', 'exhibition', 'on_loan_to', 'on_loan_contact', 'on_loan_when', 'on_loan_insurance_value', 'on_loan_annotation', 'copyright', 'rights_of_use', 'rights_annotation', 'remarks_short', 'remarks_long', 'images_in_museum', 'documents_in_museum', 'link_url1', 'link_show1', 'link_url2', 'link_show2', 'literature_author1', 'literature_year1', 'literature_title1', 'literature_place1', 'literature_abbreviation1', 'literature_gnd1', 'literature_isbn1', 'literature_signature1', 'literature_online1', 'literature_annotation1', 'literature_inlit1', 'literature_author2', 'literature_year2', 'literature_title2', 'literature_place2', 'literature_abbreviation2', 'literature_gnd2', 'literature_isbn2', 'literature_signature2', 'literature_online2', 'literature_annotation2', 'literature_inlit2', 'literature_author3', 'literature_year3', 'literature_title3', 'literature_place3', 'literature_abbreviation3', 'literature_gnd3', 'literature_isbn3', 'literature_signature3', 'literature_online3', 'literature_annotation3', 'literature_inlit3', 'object_group_name1', 'object_group_description1', 'object_group_show1', 'object_group_name2', 'object_group_description2', 'object_group_show2', 'object_group_name3', 'object_group_description3', 'object_group_show3', 'object_group_name4', 'object_group_description4', 'object_group_show4', 'object_group_name5', 'object_group_description5', 'object_group_show5', 'tag1', 'tag2', 'tag3', 'tag4', 'tag5', 'tag6', 'tag7', 'tag8', 'tag9', 'tag10', 'image_name1', 'image_description1', 'image_owner1', 'image_creator1', 'image_rights1', 'image_visible1', 'image_main1', 'image_name2', 'image_description2', 'image_owner2', 'image_creator2', 'image_rights2', 'image_visible2', 'image_main2', 'image_name3', 'image_description3', 'image_owner3', 'image_creator3', 'image_rights3', 'image_visible3', 'image_main3', 'image_name4', 'image_description4', 'image_owner4', 'image_creator4', 'image_rights4', 'image_visible4', 'image_main4', 'image_name5', 'image_description5', 'image_owner5', 'image_creator5', 'image_rights5', 'image_visible5', 'image_main5', 'image_name6', 'image_description6', 'image_owner6', 'image_creator6', 'image_rights6', 'image_visible6', 'image_main6', 'image_name7', 'image_description7', 'image_owner7', 'image_creator7', 'image_rights7', 'image_visible7', 'image_main7', 'image_name8', 'image_description8', 'image_owner8', 'image_creator8', 'image_rights8', 'image_visible8', 'image_main8', 'image_name9', 'image_description9', 'image_owner9', 'image_creator9', 'image_rights9', 'image_visible9', 'image_main9', 'image_name10', 'image_description10', 'image_owner10', 'image_creator10', 'image_rights10', 'image_visible10', 'image_main10', 'image_name11', 'image_description11', 'image_owner11', 'image_creator11', 'image_rights11', 'image_visible11', 'image_main11', 'image_name12', 'image_description12', 'image_owner12', 'image_creator12', 'image_rights12', 'image_visible12', 'image_main12', 'image_name13', 'image_description13', 'image_owner13', 'image_creator13', 'image_rights13', 'image_visible13', 'image_main13', 'image_name14', 'image_description14', 'image_owner14', 'image_creator14', 'image_rights14', 'image_visible14', 'image_main14', 'image_name15', 'image_description15', 'image_owner15', 'iLine truncated // Get allowed values
require __DIR__ . "/values/availableFields.php";
$allowed = $eventpart = $eventpartsure = $fieldsWithDependency = $fieldsWithAllowedValueSet = [];
foreach ($availableFields as $categoryName => $fieldCategory) {
$allowed = array_merge($allowed, array_keys($fieldCategory));
// Extended operations for events
if (strpos($categoryName, $basis['event']) !== false) {
foreach ($fieldCategory as $key => $value) {
if (strpos($key, "_annotation") !== false) continue;
if (strpos($key, "_sure") !== false) $eventpartsure[] = $key;
else $eventpart[] = $key;
}
}
foreach ($fieldCategory as $key => $value) {
if (!empty($value["dependsOn"])) {
$fieldsWithDependency[$key] = $value['dependsOn'];
}
if (!empty($value["allowedValues"])) {
$fieldsWithAllowedValueSet[$key] = $value['allowedValues'];
}
}
}
$allowed_object_other_title_kind_of = array('object_other_title_kind_of', 'Wissenschaft', 'Alltagssprache', 'Umgangssprache', 'Dialekt', 'Tudományos', 'Köznyelvi', 'Nyelvjárás'); $allowed_object_other_title_kind_of = array('object_other_title_kind_of', 'Wissenschaft', 'Alltagssprache', 'Umgangssprache', 'Dialekt', 'Tudományos', 'Köznyelvi', 'Nyelvjárás');
$allowed_other_object_title_in = array('other_object_title_in', 'Wissenschaft', 'Alltagssprache', 'Umgangssprache', 'Dialekt', 'Tudományos', 'Köznyelvi', 'Nyelvjárás'); $allowed_other_object_title_in = array('other_object_title_in', 'Wissenschaft', 'Alltagssprache', 'Umgangssprache', 'Dialekt', 'Tudományos', 'Köznyelvi', 'Nyelvjárás');
$allowed_closer_location_as = array('closer_location_as', 'Aufnahmeort', 'Fundort', 'Früherer Ort', 'Felvétel késztésének helye','Lelőhely', 'Történelmi elnevezés'); $allowed_closer_location_as = array('closer_location_as', 'Aufnahmeort', 'Fundort', 'Früherer Ort', 'Felvétel késztésének helye','Lelőhely', 'Történelmi elnevezés');
@@ -16,11 +63,8 @@
', 'm', 'dm', 'cm', 'mm'); ', 'm', 'dm', 'cm', 'mm');
$allowed_weight = array('dimensions_separate_weight_unit', 't', 'kg', 'g'); $allowed_weight = array('dimensions_separate_weight_unit', 't', 'kg', 'g');
$allowed_yesno = array('detailed_description_md', 'detailed_description_extern', 'inscription_md', 'inscription_extern', 'dimensions_separate_show_md', 'dimensions_separate_show_extern', 'object_group_show1', 'object_group_show2', 'object_group_show3', 'object_group_show4', 'object_group_show5', 'image_visible1', 'image_visible2', 'image_visible3', 'image_visible4', 'image_visible5', 'image_visible6', 'image_visible7', 'image_visible8', 'image_visible9', 'image_visible10', 'image_visible11', 'image_visible12', 'image_visible13', 'image_visible14', 'image_visible15', 'image_visible16', 'image_visible17', 'image_visible18', 'image_visible19', 'image_visible20', 'image_visible21', 'image_visible22', 'image_visible23', 'image_visible24', 'image_visible25', 'image_visible26', 'image_visible27', 'image_visible28', 'image_main1', 'image_main2', 'image_main3', 'image_main4', 'image_main5', 'image_main6', 'image_main7', 'image_main8', 'image_main9', 'image_main10', 'image_main11', 'image_main12', 'image_main13', 'image_main14', 'image_main15', 'image_main16', 'image_main17', 'image_main18', 'image_main19', 'image_main20', 'image_main21', 'image_main22', 'image_main23', 'image_main24', 'image_main25', 'image_main26', 'image_main27', 'image_main28','y', 'n'); $allowed_yesno = array('detailed_description_md', 'detailed_description_extern', 'inscription_md', 'inscription_extern', 'dimensions_separate_show_md', 'dimensions_separate_show_extern', 'object_group_show1', 'object_group_show2', 'object_group_show3', 'object_group_show4', 'object_group_show5', 'image_visible1', 'image_visible2', 'image_visible3', 'image_visible4', 'image_visible5', 'image_visible6', 'image_visible7', 'image_visible8', 'image_visible9', 'image_visible10', 'image_visible11', 'image_visible12', 'image_visible13', 'image_visible14', 'image_visible15', 'image_visible16', 'image_visible17', 'image_visible18', 'image_visible19', 'image_visible20', 'image_visible21', 'image_visible22', 'image_visible23', 'image_visible24', 'image_visible25', 'image_visible26', 'image_visible27', 'image_visible28', 'image_main1', 'image_main2', 'image_main3', 'image_main4', 'image_main5', 'image_main6', 'image_main7', 'image_main8', 'image_main9', 'image_main10', 'image_main11', 'image_main12', 'image_main13', 'image_main14', 'image_main15', 'image_main16', 'image_main17', 'image_main18', 'image_main19', 'image_main20', 'image_main21', 'image_main22', 'image_main23', 'image_main24', 'image_main25', 'image_main26', 'image_main27', 'image_main28','y', 'n');
$eventpart = array('production_when1','production_who1','production_where1','production_when2','production_who2','production_where2','finding_when1','finding_who1','finding_where1','finding_when2','finding_who2','finding_where2','publication_when1','publication_who1','publication_where1','publication_when2','publication_who2','publication_where2','template_creation_when1','template_creation_who1','template_creation_where1','template_creation_when2','template_creation_who2','template_creation_where2','was_depicted_who1','was_depicted_who2','was_depicted_who3','was_depicted_who4','was_depicted_who5','was_depicted_who6','was_depicted_who7','was_depicted_place1','was_depicted_place2','was_depicted_place3','was_depicted_place4','was_used_when1','was_used_who1','was_used_where1','was_used_when2','was_used_who2','was_used_where2','written_when1','written_who1','written_where1','written_when2','written_who2','written_where2','collected_when1','collected_who1','collected_where1','collected_when2','collected_who2','collected_where2','painted_when1','painted_who1','painted_where1','painted_when2','painted_who2','painted_where2','taken_when1','taken_who1','taken_where1','taken_when2','taken_who2','taken_where2','received_when1','received_who1','received_where1','received_when2','received_who2','received_where2','printing_plate_produced_when1','printing_plate_produced_who1','printing_plate_produced_where1','printing_plate_produced_when2','printing_plate_produced_who2','printing_plate_produced_where2','sent_when1','sent_who1','sent_where1','sent_when2','sent_who2','sent_where2','issued_when1','issued_who1','issued_where1','issued_when2','issued_who2','issued_where2','signed_when1','signed_who1','signed_where1','signed_when2','signed_who2','signed_where2','type_described_when1','type_described_who1','type_described_where1','type_described_when2','type_described_who2','type_described_where2','drawn_when1','drawn_who1','drawn_where1','drawn_when2','drawn_who2','drawn_where2','copied_when1','copied_who1','copied_where1','copied_when2','copied_who2','copied_where2','has_lived_when1','has_lived_where1','has_lived_when2','has_lived_where2','related_place1','related_place2','related_place3','related_place4','related_place5','related_place6','related_place7','related_place8','related_place9','related_actor1','related_actor2','related_actor3','related_actor4','related_actor5','related_time1','related_time2','commissioned_when1','commissioned_who1','commissioned_where1','commissioned_when2','commissioned_who2','commissioned_where2','printed_when1','printed_who1','printed_where1','printed_when2','printed_who2','printed_where2','spoken_when1','spoken_who1','spoken_where1','spoken_when2','spoken_who2','spoken_where2','sung_when1','sung_who1','sung_where1','sung_when2','sung_who2','sung_where2','decor_designed_when1','decor_designed_who1','decor_designed_where1','decor_designed_when2','decor_designed_who2','decor_designed_where2','form_designed_when1','form_designed_who1','form_designed_where1','form_designed_when2','form_designed_who2','form_designed_where2','modelled_when1','modelled_who1','modelled_where1','modelled_when2','modelled_who2','modelled_where2','signed_when1','signed_who1','signed_where1','signed_when2','signed_who2','signed_where2','was_mentioned_when1','was_mentioned_who1','was_mentioned_where1','was_mentioned_when2','was_mentioned_who2','was_mentioned_where2','buried_when1','buried_who1','buried_where1','buried_when2','buried_who2','buried_where2','intellectual_creation_when1','intellectual_creation_who1','intellectual_creation_where1','intellectual_creation_when2','intellectual_creation_who2','intellectual_creation_where2','painted_on_when1','painted_on_who1','painted_on_where1','painted_on_when2','painted_on_who2','painted_on_where2','illustrated_when1','illustrated_who1','illustrated_where1','illustrated_when2','illustrated_who2','illustrated_where2');
$eventpartsure = array('production_when_sure1','production_who_sure1','production_where_sure1','production_when_sure2','production_who_sure2','production_where_sure2','finding_when_sure1','finding_who_sure1','finding_where_sure1','finding_when_sure2','finding_who_sure2','finding_where_sure2','publication_when_sure1','publication_who_sure1','publication_where_sure1','publication_when_sure2','publication_who_sure2','publication_where_sure2','template_creation_when_sure1','template_creation_who_sure1','template_creation_where_sure1','template_creation_when_sure2','template_creation_who_sure2','template_creation_where_sure2','was_depicted_who_sure1','was_depicted_who_sure2','was_depicted_who_sure3','was_depicted_who_sure4','was_depicted_who_sure5','was_depicted_who_sure6','was_depicted_who_sure7','was_depicted_place_sure1','was_depicted_place_sure2','was_depicted_place_sure3','was_depicted_place_sure4','was_used_when_sure1','was_used_who_sure1','was_used_where_sure1','was_used_when_sure2','was_used_who_sure2','was_used_where_sure2','written_when_sure1','written_who_sure1','written_where_sure1','written_when_sure2','written_who_sure2','written_where_sure2','collected_when_sure1','collected_who_sure1','collected_where_sure1','collected_when_sure2','collected_who_sure2','collected_where_sure2','painted_when_sure1','painted_who_sure1','painted_where_sure1','painted_when_sure2','painted_who_sure2','painted_where_sure2','taken_when_sure1','taken_who_sure1','taken_where_sure1','taken_when_sure2','taken_who_sure2','taken_where_sure2','received_when_sure1','received_who_sure1','received_where_sure1','received_when_sure2','received_who_sure2','received_where_sure2','printing_plate_produced_when_sure1','printing_plate_produced_who_sure1','printing_plate_produced_where_sure1','printing_plate_produced_when_sure2','printing_plate_produced_who_sure2','printing_plate_produced_where_sure2','sent_when_sure1','sent_who_sure1','sent_where_sure1','sent_when_sure2','sent_who_sure2','sent_where_sure2','issued_when_sure1','issued_who_sure1','issued_where_sure1','issued_when_sure2','issued_who_sure2','issued_where_sure2','signed_when_sure1','signed_who_sure1','signed_where_sure1','signed_when_sure2','signed_who_sure2','signed_where_sure2','type_described_when_sure1','type_described_who_sure1','type_described_where_sure1','type_described_when_sure2','type_described_who_sure2','type_described_where_sure2','drawn_when_sure1','drawn_who_sure1','drawn_where_sure1','drawn_when_sure2','drawn_who_sure2','drawn_where_sure2','copied_when_sure1','copied_who_sure1','copied_where_sure1','copied_when_sure2','copied_who_sure2','copied_where_sure2','has_lived_when_sure1','has_lived_where_sure1','has_lived_when_sure2','has_lived_where_sure2','related_place_sure1','related_place_sure2','related_place_sure3','related_place_sure4','related_place_sure5','related_place_sure6','related_place_sure7','related_place_sure8','related_place_sure9','related_actor_sure1','related_actor_sure2','related_actor_sure3','related_actor_sure4','related_actor_sure5','related_time_sure1','related_time_sure2','commissioned_when_sure1','commissioned_who_sure1','commissioned_where_sure1','commissioned_when_sure2','commissioned_who_sure2','commissioned_where_sure2','printed_when_sure1','printed_who_sure1','printed_where_sure1','printed_when_sure2','printed_who_sure2','printed_where_sure2','spoken_when_sure1','spoken_who_sure1','spoken_where_sure1','spoken_when_sure2','spoken_who_sure2','spoken_where_sure2','sung_when_sure1','sung_who_sure1','sung_where_sure1','sung_when_sure2','sung_who_sure2','sung_where_sure2','decor_designed_when_sure1','decor_designed_who_sure1','decor_designed_where_sure1','decor_designed_when_sure2','decor_designed_who_sure2','decor_designed_where_sure2','form_designed_when_sure1','form_designed_who_sure1','form_designed_where_sure1','form_designed_when_sure2','form_designed_who_sure2','form_designed_where_sure2','modelled_when_sure1','modelled_who_sure1','modelled_where_sure1','modelled_when_sure2','modelled_who_sure2','modelled_where_sure2','signed_when_sure1','signed_who_sure1','signed_where_sure1','signed_when_sure2','signed_who_sure2','signed_where_sure2','was_mentioned_when_sure1','was_mentioned_who_sure1','was_mentioned_where_sure1','was_mentioned_when_sure2','was_mentioned_who_sure2','was_mentioned_where_sure2','buried_when_sure1','buried_who_sure1','buried_where_sure1','buried_when_sure2','buried_who_sure2','buried_where_sure2','intellectual_creation_when_sure1','intellectual_creation_who_sure1','intellectual_creation_where_sure1','intellectual_creation_when_sure2','intellectual_creation_who_sure2','intellectual_creation_where_sure2', 'painted_on_when_sure1','painted_on_who_sure1','painted_on_where_sure1', 'painted_on_when_sure2','painted_on_who_sure2','painted_on_where_sure2', 'illustrated_when_sure1','illustrated_who_sure1','illustrated_where_sure1', 'illustrated_when_sure2','illustrated_who_sure2','illustrated_where_sure2');
$crosscheck1 = array('object_other_title','detailed_description','detailed_description','inscription','inscription','dimensions_separate_length_value', 'dimensions_separate_width_value', 'dimensions_separate_height_value', 'dimensions_separate_diameter_value', 'dimensions_separate_wall_thickness_value', 'dimensions_separate_weight_value','closer_location','bought_for','worth_value','worth_insurance_value'); $crosscheck1 = array('object_other_title','detailed_description','detailed_description','inscription','inscription','dimensions_separate_length_value', 'dimensions_separate_width_value', 'dimensions_separate_height_value', 'dimensions_separate_diameter_value', 'dimensions_separate_wall_thickness_value', 'dimensions_separate_weight_value','closer_location','bought_for','worth_value','worth_insurance_value');
$crosscheck2 = array('object_other_title_kind_of','detailed_description_md','detailed_description_extern','inscription_md','inscription_extern','dimensions_separate_length_unit', 'dimensions_separate_width_unit', 'dimensions_separate_height_unit', 'dimensions_separate_diameter_unit', 'dimensions_separate_wall_thickness_unit', 'dimensions_separate_weight_unit','closer_location_as','bought_for_currency','worth_unit','worth_insurance_unit'); $crosscheck2 = array('object_other_title_kind_of','detailed_description_md','detailed_description_extern','inscription_md','inscription_extern','dimensions_separate_length_unit', 'dimensions_separate_width_unit', 'dimensions_separate_height_unit', 'dimensions_separate_diameter_unit', 'dimensions_separate_wall_thickness_unit', 'dimensions_separate_weight_unit','closer_location_as','bought_for_currency','worth_unit','worth_insurance_unit');
$allowed_image_rights = array('CC BY-NC-SA', 'CC BY-NC-ND', ' CC BY-NC', 'CC BY-ND', 'CC BY-SA', 'CC BY', 'CC0', 'RR-F', 'RR-P', 'RR-R', 'Orphan Work', 'Public Domain Mark');
///// Check #1 ///// Check #1
//echo '<pre>';print_r($allowed);echo '</pre>'; //echo '<pre>';print_r($allowed);echo '</pre>';
@@ -47,10 +91,9 @@
echo '<br><br>2: Not allowed multiple use of tags (column names)?'; echo '<br><br>2: Not allowed multiple use of tags (column names)?';
$compare = array_unique($zeile); $compare = array_unique($zeile);
function identical_values($arrayA, $arrayB) function identical_values($arrayA, $arrayB) {
{ sort($arrayA);
sort( $arrayA ); sort($arrayB);
sort( $arrayB );
return $arrayA == $arrayB; return $arrayA == $arrayB;
} }
@@ -140,255 +183,19 @@ function get_duplicates($array)
///// Check #5 ///// Check #5
echo '<br><br>5: Dependent colums observed ?<br>'; echo '<br><br>5: Dependent colums observed ?<br>';
if (array_search('object_other_title', $erstezeile) !== false) {
if (array_search('object_other_title_kind_of', $erstezeile) === false) {
$depencymessage[] = 'One column of object_other_title, object_other_title_kind_of is missing';
}
}
if (array_search('object_other_title_kind_of', $erstezeile) !== false) {
if (array_search('object_other_title', $erstezeile) === false) {
$depencymessage[] = 'One column of object_other_title, object_other_title_kind_of is missing';
}
}
if (array_search('other_object_title', $erstezeile) !== false) {
if (array_search('other_object_title_in', $erstezeile) === false) {
$depencymessage[] = 'One column of other_object_title, other_object_title_in is missing';
}
}
if (array_search('other_object_title_in', $erstezeile) !== false) {
if (array_search('other_object_title', $erstezeile) === false) {
$depencymessage[] = 'One column of other_object_title, other_object_title_in is missing';
}
}
if (array_search('detailed_description', $erstezeile) !== false) {
if (array_search('detailed_description_md', $erstezeile) === false or array_search('detailed_description_extern', $erstezeile) === false) {
$depencymessage[] = 'One column of detailed_description, detailed_description_md, detailed_description_extern is missing';
}
}
if (array_search('detailed_description_md', $erstezeile) !== false) {
if (array_search('detailed_description', $erstezeile) === false or array_search('detailed_description_extern', $erstezeile) === false) {
$depencymessage[] = 'One column of detailed_description, detailed_description_md, detailed_description_extern is missing';
}
}
if (array_search('detailed_description_extern', $erstezeile) !== false) {
if (array_search('detailed_description', $erstezeile) === false or array_search('detailed_description_md', $erstezeile) === false) {
$depencymessage[] = 'One column of detailed_description, detailed_description_md, detailed_description_extern is missing';
}
}
// dependency of colums: inscription. If one of inscription or inscription_md or inscription_extern is given - all three are necessary
if (array_search('inscription', $erstezeile) !== false) {
if (array_search('inscription_md', $erstezeile) === false or array_search('inscription_extern', $erstezeile) === false) {
$depencymessage[] = 'One column of inscription, inscription_md, inscription_extern is missing';
}
}
if (array_search('inscription_md', $erstezeile) !== false) {
if (array_search('inscription', $erstezeile) === false or array_search('inscription_extern', $erstezeile) === false) {
$depencymessage[] = 'One column of inscription, inscription_md, inscription_extern is missing';
}
}
if (array_search('inscription_extern', $erstezeile) !== false) {
if (array_search('inscription', $erstezeile) === false or array_search('inscription_md', $erstezeile) === false) {
$depencymessage[] = 'One column of inscription, inscription_md, inscription_extern is missing';
}
}
// dependency of colums: object_group1 to 5. If one of object_group_name1 or object_group_description1 or object_group_show1 is given - all three are necessary // Check for correct handling of dependent fields
for ($og = 1; $og < 6; $og++) foreach ($fieldsWithDependency as $tField => $tDependentFields) {
{
if (array_search('object_group_name' . $og, $erstezeile) !== false) { if (array_search($tField, $erstezeile) === false) continue;
if (array_search('object_group_description' . $og, $erstezeile) === false or array_search('object_group_show' . $og, $erstezeile) === false) {
$depencymessage[] = 'One column of object_group_name' . $og . ', object_group_description' . $og . ', object_group_show' . $og . ' is missing'; foreach ($tDependentFields as $tDependentField) {
} if (array_search($tDependentField, $erstezeile) === false) {
} $depencymessage[] = "Dependency issue at column $tField: Corresponding column $tDependentField is missing";
if (array_search('object_group_description' . $og, $erstezeile) !== false) {
if (array_search('object_group_name' . $og, $erstezeile) === false or array_search('object_group_show' . $og, $erstezeile) === false) {
$depencymessage[] = 'One column of object_group_name' . $og . ', object_group_description' . $og . ', object_group_show' . $og . ' is missing';
}
}
if (array_search('object_group_show' . $og, $erstezeile) !== false) {
if (array_search('object_group_name' . $og, $erstezeile) === false or array_search('object_group_description' . $og, $erstezeile) === false) {
$depencymessage[] = 'One column of object_group_name' . $og . ', object_group_description' . $og . ', object_group_show' . $og . ' is missing';
}
}
}
// dependency of colums: images. If one of image_name1 or image_rights1 or image_visible1 is given - all three are necessary
for ($im = 1; $im < 29; $im++)
{
if (array_search('image_name' . $im, $erstezeile) !== false) {
if (array_search('image_rights' . $im, $erstezeile) === false or array_search('image_visible' . $im, $erstezeile) === false or array_search('image_main' . $im, $erstezeile) === false) {
$depencymessage[] = 'One column of image_name' . $im . ', image_rights' . $im . ', image_visible' . $im . ', image_main' . $im . ' is missing';
}
}
if (array_search('image_rights' . $im, $erstezeile) !== false) {
if (array_search('image_name' . $im, $erstezeile) === false or array_search('image_visible' . $im, $erstezeile) === false or array_search('image_main' . $im, $erstezeile) === false) {
$depencymessage[] = 'One column of image_name' . $im . ', image_rights' . $im . ', image_visible' . $im . ', image_main' . $im . ' is missing';
}
}
if (array_search('image_visible' . $im, $erstezeile) !== false) {
if (array_search('image_name' . $im, $erstezeile) === false or array_search('image_rights' . $im, $erstezeile) === false or array_search('image_main' . $im, $erstezeile) === false) {
$depencymessage[] = 'One column of image_name' . $im . ', image_rights' . $im . ', image_visible' . $im . ', image_main' . $im . ' is missing';
}
}
if (array_search('image_main' . $im, $erstezeile) !== false) {
if (array_search('image_name' . $im, $erstezeile) === false or array_search('image_rights' . $im, $erstezeile) === false or array_search('image_visible' . $im, $erstezeile) === false) {
$depencymessage[] = 'One column of image_name' . $im . ', image_rights' . $im . ', image_visible' . $im . ', image_main' . $im . ' is missing';
}
}
}
// dependency of colums: comparable_objects_other_museums. If one of comparable_objects_other_museums or comparable_objects_other_museums_show_md or comparable_objects_other_museums_show_extern is given - all three are necessary
if (array_search('comparable_objects_other_museums', $erstezeile) !== false) {
if (array_search('comparable_objects_other_museums_show_md', $erstezeile) === false or array_search('comparable_objects_other_museums_show_extern', $erstezeile) === false) {
$depencymessage[] = 'One column of comparable_objects_other_museums, comparable_objects_other_museums_show_md, comparable_objects_other_museums_show_extern is missing';
}
}
if (array_search('comparable_objects_other_museums_show_md', $erstezeile) !== false) {
if (array_search('comparable_objects_other_museums', $erstezeile) === false or array_search('comparable_objects_other_museums_show_extern', $erstezeile) === false) {
$depencymessage[] = 'One column of comparable_objects_other_museums, comparable_objects_other_museums_show_md, comparable_objects_other_museums_show_extern is missing';
}
}
if (array_search('comparable_objects_other_museums_show_extern', $erstezeile) !== false) {
if (array_search('comparable_objects_other_museums', $erstezeile) === false or array_search('comparable_objects_other_museums_show_md', $erstezeile) === false) {
$depencymessage[] = 'One column of comparable_objects_other_museums, comparable_objects_other_museums_show_md, comparable_objects_other_museums_show_extern is missing';
}
}
if (array_search('dimensions_separate_length_value', $erstezeile) !== false) {
if (array_search('dimensions_separate_length_unit', $erstezeile) === false) {
$depencymessage[] = 'One column of dimensions_separate_length_value, dimensions_separate_length_unit is missing';
}
}
if (array_search('dimensions_separate_length_unit', $erstezeile) !== false) {
if (array_search('dimensions_separate_length_value', $erstezeile) === false) {
$depencymessage[] = 'One column of dimensions_separate_length_value, dimensions_separate_length_unit is missing';
}
}
if (array_search('dimensions_separate_width_value', $erstezeile) !== false) {
if (array_search('dimensions_separate_width_unit', $erstezeile) === false) {
$depencymessage[] = 'One column of dimensions_separate_width_value, dimensions_separate_width_unit is missing';
}
}
if (array_search('dimensions_separate_width_unit', $erstezeile) !== false) {
if (array_search('dimensions_separate_width_value', $erstezeile) === false) {
$depencymessage[] = 'One column of dimensions_separate_width_value, dimensions_separate_width_unit is missing';
}
}
if (array_search('dimensions_separate_height_value', $erstezeile) !== false) {
if (array_search('dimensions_separate_height_unit', $erstezeile) === false) {
$depencymessage[] = 'One column of dimensions_separate_height_value, dimensions_separate_height_unit is missing';
}
}
if (array_search('dimensions_separate_height_unit', $erstezeile) !== false) {
if (array_search('dimensions_separate_height_value', $erstezeile) === false) {
$depencymessage[] = 'One column of dimensions_separate_height_value, dimensions_separate_height_unit is missing';
}
}
if (array_search('dimensions_separate_diameter_value', $erstezeile) !== false) {
if (array_search('dimensions_separate_diameter_unit', $erstezeile) === false) {
$depencymessage[] = 'One column of dimensions_separate_diameter_value, dimensions_separate_diameter_unit is missing';
}
}
if (array_search('dimensions_separate_diameter_unit', $erstezeile) !== false) {
if (array_search('dimensions_separate_diameter_value', $erstezeile) === false) {
$depencymessage[] = 'One column of dimensions_separate_diameter_value, dimensions_separate_diameter_unit is missing';
}
}
if (array_search('dimensions_separate_wall_thickness_value', $erstezeile) !== false) {
if (array_search('dimensions_separate_wall_thickness_unit', $erstezeile) === false) {
$depencymessage[] = 'One column of dimensions_separate_wall_thickness_value, dimensions_separate_wall_thickness_unit is missing';
}
}
if (array_search('dimensions_separate_wall_thickness_unit', $erstezeile) !== false) {
if (array_search('dimensions_separate_wall_thickness_value', $erstezeile) === false) {
$depencymessage[] = 'One column of dimensions_separate_wall_thickness_value, dimensions_separate_wall_thickness_unit is missing';
}
}
if (array_search('dimensions_separate_weight_value', $erstezeile) !== false) {
if (array_search('dimensions_separate_weight_unit', $erstezeile) === false) {
$depencymessage[] = 'One column of dimensions_separate_weight_value, dimensions_separate_weight_unit is missing';
}
}
if (array_search('dimensions_separate_weight_unit', $erstezeile) !== false) {
if (array_search('dimensions_separate_weight_value', $erstezeile) === false) {
$depencymessage[] = 'One column of dimensions_separate_weight_value, dimensions_separate_weight_unit is missing';
}
}
if (array_search('closer_location', $erstezeile) !== false) {
if (array_search('closer_location_as', $erstezeile) === false) {
$depencymessage[] = 'One column of closer_location, closer_location_as is missing';
}
}
if (array_search('closer_location_as', $erstezeile) !== false) {
if (array_search('closer_location', $erstezeile) === false) {
$depencymessage[] = 'One column of closer_location, closer_location_as is missing';
}
}
if (array_search('bought_for', $erstezeile) !== false) {
if (array_search('bought_for_currency', $erstezeile) === false) {
$depencymessage[] = 'One column of bought_for, bought_for_currency is missing';
}
}
if (array_search('bought_for_currency', $erstezeile) !== false) {
if (array_search('bought_for', $erstezeile) === false) {
$depencymessage[] = 'One column of bought_for, bought_for_currency is missing';
}
}
if (array_search('worth_value', $erstezeile) !== false) {
if (array_search('worth_unit', $erstezeile) === false) {
$depencymessage[] = 'One column of worth_value, worth_unit is missing';
}
}
if (array_search('worth_unit', $erstezeile) !== false) {
if (array_search('worth_value', $erstezeile) === false) {
$depencymessage[] = 'One column of worth_value, worth_unit is missing';
}
}
if (array_search('worth_insurance_value', $erstezeile) !== false) {
if (array_search('worth_insurance_unit', $erstezeile) === false) {
$depencymessage[] = 'One column of worth_insurance_value, worth_insurance_unit is missing';
}
}
if (array_search('worth_insurance_unit', $erstezeile) !== false) {
if (array_search('worth_insurance_value', $erstezeile) === false) {
$depencymessage[] = 'One column of worth_insurance_value, worth_insurance_unit is missing';
}
}
if (array_search('link_url1', $erstezeile) !== false) {
if (array_search('link_show1', $erstezeile) === false) {
$depencymessage[] = 'One column of link_url1, link_show1 is missing';
}
}
if (array_search('link_show1', $erstezeile) !== false) {
if (array_search('link_url1', $erstezeile) === false) {
$depencymessage[] = 'One column of link_url1, link_show1 is missing';
}
}
if (array_search('link_url2', $erstezeile) !== false) {
if (array_search('link_show2', $erstezeile) === false) {
$depencymessage[] = 'One column of link_url2, link_show2 is missing';
}
}
if (array_search('link_show2', $erstezeile) !== false) {
if (array_search('link_url2', $erstezeile) === false) {
$depencymessage[] = 'One column of link_url2, link_show2 is missing';
}
}
for ($i = 0; $i < count($eventpart); $i++)
{
if (array_search($eventpart[$i], $erstezeile) !== false) {
if (array_search($eventpartsure[$i], $erstezeile) === false) {
echo $eventpart[$i];
$depencymessage[] = 'One column of ' . $eventpart[$i] . ', ' . $eventpartsure[$i] . ' is missing';
}
}
if (array_search($eventpartsure[$i], $erstezeile) !== false) {
if (array_search($eventpart[$i], $erstezeile) === false) {
$depencymessage[] = 'One column of ' . $eventpart[$i] . ', ' . $eventpartsure[$i] . ' is missing';
} }
} }
} }
if (isset($depencymessage) and $depencymessage != '') { if (isset($depencymessage) and $depencymessage != '') {
@@ -399,8 +206,7 @@ function get_duplicates($array)
$error = $error + 1; $error = $error + 1;
} }
} }
else else {
{
echo '<i style="font-style:normal;color:#009900;">Dependent columns were observed !</i>'; echo '<i style="font-style:normal;color:#009900;">Dependent columns were observed !</i>';
} }
@@ -474,115 +280,19 @@ function get_duplicates($array)
///// Check #7 ///// Check #7
echo '<br><br>7: Not allowed values in controlled lists?<br>'; echo '<br><br>7: Not allowed values in controlled lists?<br>';
for ($i = 1; $i <= $y; $i++) for ($i = 2; $i <= $y; $i++) {
{
for ($j = 0; $j < count ($inhalt[$i]); $j++) foreach ($inhalt[$i] as $key => $value) {
{
if ($inhalt[1][$j] == 'object_other_title_kind_of' and !$inhalt[$i][array_search('object_other_title', $erstezeile)] == '') { $columnName = $inhalt[1][$key];
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>'; // If the field is not restricted, then continue
if (!in_array($inhalt[$i][$j], $allowed_object_other_title_kind_of)) $errormessage[] = 'Not allowed value in column <b>object_other_title_kind_of</b>: ' . $showvalue . ' (row ' . $i . ')'; if (!isset($fieldsWithAllowedValueSet[$columnName])) continue;
}
if ($inhalt[1][$j] == 'other_object_title_in' and !$inhalt[$i][array_search('other_object_title', $erstezeile)] == '') { // For others: check if the value is from the list of allowed values.
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>'; if (!in_array($value, $fieldsWithAllowedValueSet[$columnName])) {
if (!in_array($inhalt[$i][$j], $allowed_other_object_title_in)) $errormessage[] = 'Not allowed value in column <b>other_object_title_in</b>: ' . $showvalue . ' (row ' . $i . ')'; $errormessage[] = "Disallowed value in column <code>{$columnName}</code> on row <code>{$i}</code>: <em>" . $value . "</em> (allowed values: <small>" . implode(", ", $fieldsWithAllowedValueSet[$columnName]) . "</small>)";
}
if ($inhalt[1][$j] == 'closer_location_as' and !$inhalt[$i][array_search('closer_location', $erstezeile)] == '') {
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>';
if (!in_array($inhalt[$i][$j], $allowed_closer_location_as)) $errormessage[] = 'Not allowed value in column <b>closer_location_as</b>: ' . $showvalue . ' (row ' . $i . ')';
}
if ($inhalt[1][$j] == 'inclusion_kind_of') {
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>';
if (!in_array($inhalt[$i][$j], $allowed_inclusion_kind_of)) $errormessage[] = 'Not allowed value in column <b>inclusion_kind_of</b>: ' . $showvalue . ' (row ' . $i . ')';
}
if ($inhalt[1][$j] == 'bought_for_currency' and !$inhalt[$i][array_search('bought_for', $erstezeile)] == '') {
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>';
if (!in_array($inhalt[$i][$j], $allowed_currency)) $errormessage[] = 'Not allowed value in column <b>bought_for_currency</b>: ' . $showvalue . ' (row ' . $i . ')';
}
if ($inhalt[1][$j] == 'worth_unit' and !$inhalt[$i][array_search('worth_value', $erstezeile)] == '') {
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>';
if (!in_array($inhalt[$i][$j], $allowed_currency)) $errormessage[] = 'Not allowed value in column <b>worth_unit</b>: ' . $showvalue . ' (row ' . $i . ')';
}
if ($inhalt[1][$j] == 'worth_insurance_unit' and !$inhalt[$i][array_search('worth_insurance_value', $erstezeile)] == '') {
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>';
if (!in_array($inhalt[$i][$j], $allowed_currency)) $errormessage[] = 'Not allowed value in column <b>worth_insurance_unit</b>: ' . $showvalue . ' (row ' . $i . ')';
}
if ($inhalt[1][$j] == 'detailed_description_md' and !$inhalt[$i][array_search('detailed_description', $erstezeile)] == '') {
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>';
if (!in_array($inhalt[$i][$j], $allowed_yesno)) $errormessage[] = 'Not allowed value in column <b>detailed_description_md</b>: ' . $showvalue . ' (row ' . $i . ')';
}
if ($inhalt[1][$j] == 'detailed_description_extern' and !$inhalt[$i][array_search('detailed_description', $erstezeile)] == '') {
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>';
if (!in_array($inhalt[$i][$j], $allowed_yesno)) $errormessage[] = 'Not allowed value in column <b>detailed_description_extern</b>: ' . $showvalue . ' (row ' . $i . ')';
}
if ($inhalt[1][$j] == 'inscription_md' and !$inhalt[$i][array_search('inscription', $erstezeile)] == '') {
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>';
if (!in_array($inhalt[$i][$j], $allowed_yesno)) $errormessage[] = 'Not allowed value in column <b>inscription_md</b>: ' . $showvalue . ' (row ' . $i . ')';
}
if ($inhalt[1][$j] == 'inscription_extern' and !$inhalt[$i][array_search('inscription', $erstezeile)] == '') {
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>';
if (!in_array($inhalt[$i][$j], $allowed_yesno)) $errormessage[] = 'Not allowed value in column <b>inscription_extern</b>: ' . $showvalue . ' (row ' . $i . ')';
}
if ($inhalt[1][$j] == 'dimensions_separate_length_unit' and !$inhalt[$i][array_search('dimensions_separate_length_value', $erstezeile)] == '') {
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>';
if (!in_array($inhalt[$i][$j], $allowed_measurements)) $errormessage[] = 'Not allowed value in column <b>dimensions_separate_length_unit</b>: ' . $showvalue . ' (row ' . $i . ')';
}
if ($inhalt[1][$j] == 'dimensions_separate_width_unit' and !$inhalt[$i][array_search('dimensions_separate_width_value', $erstezeile)] == '') {
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>';
if (!in_array($inhalt[$i][$j], $allowed_measurements)) $errormessage[] = 'Not allowed value in column <b>dimensions_separate_width_unit</b>: ' . $showvalue . ' (row ' . $i . ')';
}
if ($inhalt[1][$j] == 'dimensions_separate_height_unit' and !$inhalt[$i][array_search('dimensions_separate_height_value', $erstezeile)] == '') {
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>';
if (!in_array($inhalt[$i][$j], $allowed_measurements)) $errormessage[] = 'Not allowed value in column <b>dimensions_separate_height_unit</b>: ' . $showvalue . ' (row ' . $i . ')';
}
if ($inhalt[1][$j] == 'dimensions_separate_diameter_unit' and !$inhalt[$i][array_search('dimensions_separate_diameter_value', $erstezeile)] == '') {
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>';
if (!in_array($inhalt[$i][$j], $allowed_measurements)) $errormessage[] = 'Not allowed value in column <b>dimensions_separate_diameter_unit</b>: ' . $showvalue . ' (row ' . $i . ')';
}
if ($inhalt[1][$j] == 'dimensions_separate_wall_thickness_unit' and !$inhalt[$i][array_search('dimensions_separate_wall_thickness_value', $erstezeile)] == '') {
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>';
if (!in_array($inhalt[$i][$j], $allowed_measurements)) $errormessage[] = 'Not allowed value in column <b>dimensions_separate_wall_thickness_unit</b>: ' . $showvalue . ' (row ' . $i . ')';
}
if ($inhalt[1][$j] == 'dimensions_separate_weight_unit' and !$inhalt[$i][array_search('dimensions_separate_weight_value', $erstezeile)] == '') {
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>';
if (!in_array($inhalt[$i][$j], $allowed_weight)) $errormessage[] = 'Not allowed value in column <b>dimensions_separate_weight_unit</b>: ' . $showvalue . ' (row ' . $i . ')';
}
if ($inhalt[1][$j] == 'dimensions_separate_show_md') {
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>';
if (!in_array($inhalt[$i][$j], $allowed_yesno)) $errormessage[] = 'Not allowed value in column <b>dimensions_separate_show_md</b>: ' . $showvalue . ' (row ' . $i . ')';
}
if ($inhalt[1][$j] == 'dimensions_separate_show_extern') {
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>';
if (!in_array($inhalt[$i][$j], $allowed_yesno)) $errormessage[] = 'Not allowed value in column <b>dimensions_separate_show_extern</b>: ' . $showvalue . ' (row ' . $i . ')';
}
for ($og = 1; $og < 6; $og++)
{
if ($inhalt[1][$j] == 'object_group_show' . $og and !$inhalt[$i][array_search('object_group_name' . $og, $erstezeile)] == '') {
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>';
if ($i > 1 and !in_array($inhalt[$i][$j], $allowed_yesno)) $errormessage[] = 'Not allowed value in column <b>object_group_show' . $og . '</b>: ' . $showvalue . ' (row ' . $i . ')';
}
}
for ($im = 1; $im < 29; $im++)
{
if ($inhalt[1][$j] == 'image_visible' . $im and !$inhalt[$i][array_search('image_name' . $im, $erstezeile)] == '') {
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>';
if ($i > 1 and !in_array($inhalt[$i][$j], $allowed_yesno)) $errormessage[] = 'Not allowed value in column <b>image_visible' . $im . '</b>: ' . $showvalue . ' (row ' . $i . ')';
}
if ($inhalt[1][$j] == 'image_main' . $im and !$inhalt[$i][array_search('image_name' . $im, $erstezeile)] == '') {
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>';
if ($i > 1 and !in_array($inhalt[$i][$j], $allowed_yesno)) $errormessage[] = 'Not allowed value in column <b>image_main' . $im . '</b>: ' . $showvalue . ' (row ' . $i . ')';
}
if ($inhalt[1][$j] == 'image_rights' . $im and !$inhalt[$i][array_search('image_name' . $im, $erstezeile)] == '') {
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>';
if ($i > 1 and !in_array($inhalt[$i][$j], $allowed_image_rights)) $errormessage[] = 'Not allowed value in column <b>image_rights' . $im . '</b>: ' . $showvalue . ' (row ' . $i . ')';
}
}
for ($k = 0; $k < count($eventpartsure); $k++)
{
if ($inhalt[1][$j] == $eventpartsure[$k] and !$inhalt[$i][array_search($eventpart[$k], $erstezeile)] == '') {
if ($inhalt[$i][$j] != '') $showvalue = '<b style="color:#990000">' . $inhalt[$i][$j] . '</b>'; else $showvalue = '<b style="color:#990000">[empty]</b>';
if ($i > 1 and !in_array($inhalt[$i][$j], $allowed_yesno)) $errormessage[] = 'Not allowed value in column <b>' . $eventpartsure[$k] . '</b>: ' . $showvalue . ' (row ' . $i . ')';
}
} }
} }
} }
@@ -647,11 +357,10 @@ function get_duplicates($array)
for ($i = 0; $i < count ($errormessage); $i++) for ($i = 0; $i < count ($errormessage); $i++)
{ {
echo '<br>' . $errormessage[$i]; echo '<br>' . $errormessage[$i];
$error = $error + 1; $error++;
} }
} }
else else {
{
echo '<i style="font-style:normal;color:#009900;">For each object that has images attached exactly one main image is given !</i>'; echo '<i style="font-style:normal;color:#009900;">For each object that has images attached exactly one main image is given !</i>';
} }
} }
+61
View File
@@ -157,3 +157,64 @@ function generateHelpTooltip(string $identifier, string $title, string $explica,
return [$output, $outputTag]; return [$output, $outputTag];
} }
/**
* Outputs a DOMDocument with correct header and then aborts.
* Used mainly for debugging.
*
* @param DOMDocument $xmlDoc XML object.
*
* @return void
*/
function printDOMDocToXML(DOMDocument $xmlDoc) {
return '<?xml version="1.0" encoding="UTF-8"?>' . $xmlDoc->saveXML($xmlDoc->documentElement);
}
/**
* Function for creating a DOMElement with a text node inside.
*
* @param DOMDocument $xmlDoc XML document.
* @param string $tag Tag.
* @param string $content Text content.
*
* @return DOMElement
*/
function createTextDomElement(DOMDocument $xmlDoc, string $tag, string $content):DOMElement {
$element = $xmlDoc->createElement($tag);
$element->appendChild($xmlDoc->createTextNode($content));
return $element;
}
/**
* Function for creating a DOMDocument record channel.
*
* @return array
*/
function getBlankRecordChannel():array {
$xmlDoc = new DOMDocument("1.0", "UTF-8");
$xmlMainElem = $xmlDoc->createElement("record");
$record_node = $xmlDoc->appendChild($xmlMainElem); //add RSS element to XML node
return [$xmlDoc, $record_node];
}
function rrmdir($dir) {
if (is_dir($dir)) {
$objects = scandir($dir);
foreach ($objects as $object) {
if ($object != "." && $object != "..") {
if (filetype($dir . "/" . $object) == "dir") rrmdir($dir . "/" . $object); else unlink($dir . "/" . $object);
}
}
reset($objects);
rmdir($dir);
}
}
+38 -10
View File
@@ -1,9 +1,32 @@
<?PHP <?PHP
$semikoma = $_GET['semikoma']; declare(strict_types = 1);
echo '<link rel="stylesheet" type="text/css" href="css/main.css">'; error_reporting(E_ALL);
echo '<div class="title">'; ini_set('display_errors', "1");
echo 'museum-digital CSV to XML converter';
echo '</div>'; require_once __DIR__ . "/functions/functions.php";
if (session_status() != PHP_SESSION_ACTIVE) {
session_start();
}
// This array contains all available languages
$allowed_langs = ['ar', 'de', 'en', 'hu', 'id', 'it', 'pl','pt'];
// Some languages are in translation. They will only be available for logged in users.
if (isset($_GET['navlang'])) {
$_SESSION['lang'] = $_GET['navlang'];
if (!in_array($_SESSION['lang'], $allowed_langs)) $_SESSION['lang'] = 'de';
}
else if (!isset($_SESSION['lang'])) {
$_SESSION['lang'] = lang_getfrombrowser($allowed_langs, 'en', "", false);
}
$lang = $_SESSION['lang'];
require __DIR__ . "/translation-importer/$lang/csvxml-overview.php";
echo printHTMLHead();
echo '<div class="maincontent">'; echo '<div class="maincontent">';
echo '<table border="0" cellpadding="0" cellspacing="0" summary="" width="100%">'; echo '<table border="0" cellpadding="0" cellspacing="0" summary="" width="100%">';
echo '<tr>'; echo '<tr>';
@@ -13,11 +36,11 @@
$filename = $_GET['fnam']; $filename = $_GET['fnam'];
$csv_datei = 'csv/' . $filename; $csv_datei = 'csv/' . $filename;
mkdir("xml", 0777); mkdir("xml", 0755);
$fp = fopen ( $csv_datei, 'r' ); $fp = fopen ( $csv_datei, 'r' );
$y = 0; $y = 0;
while ( $zeile = fgetcsv ( $fp, 100000, ';' ) ) while ($zeile = fgetcsv($fp, 100000, ';')) {
{
$y++; $y++;
$zieldatei = 'xml/' . $y . '.xml'; $zieldatei = 'xml/' . $y . '.xml';
if (!$handle = fopen($zieldatei, 'w')) { if (!$handle = fopen($zieldatei, 'w')) {
@@ -26,8 +49,7 @@
$somecontent = '<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n"; // normal $somecontent = '<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n"; // normal
$somecontent = $somecontent . '<record>' . "\n"; $somecontent = $somecontent . '<record>' . "\n";
for ($x = 0; $x < count ( $zeile ); $x++) for ($x = 0; $x < count ($zeile); $x++) {
{
$inhalt[$y][$x] = $zeile[$x]; $inhalt[$y][$x] = $zeile[$x];
//if ($inhalt[$y][$x]=='') $inhalt[$y][$x]='ERSATZ'; //if ($inhalt[$y][$x]=='') $inhalt[$y][$x]='ERSATZ';
$somecontent = $somecontent . '<' . tagify(transform($inhalt[1][$x])) . '>' . transform($inhalt[$y][$x]) . '</' . tagify(transform($inhalt[1][$x])) . '>' . "\n"; //normaleinstellung $somecontent = $somecontent . '<' . tagify(transform($inhalt[1][$x])) . '>' . transform($inhalt[$y][$x]) . '</' . tagify(transform($inhalt[1][$x])) . '>' . "\n"; //normaleinstellung
@@ -45,3 +67,9 @@
echo '</tr>'; echo '</tr>';
echo '</table>'; echo '</table>';
echo '</div>'; echo '</div>';
echo '
</body>
</html>
';
+53 -24
View File
@@ -1,27 +1,41 @@
<?PHP <?PHP
//error_reporting(E_ALL); declare(strict_types = 1);
//ini_set('display_errors',1); error_reporting(E_ALL);
$semikoma = $_GET['semikoma']; ini_set('display_errors', "1");
echo '<link rel="stylesheet" type="text/css" href="css/main.css">';
echo '<div class="title">'; require_once __DIR__ . "/functions/functions.php";
echo 'museum-digital CSV to XML converter';
echo '</div>'; if (session_status() != PHP_SESSION_ACTIVE) {
echo '<div class="maincontent">'; session_start();
echo '<table border="0" cellpadding="0" cellspacing="0" summary="" width="100%">'; }
echo '<tr>';
echo '<td width="50%">'; // This array contains all available languages
echo 'Please wait ... (transforming)<hr>'; $allowed_langs = ['ar', 'de', 'en', 'hu', 'id', 'it', 'pl','pt'];
ob_start();
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'; // für ungarn sonst weg ////////////////////// // Some languages are in translation. They will only be available for logged in users.
if (isset($_GET['navlang'])) {
$_SESSION['lang'] = $_GET['navlang'];
if (!in_array($_SESSION['lang'], $allowed_langs)) $_SESSION['lang'] = 'de';
}
else if (!isset($_SESSION['lang'])) {
$_SESSION['lang'] = lang_getfrombrowser($allowed_langs, 'en', "", false);
}
$lang = $_SESSION['lang'];
require __DIR__ . "/translation-importer/$lang/csvxml-overview.php";
require 'inc/zeichen.php'; require 'inc/zeichen.php';
$filename = $_GET['fnam']; $filename = $_GET['fnam'];
$csv_datei = 'csv/' . $filename; $csv_datei = 'csv/' . $filename;
mkdir("xml", 0777); if (is_dir(__DIR__ . "/xml")) rrmdir(__DIR__ . '/xml');
$fp = fopen ( $csv_datei, 'r' ); mkdir("xml", 0755);
$fp = fopen ($csv_datei, 'r');
$y = 0; $y = 0;
while ( $zeile = fgetcsv ( $fp, 100000, ';' ) ) while ($zeile = fgetcsv($fp, 100000, ';')) {
{
$y++; $y++;
$zieldatei = 'xml/' . $y . '.xml'; $zieldatei = 'xml/' . $y . '.xml';
if (!$handle = fopen($zieldatei, 'w')) { if (!$handle = fopen($zieldatei, 'w')) {
@@ -35,6 +49,7 @@
$inhalt[$y][$x] = $zeile[$x]; $inhalt[$y][$x] = $zeile[$x];
$inhalt[$y][$x] = preg_replace('/[\x00-\x1F\x7F]/u', '', $inhalt[$y][$x]); $inhalt[$y][$x] = preg_replace('/[\x00-\x1F\x7F]/u', '', $inhalt[$y][$x]);
$inhalt[$y][$x] = str_replace('>', ']', str_replace('<', '[', $inhalt[$y][$x])); $inhalt[$y][$x] = str_replace('>', ']', str_replace('<', '[', $inhalt[$y][$x]));
if (empty($inhalt[$y][$x])) continue;
//if ($y!=1) $inhalt[$y][$x] = '<![CDATA['.$inhalt[$y][$x].']]>'; //if ($y!=1) $inhalt[$y][$x] = '<![CDATA['.$inhalt[$y][$x].']]>';
$somecontent = $somecontent . '<' . tagify(transform($inhalt[1][$x])) . '>' . (($inhalt[$y][$x])) . '</' . tagify(transform($inhalt[1][$x])) . '>' . "\n"; //für ungarn sonst weg } $somecontent = $somecontent . '<' . tagify(transform($inhalt[1][$x])) . '>' . (($inhalt[$y][$x])) . '</' . tagify(transform($inhalt[1][$x])) . '>' . "\n"; //für ungarn sonst weg }
} }
@@ -43,11 +58,25 @@
echo "Cannot write to file ($filename)";exit; echo "Cannot write to file ($filename)";exit;
} }
fclose($handle); fclose($handle);
} }
fclose($fp); fclose($fp);
echo ($y - 1) . ' files created';
echo '<br><a href="zipit.php"><img src="img/go.gif"> Download as zip</a>'; echo printHTMLHead();
echo '</td>';
echo '</tr>'; echo '
echo '</table>'; <div>
echo '</div>'; Please wait ... (transforming)
<hr />
' . ($y - 1) . ' files created
<br/>
<a href="zipit.php"><img src="img/go.gif"> Download as zip</a>
</div>';
echo '
</body>
</html>
';
Submodule mdAvailableLicenses added at 1a1f237024.
+309 -264
View File
File diff suppressed because it is too large. Load diff
+4 -16
View File
@@ -1,5 +1,8 @@
<?PHP <?PHP
require_once "inc/zip.php"; require_once "inc/zip.php";
require_once __DIR__ . "/functions/functions.php";
$fileTime = date("D, d M Y H:i:s T"); $fileTime = date("D, d M Y H:i:s T");
$fileDir = 'xml/'; $fileDir = 'xml/';
@@ -38,20 +41,5 @@
header("Content-Length: " . $length); header("Content-Length: " . $length);
echo $zipData; echo $zipData;
function rrmdir($dir) { rrmdir(__DIR__ . '/xml');
if (is_dir($dir)) {
$objects = scandir($dir);
foreach ($objects as $object) {
if ($object != "." && $object != "..") {
if (filetype($dir . "/" . $object) == "dir") rrmdir($dir . "/" . $object); else unlink($dir . "/" . $object);
}
}
reset($objects);
rmdir($dir);
}
}
$dir_name = 'xml';
rrmdir($dir_name);