Refined JSON. Added form preparation.

This commit is contained in:
Markus Birth 2016-05-23 17:19:41 +02:00
parent c582af6e79
commit 891c9db21d
3 changed files with 240 additions and 192 deletions

View File

@ -1,196 +1,208 @@
{
"bookingAgent_name": {
"title": "Name",
"type": "text",
"required": false,
"group": "Booking Agency",
"short": true
"groups": {
"0": "Hotel Information",
"1": "Date",
"2": "Booking Information",
"3": "Program Membership",
"4": "Booking Agency",
"5": "Hotlinks",
"6": "Metadata"
},
"bookingAgent_url": {
"title": "URL",
"type": "url",
"required": false,
"group": "Booking Agency"
},
"bookingTime": {
"title": "Booking Date",
"type": "datetime",
"required": false,
"group": "Booking Agency"
},
"cancelReservationUrl": {
"title": "Cancel URL",
"type": "url",
"required": false,
"group": "Hotlinks"
},
"checkinDate": {
"title": "Checkin Time",
"type": "datetime",
"required": true,
"group": "Date"
},
"checkoutDate": {
"title": "Checkout Time",
"type": "datetime",
"required": true,
"group": "Date"
},
"confirmReservationUrl": {
"title": "Confirm URL",
"type": "url",
"required": false,
"group": "Hotlinks"
},
"lodgingUnitDescription": {
"title": "Room Description",
"type": "text",
"required": false,
"group": "Booking Information"
},
"modifiedTime": {
"title": "Modified Time",
"type": "datetime",
"required": false,
"group": "Metadata"
},
"modifyReservationUrl": {
"title": "Modify URL",
"type": "url",
"required": false,
"group": "Hotlinks"
},
"numAdults": {
"title": "Number of Adults",
"type": "number",
"required": false,
"group": "Booking Information",
"short": true
},
"numChildren": {
"title": "Number of Children",
"type": "number",
"required": false,
"group": "Booking Information",
"short": true
},
"price": {
"title": "Price",
"type": "decimal",
"required": false,
"group": "Booking Information",
"short": true
},
"priceCurrency": {
"title": "Currency",
"type": "text",
"required": false,
"group": "Booking Information",
"short": true
},
"programMembership_memberNumber": {
"title": "Member No.",
"type": "text",
"required": false,
"group": "Program Membership",
"short": true
},
"programMembership_program": {
"title": "Name of Program",
"type": "text",
"required": false,
"group": "Program Membership",
"short": true
},
"reservationFor_address_addressCountry": {
"title": "Country",
"type": "country",
"required": true,
"group": "Hotel Information"
},
"reservationFor_address_addressLocality": {
"title": "City",
"type": "text",
"required": true,
"group": "Hotel Information"
},
"reservationFor_address_addressRegion": {
"title": "Region",
"type": "text",
"required": true,
"group": "Hotel Information",
"short": true
},
"reservationFor_address_postalCode": {
"title": "Zip Code",
"type": "number",
"required": true,
"group": "Hotel Information",
"short": true
},
"reservationFor_address_streetAddress": {
"title": "Street",
"type": "text",
"required": true,
"group": "Hotel Information"
},
"reservationFor_name": {
"title": "Hotel Name",
"type": "text",
"required": true,
"group": "Hotel Information"
},
"reservationFor_image": {
"title": "Hotel Image URL",
"type": "url",
"required": false,
"group": "Hotel Information"
},
"reservationFor_telephone": {
"title": "Telephone",
"type": "tel",
"required": true,
"group": "Hotel Information",
"short": true
},
"reservationFor_url": {
"title": "Website URL",
"type": "url",
"required": false,
"group": "Hotel Information"
},
"reservationNumber": {
"title": "Reservation #",
"type": "text",
"required": true,
"group": "Booking Information",
"short": true
},
"reservationStatus": {
"title": "Status",
"type": "status",
"required": true,
"group": "Booking Information",
"short": true
},
"underName_name": {
"title": "Name on Reservation",
"type": "text",
"required": true,
"group": "Booking Information",
"default": "USER_NAME"
},
"underName_email": {
"title": "Email address",
"type": "email",
"required": false,
"group": "Booking Information",
"default": "USER_EMAIL"
},
"url": {
"title": "Booking URL",
"type": "url",
"required": false,
"group": "Hotlinks"
"fields": {
"bookingAgent_name": {
"title": "Name",
"type": "text",
"required": false,
"group": 4,
"short": true
},
"bookingAgent_url": {
"title": "URL",
"type": "url",
"required": false,
"group": 4
},
"bookingTime": {
"title": "Booking Date",
"type": "datetime",
"required": false,
"group": 4
},
"cancelReservationUrl": {
"title": "Cancel URL",
"type": "url",
"required": false,
"group": 5
},
"checkinDate": {
"title": "Checkin Time",
"type": "datetime",
"required": true,
"group": 1
},
"checkoutDate": {
"title": "Checkout Time",
"type": "datetime",
"required": true,
"group": 1
},
"confirmReservationUrl": {
"title": "Confirm URL",
"type": "url",
"required": false,
"group": 5
},
"lodgingUnitDescription": {
"title": "Room Description",
"type": "text",
"required": false,
"group": 2
},
"modifiedTime": {
"title": "Modified Time",
"type": "datetime",
"required": false,
"group": 6
},
"modifyReservationUrl": {
"title": "Modify URL",
"type": "url",
"required": false,
"group": 5
},
"numAdults": {
"title": "Number of Adults",
"type": "number",
"required": false,
"group": 2,
"short": true
},
"numChildren": {
"title": "Number of Children",
"type": "number",
"required": false,
"group": 2,
"short": true
},
"price": {
"title": "Price",
"type": "decimal",
"required": false,
"group": 2,
"short": true
},
"priceCurrency": {
"title": "Currency",
"type": "text",
"required": false,
"group": 2,
"short": true
},
"programMembership_memberNumber": {
"title": "Member No.",
"type": "text",
"required": false,
"group": 3,
"short": true
},
"programMembership_program": {
"title": "Name of Program",
"type": "text",
"required": false,
"group": 3,
"short": true
},
"reservationFor_address_addressCountry": {
"title": "Country",
"type": "country",
"required": true,
"group": 0
},
"reservationFor_address_addressLocality": {
"title": "City",
"type": "text",
"required": true,
"group": 0
},
"reservationFor_address_addressRegion": {
"title": "Region",
"type": "text",
"required": true,
"group": 0,
"short": true
},
"reservationFor_address_postalCode": {
"title": "Zip Code",
"type": "number",
"required": true,
"group": 0,
"short": true
},
"reservationFor_address_streetAddress": {
"title": "Street",
"type": "text",
"required": true,
"group": 0
},
"reservationFor_name": {
"title": "Hotel Name",
"type": "text",
"required": true,
"group": 0
},
"reservationFor_image": {
"title": "Hotel Image URL",
"type": "url",
"required": false,
"group": 0
},
"reservationFor_telephone": {
"title": "Telephone",
"type": "tel",
"required": true,
"group": 0,
"short": true
},
"reservationFor_url": {
"title": "Website URL",
"type": "url",
"required": false,
"group": 0
},
"reservationNumber": {
"title": "Reservation #",
"type": "text",
"required": true,
"group": 2,
"short": true
},
"reservationStatus": {
"title": "Status",
"type": "status",
"required": true,
"group": 2,
"short": true
},
"underName_name": {
"title": "Name on Reservation",
"type": "text",
"required": true,
"group": 2,
"default": "USER_NAME"
},
"underName_email": {
"title": "Email address",
"type": "email",
"required": false,
"group": 2,
"default": "USER_EMAIL"
},
"url": {
"title": "Booking URL",
"type": "url",
"required": false,
"group": 5
}
}
}

View File

@ -97,6 +97,8 @@ if (!$tpl_done && isset($_SESSION['access_token']) && $_SESSION['access_token'])
case 'hotel':
$tpl = $m->loadTemplate('hotel_html');
$tpl_done = true;
$action = 'hotel';
require 'prep_form.php';
break;
default:
if (!$tpl_done) {

34
prep_form.php Normal file
View File

@ -0,0 +1,34 @@
<?php
// FOR TESTING:
$action = 'hotel';
$skey = 'form_' . $action;
$field_data_json = file_get_contents('definitions/' . $action . '.json');
$field_data = json_decode($field_data_json, true);
foreach ($field_data['groups'] as $id=>$group) {
$by_group[$group] = array();
}
foreach ($field_data['fields'] as $key=>$meta) {
$group_name = $field_data['groups'][$meta['group']];
$meta['group_name'] = $group_name;
if (isset($_SESSION[$skey][$key])) {
$meta['value'] = $_SESSION[$skey][$key];
} elseif (isset($meta['default'])) {
switch ($meta['default']) {
case 'USER_NAME':
$meta['value'] = 'User Name';
break;
case 'USER_EMAIL':
$meta['value'] = 'user@email.com';
break;
default:
$meta['value'] = $meta['default'];
break;
}
}
$by_group[$group_name][$key] = $meta;
}
print_r($by_group);