Skip to content

Commit 2d66932

Browse files
committed
Merge branch 'release/1.5.9'
2 parents 531b2c3 + 8f8e4db commit 2d66932

2 files changed

Lines changed: 32 additions & 1 deletion

File tree

Blueprints/src/BlueprintSchema.php

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -506,7 +506,7 @@ protected function parseFormField($key, array $field, array $params, $prefix = '
506506
// Add all default properties for the field type (field needs to override them).
507507
$type = isset($properties['type']) ? $properties['type'] : '';
508508
if (isset($this->types[$type])) {
509-
$properties = array_merge_recursive($this->types[$type], $properties);
509+
$properties = $this->mergeTypeDefaults($properties, $this->types[$type]);
510510
}
511511

512512
// Merge properties with existing ones.
@@ -557,6 +557,31 @@ protected function parseFormField($key, array $field, array $params, $prefix = '
557557
}
558558
}
559559

560+
/**
561+
* @param array $properties
562+
* @param array $defaults
563+
* @return array
564+
*/
565+
protected function mergeTypeDefaults(array $properties, array $defaults)
566+
{
567+
foreach ($properties as $key => $value) {
568+
if (is_int($key)) {
569+
// Handle items in a list, but avoid duplicates.
570+
if (!in_array($value, $defaults, true)) {
571+
$defaults[] = $value;
572+
}
573+
} elseif (is_array($value) && isset($defaults[$key]) && is_array($defaults[$key])) {
574+
// Recursively merge array value.
575+
$defaults[$key] = $this->mergeTypeDefaults($value, $defaults[$key]);
576+
} else {
577+
// Replace value.
578+
$defaults[$key] = $value;
579+
}
580+
}
581+
582+
return $defaults;
583+
}
584+
560585
/**
561586
* @param string $key
562587
* @param string $prefix

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
# v1.5.9
2+
## 04/14/2021
3+
4+
1. [](#bugfix)
5+
* Fixed regression in default field type settings
6+
17
# v1.5.8
28
## 04/12/2021
39

0 commit comments

Comments
 (0)