Reduce complexity in FieldDefinition class.
This commit is contained in:
parent
e217414f11
commit
85329deae2
@ -47,6 +47,38 @@ class FieldDefinition
|
|||||||
return $byGroup;
|
return $byGroup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds useful interpretations of $field['value'] if available.
|
||||||
|
*
|
||||||
|
* @param mixed[] &$field Field to enrich
|
||||||
|
*/
|
||||||
|
private function addValueTranslations(&$field)
|
||||||
|
{
|
||||||
|
if (!isset($field['value'])) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
switch ($field['type']) {
|
||||||
|
case 'datetime':
|
||||||
|
$field['value_unixtime'] = strtotime($field['value']);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds useful default values for some $field['type']s.
|
||||||
|
*
|
||||||
|
* @param mixed[] &$field Field to enrich
|
||||||
|
*/
|
||||||
|
private function addSupportValues(&$field)
|
||||||
|
{
|
||||||
|
switch ($field['type']) {
|
||||||
|
case 'datetime':
|
||||||
|
$field['min'] = date('Y-m-d');
|
||||||
|
$field['today'] = date('Y-m-d');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds the given $values or default values and replaces $placeholders. Also
|
* Adds the given $values or default values and replaces $placeholders. Also
|
||||||
* adds some helping attributes to fields.
|
* adds some helping attributes to fields.
|
||||||
@ -64,13 +96,7 @@ class FieldDefinition
|
|||||||
// Assign session value if set, or use default if set
|
// Assign session value if set, or use default if set
|
||||||
if (isset($values[$key])) {
|
if (isset($values[$key])) {
|
||||||
$meta['value'] = $values[$key];
|
$meta['value'] = $values[$key];
|
||||||
|
$this->addValueTranslations($meta);
|
||||||
switch ($meta['type']) {
|
|
||||||
case 'datetime':
|
|
||||||
$meta['value_unixtime'] = strtotime($meta['value']);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
} elseif (isset($meta['default'])) {
|
} elseif (isset($meta['default'])) {
|
||||||
if (isset($placeholders[$meta['default']])) {
|
if (isset($placeholders[$meta['default']])) {
|
||||||
$meta['value'] = $placeholders[$meta['default']];
|
$meta['value'] = $placeholders[$meta['default']];
|
||||||
@ -82,13 +108,7 @@ class FieldDefinition
|
|||||||
// Field type marker for Mustache
|
// Field type marker for Mustache
|
||||||
$meta['fieldtype_' . $meta['type']] = true;
|
$meta['fieldtype_' . $meta['type']] = true;
|
||||||
|
|
||||||
// Add useful default values for some types
|
$this->addSupportValues($meta);
|
||||||
switch ($meta['type']) {
|
|
||||||
case 'datetime':
|
|
||||||
$meta['min'] = date('Y-m-d');
|
|
||||||
$meta['today'] = date('Y-m-d');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add to fieldlist
|
// Add to fieldlist
|
||||||
$this->fieldData['fields'][$key] = $meta;
|
$this->fieldData['fields'][$key] = $meta;
|
||||||
|
Reference in New Issue
Block a user