Index: branches/5.1.x/units/addresses/addresses_event_handler.php =================================================================== diff -u -r13100 -r13465 --- branches/5.1.x/units/addresses/addresses_event_handler.php (.../addresses_event_handler.php) (revision 13100) +++ branches/5.1.x/units/addresses/addresses_event_handler.php (.../addresses_event_handler.php) (revision 13465) @@ -1,6 +1,6 @@ Application->recallObject('CountryStatesHelper'); + /* @var $cs_helper kCountryStatesHelper */ + + $cs_helper->CheckStateField($event, 'State', 'Country'); + $cs_helper->PopulateStates($event, 'State', 'Country'); + $this->processLastUsed($object, 'Shipping'); $this->processLastUsed($object, 'Billing'); } function OnUpdate(&$event) { - $cs_helper =& $this->Application->recallObject('CountryStatesHelper'); - /* @var $cs_helper kCountryStatesHelper */ - - $cs_helper->CheckStateField($event, 'State', 'Country'); - parent::OnUpdate($event); $this->setNextTemplate($event); @@ -111,11 +112,6 @@ */ function OnCreate(&$event) { - $cs_helper =& $this->Application->recallObject('CountryStatesHelper'); - /* @var $cs_helper kCountryStatesHelper */ - - $cs_helper->CheckStateField($event, 'State', 'Country'); - parent::OnCreate($event); $this->setNextTemplate($event); @@ -140,22 +136,20 @@ } /** - * [HOOK] Prefill states dropdown with correct values + * Fills states for object country * * @param kEvent $event - * @access public */ - function OnPrepareStates(&$event) + function OnAfterItemLoad(&$event) { + parent::OnAfterItemLoad($event); + $cs_helper =& $this->Application->recallObject('CountryStatesHelper'); - $cs_helper->PopulateStates($event, 'State', 'Country'); + /* @var $cs_helper kCountryStatesHelper */ - $object =& $event->MasterEvent->getObject(); - - if( $object->isRequired('Country') && $cs_helper->CountryHasStates( $object->GetDBField('Country') ) ) $object->setRequired('State', true); + $cs_helper->PopulateStates($event, 'State', 'Country'); } - /** * [HOOK] Update PortalUser table when address marked as ProfileAddress is changed via addr prefix object * @@ -303,6 +297,12 @@ $object->SetDBField('PortalUserId', $this->Application->RecallVar('user_id')); + $cs_helper =& $this->Application->recallObject('CountryStatesHelper'); + /* @var $cs_helper kCountryStatesHelper */ + + $cs_helper->CheckStateField($event, 'State', 'Country'); + $cs_helper->PopulateStates($event, 'State', 'Country'); + $this->processLastUsed($object, 'Shipping'); $this->processLastUsed($object, 'Billing'); }