Index: branches/unlabeled/unlabeled-1.1.2/core/units/config_search/config_search_config.php =================================================================== diff -u -r1368 -r1369 --- branches/unlabeled/unlabeled-1.1.2/core/units/config_search/config_search_config.php (.../config_search_config.php) (revision 1368) +++ branches/unlabeled/unlabeled-1.1.2/core/units/config_search/config_search_config.php (.../config_search_config.php) (revision 1369) @@ -13,7 +13,22 @@ 2 => 'page', 3 => 'event', 4 => 'module', + 5 => 'section', ), + + 'Hooks' => Array( + Array( + 'Mode' => hAFTER, + 'Conditional' => false, + 'HookToPrefix' => 'cf', + 'HookToSpecial' => '', + 'HookToEvent' => Array( 'OnPreSaveCreated' ), + 'DoPrefix' => 'confs', + 'DoSpecial' => '', + 'DoEvent' => 'OnCreateCustomField', + ), + ), + 'IDField' => 'SearchConfigId', 'TitlePresets' => Array( Index: branches/unlabeled/unlabeled-1.1.2/core/units/config_search/config_search_event_handler.php =================================================================== diff -u -r1368 -r1369 --- branches/unlabeled/unlabeled-1.1.2/core/units/config_search/config_search_event_handler.php (.../config_search_event_handler.php) (revision 1368) +++ branches/unlabeled/unlabeled-1.1.2/core/units/config_search/config_search_event_handler.php (.../config_search_event_handler.php) (revision 1369) @@ -18,6 +18,12 @@ $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.'"'); $object->AddOrderField('DisplayOrder', 'ASC'); @@ -27,16 +33,27 @@ { 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),'pass'=>'all,conf'); //stay! + $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),'pass'=>'all,conf'); //stay! + $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){ @@ -51,6 +68,41 @@ return $str; } + /** + * Enter description here... + * + * @param kEvent $event + */ + function OnCreateCustomField(&$event) + { + $cf_object =& $event->MasterEvent->getObject(); + + $item_id = $this->getPassedID($event->MasterEvent); + if($item_id == '') + { + // only when creating new custom field + $cf_search = array(); + + $cf_search['CustomFieldId'] = $cf_object->FieldValues['CustomFieldId']; + $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['TableName'] = "CustomField"; + $cf_search['ModuleName'] = "In-Commerce"; + $cf_search['ForeignField'] = "CustomMetaData.Value"; + $cf_search['JoinClause'] = "(inp_CustomMetaData.ResourceId={Table}.ResourceId)"; + + $this->Application->setUnitOption($event->Prefix,'AutoLoad',false); + $cf_item = $event->getObject(); + $cf_item->SetFieldsFromHash($cf_search); + $cf_item->Create(); + + + } + } } ?> \ No newline at end of file