Index: branches/unlabeled/unlabeled-1.85.2/core/kernel/db/db_event_handler.php =================================================================== diff -u -r8237 -r8242 --- branches/unlabeled/unlabeled-1.85.2/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 8237) +++ branches/unlabeled/unlabeled-1.85.2/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 8242) @@ -1795,93 +1795,6 @@ } /** - * Dynamically fills customdata config - * - * @param kEvent $event - */ - function OnCreateCustomFields(&$event) - { - if (defined('IS_INSTALL') && IS_INSTALL && !$this->Application->TableFound('CustomField')) { - return false; - } - $main_prefix = $this->Application->getUnitOption($event->Prefix, 'ParentPrefix'); - if (!$main_prefix) return false; - $item_type = $this->Application->getUnitOption($main_prefix, 'ItemType'); - if (!$item_type) { - // no main config of such type - return false; - } - - // 1. get custom field information - $sql = 'SELECT * - FROM '.TABLE_PREFIX.'CustomField - WHERE Type = '.$item_type.' - ORDER BY CustomFieldId'; - $custom_fields = $this->Conn->Query($sql, 'CustomFieldId'); - if (!$custom_fields) { - // config doesn't have custom fields - return false; - } - - // 2. create fields (for customdata item) - $fields = $this->Application->getUnitOption($event->Prefix, 'Fields', Array()); - $field_options = Array('type' => 'string', 'formatter' => 'kMultiLanguage', 'db_type' => 'text', 'default' => ''); - foreach ($custom_fields as $custom_id => $custom_params) { - if (isset($fields['cust_'.$custom_id])) continue; - $fields['cust_'.$custom_id] = $field_options; - } - $this->Application->setUnitOption($event->Prefix, 'Fields', $fields); - - // 3. create virtual & calculated fields (for main item) - $calculated_fields = Array(); - $virtual_fields = $this->Application->getUnitOption($main_prefix, 'VirtualFields', Array()); - - $cf_helper =& $this->Application->recallObject('InpCustomFieldsHelper'); - $field_options = Array('type' => 'string', 'not_null' => 1, 'default' => ''); - $ml_formatter =& $this->Application->recallObject('kMultiLanguage'); - - foreach ($custom_fields as $custom_id => $custom_params) { - switch ($custom_params['ElementType']) { - case 'date': - case 'datetime': - unset($field_options['options']); - $field_options['formatter'] = 'kDateFormatter'; - break; - - case 'select': - case 'multiselect': - case 'radio': - if ($custom_params['ValueList']) { - $field_options['options'] = $cf_helper->GetValuesHash($custom_params['ValueList']); - $field_options['formatter'] = 'kOptionsFormatter'; - } - break; - - default: - unset($field_options['options'], $field_options['formatter']); - break; - } - - $custom_name = $custom_params['FieldName']; - $calculated_fields['cust_'.$custom_name] = 'cust.'.$ml_formatter->LangFieldName('cust_'.$custom_id); - if (!isset($virtual_fields['cust_'.$custom_name])) { - $virtual_fields['cust_'.$custom_name] = Array(); - } - $virtual_fields['cust_'.$custom_name] = array_merge_recursive2($field_options, $virtual_fields['cust_'.$custom_name]); - $custom_fields[$custom_id] = $custom_name; - } - - $config_calculated_fields = $this->Application->getUnitOption($main_prefix, 'CalculatedFields', Array()); - foreach ($config_calculated_fields as $special => $special_fields) { - $config_calculated_fields[$special] = array_merge_recursive2($config_calculated_fields[$special], $calculated_fields); - } - $this->Application->setUnitOption($main_prefix, 'CalculatedFields', $config_calculated_fields); - - $this->Application->setUnitOption($main_prefix, 'CustomFields', $custom_fields); - $this->Application->setUnitOption($main_prefix, 'VirtualFields', $virtual_fields); - } - - /** * Saves selected user in needed field * * @param kEvent $event