private function createBlock($propertyName, $data) { $blockProperty = new BlockMetadata(); $blockProperty->name = $propertyName; $blockProperty->defaultComponentName = $data['default-type']; if (isset($data['meta']['title'])) { $blockProperty->title = $data['meta']['title']; } $this->mapProperty($blockProperty, $data); foreach ($data['types'] as $name => $type) { $component = new ComponentMetadata(); $component->name = $name; if (isset($type['meta']['title'])) { $component->title = $type['meta']['title']; } foreach ($type['properties'] as $propertyName => $propertyData) { $property = new PropertyMetadata(); $property->name = $propertyName; $this->mapProperty($property, $propertyData); $component->addChild($property); } $blockProperty->addComponent($component); } return $blockProperty; }