public function loadSettings(array $settings)
{
if (TRUE === isset($settings['name'])) {
$this->setName($settings['name']);
}
if (TRUE === isset($settings['form'])) {
$form = Form::create($settings['form']);
if (TRUE === isset($settings['extensionKey'])) {
$extensionKey = $settings['extensionKey'];
$extensionName = ExtensionNamingUtility::getExtensionName($extensionKey);
$form->setExtensionName($extensionName);
}
$settings['form'] = $form;
}
if (TRUE === isset($settings['grid'])) {
$settings['grid'] = Grid::create($settings['grid']);
}
foreach ($settings as $name => $value) {
$this->{$name} = $value;
}
$fieldName = $this->getFieldName(array());
if (TRUE === isset($settings['listType'])) {
$listType = $settings['listType'];
$GLOBALS['TCA'][$this->tableName]['types']['list']['subtypes_addlist'][$listType] = $fieldName;
}
$GLOBALS['TCA'][$this->tableName]['columns'][$fieldName]['config']['type'] = 'flex';
}