Skip to content

Commit 526ec96

Browse files
Support localized fields
1 parent 587015e commit 526ec96

File tree

3 files changed

+18
-7
lines changed

3 files changed

+18
-7
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
# webpack
55
vendor
66
.phpunit.*
7+
composer.lock

src/EventSubscriber/ClassDefinitionSubscriber.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public static function getSubscribedEvents(): array
2626
];
2727
}
2828

29-
public function onClassDefinitionPostUpdate(ClassDefinitionEvent $event)
29+
public function onClassDefinitionPostUpdate(ClassDefinitionEvent $event): void
3030
{
3131
$classDefinition = $event->getClassDefinition();
3232

src/Service/CustomLayoutService.php

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,12 +94,7 @@ private function editLayout(?ClassDefinition $classDefinition, CustomLayoutConfi
9494
$fieldDefinitions = $classDefinition->getFieldDefinitions();
9595

9696
foreach ($layoutConfig->getFields() as $fieldConfig) {
97-
foreach ($fieldDefinitions as $fieldDefinition) {
98-
if ($fieldDefinition->getName() === $fieldConfig->getFieldId()) {
99-
$this->adaptFieldDefinition($fieldDefinition, $fieldConfig);
100-
continue 2;
101-
}
102-
}
97+
$this->handleFieldDefinitions($fieldDefinitions, $fieldConfig);
10398
}
10499

105100
foreach ($layoutConfig->getLayoutElements() as $layoutElementConfig) {
@@ -109,6 +104,21 @@ private function editLayout(?ClassDefinition $classDefinition, CustomLayoutConfi
109104
return $layoutDefinition;
110105
}
111106

107+
private function handleFieldDefinitions(array $fieldDefinitions, CustomLayoutConfig\FieldConfig $fieldConfig): void
108+
{
109+
foreach ($fieldDefinitions as $fieldDefinition) {
110+
if ($fieldDefinition instanceof Data\Localizedfields) {
111+
$this->handleFieldDefinitions($fieldDefinition->getFieldDefinitions(), $fieldConfig);
112+
continue;
113+
}
114+
115+
if ($fieldDefinition->getName() === $fieldConfig->getFieldId()) {
116+
$this->adaptFieldDefinition($fieldDefinition, $fieldConfig);
117+
}
118+
}
119+
}
120+
121+
112122
private function adaptLayoutDefinition(LayoutElementConfig $config, Layout $layoutDefinition): Layout
113123
{
114124
if ($layoutDefinition->getName() === $config->getElementId()) {

0 commit comments

Comments
 (0)