cart = $app->getUserState('com_hikashop.cart_id'); $this->wishlist = $app->getUserState('com_hikashop.wishlist_id'); $this->currency = $app->getUserState('com_hikashop.currency_id'); $this->entries = $app->getUserState('com_hikashop.entries_fields'); } function onUserBeforeSave($user, $isnew, $new){ return $this->onBeforeStoreUser($user, $isnew); } function onUserAfterSave($user, $isnew, $success, $msg){ return $this->onAfterStoreUser($user, $isnew, $success, $msg); } function onUserAfterDelete($user, $success, $msg){ return $this->onAfterDeleteUser($user, $success, $msg); } function onUserLogin($user, $options){ return $this->onLoginUser($user, $options); } function onBeforeStoreUser($user, $isnew){ $this->oldUser = $user; return true; } function onAfterStoreUser($user, $isnew, $success, $msg){ if($success===false || !is_array($user)) return false; if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php')) return true; $userClass = hikashop_get('class.user'); $hikaUser = null; $hikaUser->user_email = trim(strip_tags($user['email'])); $hikaUser->user_cms_id = (int)$user['id']; if(!empty($hikaUser->user_cms_id)){ $hikaUser->user_id = $userClass->getID($hikaUser->user_cms_id,'cms'); } if(empty($hikaUser->user_id) && !empty($hikaUser->user_email)){ $hikaUser->user_id = $userClass->getID($hikaUser->user_email,'email'); } $oldUser = $userClass->get($hikaUser->user_id); $fieldsClass = hikashop_get('class.field'); $element = $fieldsClass->getInput('user', $oldUser); if(!empty($element)){ foreach($element as $key => $value) { $hikaUser->$key = $value; } } $userClass->save($hikaUser,true); return true; } function onAfterDeleteUser($user, $success, $msg){ if($success===false || !is_array($user)) return false; if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php')) return true; $userClass = hikashop_get('class.user'); $user_id = $userClass->getID($user['email'],'email'); if(!empty($user_id)){ $userClass->delete($user_id,true); } return true; } function onLoginUser($user, $options){ $app =& JFactory::getApplication(); if($app->isAdmin()) return true; $cart = $app->getUserState('com_hikashop.cart_id'); if(empty($cart) && !empty($this->cart)){ $app->setUserState('com_hikashop.cart_id',$this->cart); if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php')) return true; $cartClass = hikashop_get('class.cart'); $cartClass->initCart(); } $wishlist = $app->getUserState('com_hikashop.wishlist_id'); if(empty($wishlist) && !empty($this->wishlist)){ $app->setUserState('com_hikashop.wishlist_id',$this->wishlist); if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php')) return true; $cartClass = hikashop_get('class.cart'); $cart_type = JRequest::getString('cart_type','cart'); JRequest::setVar('cart_type','wishlist'); $cartClass->initCart(); JRequest::setVar('cart_type',$cart_type); } $entries = $app->getUserState('com_hikashop.entries_fields'); if(empty($entries) && !empty($this->entries)){ $app->setUserState('com_hikashop.entries_fields',$this->entries); } $currency = $app->getUserState('com_hikashop.currency_id'); if(empty($currency) && !empty($this->currency)){ $app->setUserState('com_hikashop.currency_id',$this->currency); } if(empty($user['id'])){ if(!empty($user['username'])){ jimport('joomla.user.helper'); $instance = new JUser(); if($id = intval(JUserHelper::getUserId($user['username']))) { $instance->load($id); } if ($instance->get('block') == 0) { $user_id=$instance->id; } } }else{ $user_id = $user['id']; } if(!empty($user_id)){ if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php')) return true; $userClass = hikashop_get('class.user'); $hika_user_id = $userClass->getID($user_id,'cms'); if(!empty($hika_user_id)){ $addressClass = hikashop_get('class.address'); $addresses = $addressClass->getByUser($hika_user_id); if(!empty($addresses) && count($addresses)){ $address = reset($addresses); $field = 'address_country'; if(!empty($address->address_state)){ $field = 'address_state'; } $app->setUserState( HIKASHOP_COMPONENT.'.shipping_address', $address->address_id ); $app->setUserState( HIKASHOP_COMPONENT.'.billing_address', $address->address_id ); $zoneClass = hikashop_get('class.zone'); $zone = $zoneClass->get($address->$field); if(!empty($zone)){ $zone_id = $zone->zone_id; $app->setUserState( HIKASHOP_COMPONENT.'.zone_id', $zone->zone_id ); } } } } } function onUserLogout($user){ return $this->onLogoutUser($user); } function onLogoutUser($user){ $options=null; return $this->onLoginUser($user, $options); } function onAfterRender(){ $option = JRequest::getCmd('option'); $view = JRequest::getCmd('view'); $task = JRequest::getCmd('task'); $layout = JRequest::getCmd('layout'); if (($option == 'com_user' && $view == 'user' && $task == 'edit') || ($option == 'com_users' && $view == 'profile' && $layout == 'edit')) { if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php')) return true; $body = JResponse::getBody(); if(strpos($body,'class="form-validate"')!==false){ $user = hikashop_loadUser(true); $fieldsClass = hikashop_get('class.field'); $extraFields = array( 'user' => $fieldsClass->getFields('frontcomp',$user,'user') ); if(!empty($extraFields['user'])){ $null = array(); $fieldsClass->addJS($null,$null,$null); $fieldsClass->jsToggle($extraFields['user'],$user,0); $data = ''; if(version_compare(JVERSION,'1.6.0','<')) { $data .= ''; } $data .= '
'.JText::_('HIKASHOP_USER_DETAILS').'
'; foreach($extraFields['user'] as $fieldName => $oneExtraField) { $data .= '
'; $onWhat='onchange'; if($oneExtraField->field_type=='radio') $onWhat='onclick'; $data .= $fieldsClass->display($oneExtraField,$user->$fieldName,'data[user]['.$fieldName.']',false,' '.$onWhat.'="hikashopToggleFields(this.value,\''.$fieldName.'\',\'user\',0);"').'
'; } $data .= '
'; $body = preg_replace('#(]*class="form-validate"[^>]*>.*)#Uis','$1'.$data, $body,1); JResponse::setBody($body); } } } } }