getObject(); $item_type=$this->Application->GetVar('cf_type'); $object->addFilter('itemtype_filter', '%1$s.Type = '.$item_type); //$object->AddOrderField('DisplayOrder', 'ASC'); } /** * Prevents from duplicate item creation * * @param kEvent $event */ function OnBeforeItemCreate(&$event) { $object =& $event->getObject(); $live_table = $this->Application->getUnitOption($event->Prefix, 'TableName'); $sql = 'SELECT COUNT(*) FROM '.$live_table.' WHERE FieldName = '.$this->Conn->qstr($object->GetDBField('FieldName')).' AND Type = '.$object->GetDBField('Type'); $found = $this->Conn->GetOne($sql); if ($found) { $event->status = erFAIL; $object->SetError('FieldName', 'duplicate', 'la_error_CustomExists'); } } /** * Occurse after deleting item, id of deleted item * is stored as 'id' param of event * * @param kEvent $event * @access public */ function OnAfterItemDelete(&$event) { $object =& $event->getObject(); $custom_field_id=$event->getEventParam('id'); $this->Application->SetVar('cf_id', ''); $sql='DELETE FROM '.TABLE_PREFIX.'CustomMetaData WHERE CustomFieldId = '.$custom_field_id; $this->Conn->Query($sql); } function OnMassDelete(&$event) { parent::OnMassDelete($event); $event->redirect_params = Array('opener' => 's'); } /** * Prepare temp tables for creating new item * but does not create it. Actual create is * done in OnPreSaveCreated * * @param kEvent $event */ function OnPreCreate(&$event) { parent::OnPreCreate($event); $object =& $event->getObject(); $object->SetDBField('Type', $this->Application->GetVar('cf_type')); } } ?>