This commit is contained in:
Markus Birth 2016-05-24 22:06:57 +02:00
parent 28e72072d8
commit ba92711362
12 changed files with 39 additions and 51 deletions

View File

@ -98,15 +98,15 @@
"group": 2,
"short": true
},
"programMembership_memberNumber": {
"title": "Member No.",
"programMembership_program": {
"title": "Name of Program",
"type": "text",
"required": false,
"group": 3,
"short": true
},
"programMembership_program": {
"title": "Name of Program",
"programMembership_memberNumber": {
"title": "Member No.",
"type": "text",
"required": false,
"group": 3,
@ -150,12 +150,6 @@
"required": true,
"group": 0
},
"reservationFor_image": {
"title": "Hotel Image URL",
"type": "url",
"required": false,
"group": 0
},
"reservationFor_telephone": {
"title": "Telephone",
"type": "tel",

View File

@ -1,12 +1,16 @@
<?php
// FOR TESTING:
$action = 'hotel';
if (!isset($action)) {
$action = 'hotel';
$debug = true;
}
$skey = 'form_' . $action;
$field_data_json = file_get_contents('definitions/' . $action . '.json');
$field_data = json_decode($field_data_json, true);
// Build Group list
foreach ($field_data['groups'] as $id=>$group) {
$by_group[$group] = array(
'group_name' => $group,
@ -14,10 +18,13 @@ foreach ($field_data['groups'] as $id=>$group) {
);
}
// Assign fields to groups, fill in (default) values
foreach ($field_data['fields'] as $key=>$meta) {
$meta['field_id'] = $key;
$group_name = $field_data['groups'][$meta['group']];
$meta['group_name'] = $group_name;
// Assign session value if set, or use default if set
if (isset($_SESSION[$skey][$key])) {
$meta['value'] = $_SESSION[$skey][$key];
} elseif (isset($meta['default'])) {
@ -33,17 +40,24 @@ foreach ($field_data['fields'] as $key=>$meta) {
break;
}
}
// Field type marker for Mustache
$meta['fieldtype_' . $meta['type']] = true;
// Add useful default values for some types
if ($meta['type'] == 'datetime') {
$meta['min'] = date('Y-m-d');
}
$by_group[$group_name]['fields'][$key] = $meta;
// Add to fieldlist
$by_group[$group_name]['fields'][] = $meta;
}
foreach ($by_group as $group=>$group_data) {
$by_group[$group]['fields'] = array_values($group_data['fields']);
}
#print_r($by_group);
// Convert hash to list for Mustache compatibility
$by_group = array_values($by_group);
if ($debug) {
print_r($by_group);
}
$data['form_data'] = $by_group;

View File

@ -1,8 +1,6 @@
<p>
<select name="{{field_id}}" size="1">
<!-- https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 -->
<option value="DE">Germany</option>
<option value="UK">United Kingdom</option>
<option value="US">United States of America</option>
</select>
</p>

View File

@ -1,7 +1,5 @@
<p>
<select name="{{field_id}}" size="1">
<option value="EUR">Euro - €</option>
<option value="USD">US Dollar - $</option>
<option value="GBP">British Pound - £</option>
</select>
</p>

View File

@ -1,7 +1,5 @@
<p>
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input class="mdl-textfield__input" type="datetime-local" min="{{min}}T00:00:00.0" max="2032-12-31T00:00:00.0" {{#required}}required{{/required}} id="{{field_id}}" value="{{value}}"/>
<label class="mdl-textfield__label" for="{{field_id}}">{{title}}</label>
<span class="mdl-textfield__error">Please input a valid date!</span>
</div>
</p>
</div>

View File

@ -1,7 +1,5 @@
<p>
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input class="mdl-textfield__input" type="number" {{#required}}required{{/required}} step="0.5" id="{{field_id}}" value="{{value}}"/>
<label class="mdl-textfield__label" for="{{field_id}}">{{title}}</label>
<span class="mdl-textfield__error">Please input a value!</span>
</div>
</p>
</div>

View File

@ -1,7 +1,5 @@
<p>
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input class="mdl-textfield__input" type="email" {{#required}}required{{/required}} id="{{field_id}}" value="{{value}}"/>
<label class="mdl-textfield__label" for="{{field_id}}">{{title}}</label>
<span class="mdl-textfield__error">Please input a valid email address!</span>
</div>
</p>
</div>

View File

@ -1,7 +1,5 @@
<p>
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input class="mdl-textfield__input" type="number" {{#required}}required{{/required}} id="{{field_id}}" value="{{value}}"/>
<label class="mdl-textfield__label" for="{{field_id}}">{{title}}</label>
<span class="mdl-textfield__error">Please input a value!</span>
</div>
</p>
</div>

View File

@ -1,4 +1,3 @@
<p>
Select your status:
<select name="{{field_id}}" size="1">
<option value="http://schema.org/Confirmed">Confirmed</option>
@ -6,4 +5,3 @@
<option value="http://schema.org/Pending">Pending</option>
<option value="http://schema.org/Hold">Hold</option>
</select>
</p>

View File

@ -1,7 +1,5 @@
<p>
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input class="mdl-textfield__input" type="tel" {{#required}}required{{/required}} id="{{field_id}}" value="{{value}}"/>
<label class="mdl-textfield__label" for="{{field_id}}">{{title}}</label>
<span class="mdl-textfield__error">Please input a valid phone number!</span>
</div>
</p>
</div>

View File

@ -1,7 +1,5 @@
<p>
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input class="mdl-textfield__input" type="text" {{#required}}required{{/required}} id="{{field_id}}" value="{{value}}"/>
<label class="mdl-textfield__label" for="{{field_id}}">{{title}}</label>
<span class="mdl-textfield__error">Please input a value!</span>
</div>
</p>
</div>

View File

@ -1,7 +1,5 @@
<p>
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input class="mdl-textfield__input" type="url" {{#required}}required{{/required}} id="{{field_id}}" value="{{value}}"/>
<label class="mdl-textfield__label" for="{{field_id}}">{{title}}</label>
<span class="mdl-textfield__error">Please input a valid URL!</span>
</div>
</p>
</div>