Index: trunk/core/units/custom_fields/custom_fields_event_handler.php =================================================================== diff -u -N -r4000 -r4017 --- trunk/core/units/custom_fields/custom_fields_event_handler.php (.../custom_fields_event_handler.php) (revision 4000) +++ trunk/core/units/custom_fields/custom_fields_event_handler.php (.../custom_fields_event_handler.php) (revision 4017) @@ -48,26 +48,42 @@ function OnAfterItemDelete(&$event) { $object =& $event->getObject(); - $custom_field_id=$event->getEventParam('id'); - $this->Application->SetVar('cf_id', ''); + $main_prefix = $this->getPrefixByItemType($object->GetDBField('Type')); - $sql='DELETE FROM '.TABLE_PREFIX.'CustomMetaData WHERE CustomFieldId = '.$custom_field_id; - $this->Conn->Query($sql); + $ml_helper =& $this->Application->recallObject('kMultiLanguageHelper'); + $ml_helper->deleteField($main_prefix.'-cdata', $event->getEventParam('id')); } /** + * Get config prefix based on item type + * + * @param unknown_type $item_type + * @return unknown + */ + function getPrefixByItemType($item_type) + { + $sql = 'SELECT Prefix + FROM '.TABLE_PREFIX.'ItemTypes + WHERE ItemType = '.$item_type; + return $this->Conn->GetOne($sql); + } + + /** * Enter description here... * * @param kEvent $event */ function OnSaveCustomField(&$event) { + if ($event->MasterEvent->status != erSUCCESS) { + return false; + } + $object =& $event->getObject(); - $sql = 'SELECT Prefix - FROM '.TABLE_PREFIX.'ItemTypes - WHERE ItemType = '.$object->GetDBField('Type'); - $main_prefix = $this->Conn->GetOne($sql); + $main_prefix = $this->getPrefixByItemType($object->GetDBField('Type')); + $this->Application->HandleEvent( new kEvent($main_prefix.'-cdata:OnCreateCustomFields') ); + $ml_helper =& $this->Application->recallObject('kMultiLanguageHelper'); $ml_helper->createFields($main_prefix.'-cdata'); }