Index: trunk/core/kernel/db/db_event_handler.php =================================================================== diff -u -r4008 -r4029 --- trunk/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 4008) +++ trunk/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 4029) @@ -1579,6 +1579,9 @@ WHERE Type = '.$item_type.' ORDER BY CustomFieldId'; $custom_fields = $this->Conn->GetCol($sql, 'CustomFieldId'); + if (!$custom_fields) { + return false; + } // 2. create fields (for customdata item) $fields = $this->Application->getUnitOption($event->Prefix, 'Fields', Array()); @@ -1587,12 +1590,20 @@ $fields['cust_'.$custom_id] = $field_options; } $this->Application->setUnitOption($event->Prefix, 'Fields', $fields); - - - /*// 3. create virtual & calculated fields (for main item) + + // 3. create virtual & calculated fields (for main item) $calculated_fields = $this->Application->getUnitOption($main_prefix.'.', 'CalculatedFields', Array()); - $virtual_fields = $this->Application->getUnitOption($main_prefix, 'VirtualFields', Array());*/ + $virtual_fields = $this->Application->getUnitOption($main_prefix, 'VirtualFields', Array()); + $ml_formatter =& $this->Application->recallObject('kMultiLanguage'); + $field_options = Array('type' => 'string', 'not_null' => 1, 'default' => ''); + foreach ($custom_fields as $custom_id => $custom_name) { + $calculated_fields['cust_'.$custom_name] = 'cust.'.$ml_formatter->LangFieldName('cust_'.$custom_id); + $virtual_fields['cust_'.$custom_name] = $field_options; + } + $this->Application->setUnitOption($main_prefix, 'CustomFields', $custom_fields); + $this->Application->setUnitOption($main_prefix.'.', 'CalculatedFields', $calculated_fields); + $this->Application->setUnitOption($main_prefix, 'VirtualFields', $virtual_fields); } }