public function addAutoTablesConfig(AutoTablesConfiguration $config, $selector) { $columnOverwrite = util::array_get($config->getColumns()[$selector]); if ($columnOverwrite) { $this->readOnly = util::array_get($columnOverwrite['readOnly'], $this->readOnly); $this->name = util::array_get($columnOverwrite['name'], $this->name); $this->type = util::array_get($columnOverwrite['type'], $this->type); $this->order = util::array_get($columnOverwrite['order'], $this->order); $this->ignore = util::array_get($columnOverwrite['ignore'], $this->ignore); $this->visible = util::array_get($columnOverwrite['visible'], $this->visible); $this->viewType = util::array_get($columnOverwrite['viewType'], $this->viewType); $this->values = util::array_get($columnOverwrite['values'], $this->values); $initializer = util::array_get($columnOverwrite['initializer'], null); if ($initializer) { if (!$this->initializer) { $this->initializer = new InitializerInfo(); } $this->initializer->addInitializerConfig($initializer); } } }
private function mergeColumnsConfiguration(AutoTablesConfiguration $config, $args) { $newColArgs = util::array_get($args['columns'], array()); foreach ($newColArgs as $newColArg) { $selector = $newColArg['selector']; Ensure::isNotEmpty($selector, 'Missing selector in column configuration'); $colArg = util::array_get($config->getColumns()[$selector], null); if ($colArg) { // overwrite the settings $config->putColumn($selector, array_merge($colArg, $newColArg)); } else { // define a new entry $config->putColumn($selector, $newColArg); } } return $config; }