Index: branches/5.3.x/core/kernel/kbase.php =================================================================== diff -u -N -r15584 -r15698 --- branches/5.3.x/core/kernel/kbase.php (.../kbase.php) (revision 15584) +++ branches/5.3.x/core/kernel/kbase.php (.../kbase.php) (revision 15698) @@ -1,6 +1,6 @@ Application->getUnitConfig($this->Prefix); + } + + /** * Creates string representation of a class (for logging) * * @return string @@ -271,7 +282,7 @@ */ public function SwitchToLive() { - $this->TableName = $this->Application->getUnitOption($this->Prefix, 'TableName'); + $this->TableName = $this->getUnitConfig()->getTableName(); } /** @@ -281,7 +292,7 @@ */ public function SwitchToTemp() { - $table_name = $this->Application->getUnitOption($this->Prefix, 'TableName'); + $table_name = $this->getUnitConfig()->getTableName(); $this->TableName = $this->Application->GetTempName($table_name, 'prefix:' . $this->Prefix); } @@ -476,8 +487,9 @@ $this->populateMultiLangFields = $populate_ml_fields; } - $this->IDField = $this->Application->getUnitOption($this->Prefix, 'IDField'); - $this->TableName = $this->Application->getUnitOption($this->Prefix, 'TableName'); + $config = $this->getUnitConfig(); + $this->IDField = $config->getIDField(); + $this->TableName = $config->getTableName(); $this->initForm($form_name); $this->defineFields(); @@ -500,20 +512,22 @@ */ protected function initForm($form_name = null) { - $forms = $this->Application->getUnitOption($this->Prefix, 'Forms', Array ()); + $config = $this->getUnitConfig(); $this->formName = $form_name; - $this->formConfig = isset($forms['default']) ? $forms['default'] : Array (); + $this->formConfig = $config->getFormByName('default', Array ()); if ( !$this->formName ) { return ; } - if ( !isset($forms[$this->formName]) ) { + $form_data = $config->getFormByName($this->formName); + + if ( !$form_data ) { trigger_error('Form "' . $this->formName . '" isn\'t declared in "' . $this->Prefix . '" unit config.', E_USER_NOTICE); } else { - $this->formConfig = kUtil::array_merge_recursive($this->formConfig, $forms[$this->formName]); + $this->formConfig = kUtil::array_merge_recursive($this->formConfig, $form_data); } } @@ -557,7 +571,7 @@ */ public function getFormOption($option, $default = false) { - $ret = $this->Application->getUnitOption($this->Prefix, $option, $default); + $ret = $this->getUnitConfig()->getSetting($option, $default); if ( isset($this->formConfig[$option]) ) { $ret = kUtil::array_merge_recursive($ret, $this->formConfig[$option]); @@ -683,8 +697,9 @@ return; } - $fields = $this->Application->getUnitOption($this->Prefix, 'Fields', Array ()); - $virtual_fields = $this->Application->getUnitOption($this->Prefix, 'VirtualFields', Array ()); + $config = $this->getUnitConfig(); + $fields = $config->getFields(Array ()); + $virtual_fields = $config->getVirtualFields(Array ()); foreach ($field_modifiers as $field => $field_options) { foreach ($field_options as $option_name => $option_value) { @@ -708,8 +723,8 @@ } } - $this->Application->setUnitOption($this->Prefix, 'Fields', $fields); - $this->Application->setUnitOption($this->Prefix, 'VirtualFields', $virtual_fields); + $config->setFields($fields); + $config->setVirtualFields($virtual_fields); } /** @@ -1050,33 +1065,29 @@ */ public function getLinkedInfo($special = '', $guess_special = false) { - $parent_prefix = $this->Application->getUnitOption($this->Prefix, 'ParentPrefix'); - if ($parent_prefix) { + $config = $this->getUnitConfig(); + $parent_prefix = $config->getParentPrefix(); + + if ( $parent_prefix ) { // if this is linked table, then set id from main table $table_info = Array ( - 'TableName' => $this->Application->getUnitOption($this->Prefix,'TableName'), - 'IdField' => $this->Application->getUnitOption($this->Prefix,'IDField'), - 'ForeignKey' => $this->Application->getUnitOption($this->Prefix,'ForeignKey'), - 'ParentTableKey' => $this->Application->getUnitOption($this->Prefix,'ParentTableKey'), + 'TableName' => $config->getTableName(), + 'IdField' => $config->getIDField(), + 'ForeignKey' => $config->getForeignKey($parent_prefix), + 'ParentTableKey' => $config->getParentTableKey($parent_prefix), 'ParentPrefix' => $parent_prefix ); - if (is_array($table_info['ForeignKey'])) { - $table_info['ForeignKey'] = getArrayValue($table_info, 'ForeignKey', $parent_prefix); - } - - if (is_array($table_info['ParentTableKey'])) { - $table_info['ParentTableKey'] = getArrayValue($table_info, 'ParentTableKey', $parent_prefix); - } - - $main_object = $this->Application->recallObject($parent_prefix.'.'.$special, null, Array ('raise_warnings' => 0)); + $main_object = $this->Application->recallObject($parent_prefix . '.' . $special, null, Array ('raise_warnings' => 0)); /* @var $main_object kDBItem */ - if (!$main_object->isLoaded() && $guess_special) { + if ( !$main_object->isLoaded() && $guess_special ) { $main_object = $this->Application->recallObject($parent_prefix); } - return array_merge($table_info, Array('ParentId'=> $main_object->GetDBField( $table_info['ParentTableKey'] ) ) ); + $table_info['ParentId'] = $main_object->GetDBField($table_info['ParentTableKey']); + + return $table_info; } return false;