Index: kernel/utility/formatters/multilang_formatter.php =================================================================== --- kernel/utility/formatters/multilang_formatter.php (revision 13354) +++ kernel/utility/formatters/multilang_formatter.php (working copy) @@ -103,13 +103,11 @@ unset($fields[$field_name]['required'], $object->Fields[$field_name]['required']); // prevents real field with formatter set to be saved in db + $virtual_fields[$field_name] = $object->Fields[$field_name]; $object->VirtualFields[$field_name] = $object->Fields[$field_name]; - - $this->Application->setUnitOption($object->Prefix, 'Fields', $fields); } - - // substitude virtual field - if (array_key_exists($field_name, $virtual_fields)) { + elseif (array_key_exists($field_name, $virtual_fields)) { + // substitude virtual field $calculated_fields = $this->Application->getUnitOption($object->Prefix, 'CalculatedFields'); $calculated_field_special = array_key_exists($object->Special, $calculated_fields) ? $object->Special : (array_key_exists('', $calculated_fields) ? '' : false); @@ -149,6 +147,7 @@ } // manually copy virtual field back to fields (see kDBBase::setVirtualFields about that) + $fields[$translated_field] = $tmp_field_options; $object->Fields[$translated_field] = $tmp_field_options; } @@ -164,8 +163,6 @@ // makes original field non-required unset($virtual_fields[$field_name]['required'], $object->VirtualFields[$field_name]['required']); - - $this->Application->setUnitOption($object->Prefix, 'VirtualFields', $virtual_fields); } //substitude grid fields @@ -205,9 +202,9 @@ $this->Application->setUnitOption($object->Prefix, 'ListSortings', $sortings); //TODO: substitude possible language-fields sortings after changing language - $fields[$field_name]['options_processed'] = $field_options['options_processed'] = true; $this->Application->setUnitOption($object->Prefix, 'Fields', $fields); + $this->Application->setUnitOption($object->Prefix, 'VirtualFields', $virtual_fields); } /*function UpdateSubFields($field, $value, &$options, &$object) Index: units/sections/site_config_eh.php =================================================================== --- units/sections/site_config_eh.php (revision 13354) +++ units/sections/site_config_eh.php (working copy) @@ -40,6 +40,11 @@ $prefix_file = substr($prefix_file, 0, $cut_pos) . '_' . $event->MasterEvent->Prefix . '.php'; if (file_exists(SYSTEM_PRESET_PATH . DIRECTORY_SEPARATOR . $prefix_file)) { + if ( $this->Application->getUnitOption($event->MasterEvent->Prefix, 'SiteConfigProcessed') ) { + // don't apply same site config twice during installation + return ; + } + require SYSTEM_PRESET_PATH . DIRECTORY_SEPARATOR . $prefix_file; } else { @@ -61,5 +66,6 @@ // apply changes $this->_helper->processConfigChanges($event->MasterEvent->Prefix, $changes); + $this->Application->setUnitOption($event->MasterEvent->Prefix, 'SiteConfigProcessed', true); } } \ No newline at end of file