Index: branches/unlabeled/unlabeled-1.1.2/core/units/config_search/config_search_config.php =================================================================== --- branches/unlabeled/unlabeled-1.1.2/core/units/config_search/config_search_config.php (revision 1372) +++ branches/unlabeled/unlabeled-1.1.2/core/units/config_search/config_search_config.php (revision 1373) @@ -1,90 +1,99 @@ <?php $config = Array( 'Prefix' => 'confs', 'ItemClass' => Array('class'=>'kDBItem','file'=>'','build_event'=>'OnItemBuild'), 'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'), 'EventHandlerClass' => Array('class'=>'ConfigSearchEventHandler','file'=>'config_search_event_handler.php','build_event'=>'OnBuild'), 'TagProcessorClass' => Array('class'=>'ConfigSearchTagProcessor','file'=>'config_search_tag_processor.php','build_event'=>'OnBuild'), 'AutoLoad' => true, 'hooks' => Array(), 'QueryString' => Array( 1 => 'id', 2 => 'page', 3 => 'event', 4 => 'module', 5 => 'section', ), 'Hooks' => Array( Array( 'Mode' => hAFTER, 'Conditional' => false, 'HookToPrefix' => 'cf', 'HookToSpecial' => '', - //'HookToEvent' => Array( 'OnPreSaveCreated' ), 'HookToEvent' => Array( 'OnSave' ), 'DoPrefix' => 'confs', 'DoSpecial' => '', 'DoEvent' => 'OnCreateCustomField', ), + Array( + 'Mode' => hAFTER, + 'Conditional' => false, + 'HookToPrefix' => 'cf', + 'HookToSpecial' => '-item', + 'HookToEvent' => Array( 'OnAfterItemDelete' ), + 'DoPrefix' => 'confs', + 'DoSpecial' => '', + 'DoEvent' => 'OnDeleteCustomField', + ), ), 'IDField' => 'SearchConfigId', 'TitlePresets' => Array( 'config_list' => Array('prefixes' => Array('confs_List'), 'format' => "!la_updating_config!"), ), 'TableName' => TABLE_PREFIX.'SearchConfig', 'ListSQLs' => Array(''=>'SELECT *, IF('.TABLE_PREFIX.'SearchConfig.CustomFieldId=0, 0, 1) AS IsCustom FROM '.TABLE_PREFIX.'SearchConfig'), 'ItemSQLs' => Array(''=>'SELECT * FROM '.TABLE_PREFIX.'SearchConfig'), 'SubTables' => Array(), 'Fields' => Array( 'TableName' => Array('type' => 'string','not_null' => '1','default' => ''), 'FieldName' => Array('type' => 'string','not_null' => '1','default' => ''), 'SimpleSearch' => Array('type' => 'int','not_null' => '1','default' => '0'), 'AdvancedSearch' => Array('type' => 'int','not_null' => '1','default' => '0'), 'Description' => Array('type' => 'string','default' => ''), 'DisplayName' => Array('type' => 'string','default' => ''), 'ModuleName' => Array('type' => 'string','default' => ''), 'ConfigHeader' => Array('type' => 'string','default' => ''), 'DisplayOrder' => Array('type' => 'int','not_null' => '1','default' => '0'), 'SearchConfigId' => Array('type' => 'int','not_null' => '1','default' => ''), 'Priority' => Array('type' => 'int','not_null' => '1','default' => '0'), 'FieldType' => Array('type' => 'string','not_null' => '1','default' => 'text'), 'ForeignField' => Array('type' => 'string','default' => ''), 'JoinClause' => Array('type' => 'string','default' => ''), 'IsWhere' => Array('type' => 'string','default' => ''), 'IsNotWhere' => Array('type' => 'string','default' => ''), 'ContainsWhere' => Array('type' => 'string','default' => ''), 'NotContainsWhere' => Array('type' => 'string','default' => ''), 'CustomFieldId' => Array('type' => 'int','not_null' => '1','default' => '0'), ), 'VirtualFields' => Array(), 'ListSortings' => Array( '' => Array( 'ForcedSorting' => Array('IsCustom' => 'asc'), 'Sorting' => Array('DisplayOrder' => 'asc'), ) ), 'Grids' => Array( 'Default' => Array( 'Icons' => Array('default'=>'icon16_custom.gif'), // icons for each StatusField values, if no matches or no statusfield selected, then "default" icon is used 'Fields' => Array( 'TableName' => Array( 'title'=>'la_col_TableName', 'data_block' => 'grid_data_td'), 'FieldName' => Array( 'title'=>'la_col_FieldName', 'data_block' => 'grid_data_td' ), 'SimpleSearch' => Array( 'title'=>'la_col_SimpleSearch', 'data_block' => 'grid_data_td'), ), ), ), ); ?> \ No newline at end of file Property changes on: branches/unlabeled/unlabeled-1.1.2/core/units/config_search/config_search_config.php ___________________________________________________________________ Modified: cvs2svn:cvs-rev ## -1 +1 ## -1.1.2.3 \ No newline at end of property +1.1.2.4 \ No newline at end of property Index: branches/unlabeled/unlabeled-1.1.2/core/units/config_search/config_search_event_handler.php =================================================================== --- branches/unlabeled/unlabeled-1.1.2/core/units/config_search/config_search_event_handler.php (revision 1372) +++ branches/unlabeled/unlabeled-1.1.2/core/units/config_search/config_search_event_handler.php (revision 1373) @@ -1,127 +1,139 @@ <?php class ConfigSearchEventHandler extends InpDBEventHandler { /** * Apply any custom changes to list's sql query * * @param kEvent $event * @access protected * @see OnListBuild */ function SetCustomQuery(&$event) { $object =& $event->getObject(); $module_owner=$this->Application->GetVar('module'); if ($module_owner===false) { $module_owner=$this->myUrlDecode($this->Application->GetVar('confs_module')); $this->Application->SetVar("module", $module_owner); } $section=$this->Application->GetVar('section'); if ($section===false){ $section=$this->myUrlDecode($this->Application->GetVar('confs_section')); $this->Application->SetVar("section", $section); } $object->addFilter('module_filter', '%1$s.ModuleName = "'.$module_owner.'"'); } function OnUpdate(&$event) { parent::OnUpdate($event); $module_owner=$this->Application->GetVar('module'); $module_section=$this->Application->GetVar('section'); $conf_update = new kEvent( ); $conf_update->Init('conf'); $conf_update->Name = 'OnUpdate'; $conf_update->redirect = false; $this->Application->HandleEvent($conf_update); $event->redirect_params = Array('opener' => 's','confs_module'=>$this->myUrlEncode($module_owner),'confs_section'=>$this->myUrlEncode($module_section),'conf_module'=>$this->myUrlEncode($module_owner),'conf_section'=>$this->myUrlEncode($module_section),'pass'=>'all,confs,conf'); //stay! } function OnCancel(&$event) { parent::OnCancel($event); $module_owner=$this->Application->GetVar('module'); $module_section=$this->Application->GetVar('section'); $event->redirect_params = Array('opener' => 's','confs_module'=>$this->myUrlEncode($module_owner),'confs_section'=>$this->myUrlEncode($module_section),'conf_module'=>$this->myUrlEncode($module_owner),'conf_section'=>$this->myUrlEncode($module_section),'pass'=>'all,confs,conf'); //stay! } function myUrlDecode($str){ $str=str_replace(';',':', $str); $str=str_replace('!','-', $str); return $str; } function myUrlEncode($str){ $str=str_replace('-', '!', $str); $str=str_replace(':', ';', $str); return $str; } /** * Enter description here... * * @param kEvent $event */ function OnCreateCustomField(&$event) { $cf_object =& $event->MasterEvent->getObject(); $is_new = $event->MasterEvent->getEventParam('IsNew'); $cf_search = array(); $cf_search['DisplayOrder'] = $cf_object->FieldValues['DisplayOrder']; $cf_search['ElementType'] = $cf_object->FieldValues['ElementType']; $cf_search['DisplayName'] = $cf_object->FieldValues['FieldLabel']; $cf_search['FieldName'] = $cf_object->FieldValues['FieldName']; $cf_search['Description'] = $cf_object->FieldValues['Prompt']; $cf_search['ConfigHeader'] = $cf_object->FieldValues['Heading']; $cf_search['TableName'] = "CustomField"; $cf_search['ModuleName'] = "In-Commerce"; $cf_search['ForeignField'] = "CustomMetaData.Value"; $cf_search['JoinClause'] = "{ForeignTable}.CustomFieldId={LocalTable}.CustomFieldId"; if($is_new) { $live_id = $this->Conn->GetOne("SELECT CustomFieldId FROM ".TABLE_PREFIX."CustomField WHERE FieldName='".$cf_search['FieldName']."'"); $cf_search['CustomFieldId'] = $live_id; $this->Application->setUnitOption($event->Prefix,'AutoLoad',false); $confs_item = $event->getObject(); $confs_item->SetFieldsFromHash($cf_search); $confs_item->Create(); }else{ $cf_search['CustomFieldId'] = $cf_object->FieldValues['CustomFieldId']; $search_config_id = $this->Conn->GetOne("SELECT SearchConfigId FROM ".TABLE_PREFIX."SearchConfig WHERE CustomFieldId='".$cf_object->FieldValues['CustomFieldId']."'"); $cf_search['SearchConfigId'] = $search_config_id; $this->Application->setUnitOption($event->Prefix,'AutoLoad',false); $confs_item = $event->getObject(); $confs_item->SetFieldsFromHash($cf_search); $confs_item->Update($search_config_id); } } + + /** + * Enter description here... + * + * @param kEvent $event + */ + function OnDeleteCustomField(&$event){ + + $custom_field_id =&$event->MasterEvent->getEventParam('id'); + $this->Conn->Query("DELETE FROM ".TABLE_PREFIX."SearchConfig WHERE CustomFieldId=".$custom_field_id); + + } } ?> \ No newline at end of file Property changes on: branches/unlabeled/unlabeled-1.1.2/core/units/config_search/config_search_event_handler.php ___________________________________________________________________ Modified: cvs2svn:cvs-rev ## -1 +1 ## -1.1.2.5 \ No newline at end of property +1.1.2.6 \ No newline at end of property