/** * _displayAccount() method displays fancybox if customer do not use a social connector to link his PS account * * @category hook collection * @uses * * @param array $aParams * @return array */ private function _displayAccount() { $aAssign = array('iCustomerId' => $this->iCustomerLogged, 'bUseJqueryUI' => true); $aAssign['bDisplay'] = false; // if one of connectors is active at least if (self::$bConnectorsActive) { require_once _FPC_PATH_LIB . 'module-dao_class.php'; // include abstract connector require_once _FPC_PATH_LIB_CONNECTOR . 'base-connector_class.php'; if (FacebookPsConnect::$aConfiguration[_FPC_MODULE_NAME . '_DISPLAY_FB_POPIN'] && !empty($GLOBALS[_FPC_MODULE_NAME . '_CONNECTORS']['facebook']['data']['activeConnector'])) { // set $bSocialCustomerExist = false; // loop on each connector to check if social account already exists - if not, display FB popin account association foreach ($GLOBALS[_FPC_MODULE_NAME . '_CONNECTORS'] as $sName => $aConnector) { if (!empty($GLOBALS[_FPC_MODULE_NAME . '_CONNECTORS'][$sName]['data'])) { // get connector options $aParams = $GLOBALS[_FPC_MODULE_NAME . '_CONNECTORS'][$sName]['data']; // get connector $oConnector = BT_BaseConnector::get($sName, $aParams); // check if customer is already logged from FB connector if ($oConnector->existSocialAccount($aAssign['iCustomerId'], 'ps')) { $bSocialCustomerExist = true; } unset($oConnector); } } if (!BT_FPCModuleDao::existCustomerAssociationStatus(FacebookPsConnect::$iShopId, $this->iCustomerLogged) && empty($bSocialCustomerExist)) { $aAssign['bDisplay'] = true; $aAssign['bSocialCustomerExist'] = true; $aAssign['sConnectorButtonFacebook'] = BT_FPCModuleTools::getTemplatePath(_FPC_PATH_TPL_NAME . _FPC_TPL_HOOK_PATH . _FPC_TPL_BUTTON_FB); $aAssign['sModuleURI'] = $this->sModuleURI; $aAssign['bFriendlyPermission'] = $GLOBALS[_FPC_MODULE_NAME . '_CONNECTORS']['facebook']['data']['permissions']; $aAssign['sBackUri'] = self::$sCurrentURI; } } // get connector options $aParams = $GLOBALS[_FPC_MODULE_NAME . '_CONNECTORS']['twitter']['data']; // test if twitter is already configured if (!empty($aParams)) { // get connector $oConnector = BT_BaseConnector::get('twitter', $aParams); // check if customer is already logged from FB connector if ($oConnector->existSocialAccount($aAssign['iCustomerId'], 'ps') && strstr(FacebookPsConnect::$oCookie->email, 'twitter.com')) { $aAssign['iCustomerId'] = md5(_FPC_MODULE_NAME . 'twitter' . $aAssign['iCustomerId']); $aAssign['sConnector'] = 'twitter'; $aAssign['bTwitterCustomerExist'] = true; $aAssign['bDisplay'] = true; } unset($oConnector); } // use case - data sent for collecting $sRequestData = Tools::getValue('data'); if (!empty($sRequestData)) { $aRequestData = unserialize(gzuncompress(urldecode(base64_decode($sRequestData)))); if (!empty($aRequestData)) { if (empty($aRequestData['ci'])) { $aRequestData['ci'] = md5('collect' . FacebookPsConnect::$oCookie->id_customer); if (!empty($aRequestData['cn']) && !empty($aRequestData['ca']) && !empty($aRequestData['ct']) && !empty($aRequestData['oi'])) { // execute social collect method $sReturn = FacebookPsConnect::$oModule->HookSocialCollector(base64_decode($aRequestData['cn']), $aRequestData); if (!empty($sReturn)) { // get collect data array $oResponse = BT_FPCModuleTools::jsonDecode($sReturn); if (!empty($oResponse->status)) { $aAssign['bCustomerCollect'] = true; } } } } } } } $aAssign['sModuleURI'] = _FPC_MODULE_URL . 'ws-' . _FPC_MODULE_SET_NAME . '.php'; return array('tpl' => _FPC_TPL_HOOK_PATH . _FPC_TPL_CONNECTOR_ACCOUNT, 'assign' => $aAssign); }
/** * _updateCustomer() method update customer facebook association * * @param array $aParams * @return bool */ private function _updateCustomer(array $aParams) { $aAssign = array('bFancyClose' => true); if (!empty($aParams['id'])) { // include require_once _FPC_PATH_LIB . 'module-dao_class.php'; if (!BT_FPCModuleDao::existCustomerAssociationStatus(FacebookPsConnect::$iShopId, $aParams['id'])) { BT_FPCModuleDao::addCustomerAssociationStatus(FacebookPsConnect::$iShopId, $aParams['id']); } } return array('tpl' => _FPC_TPL_EMPTY, 'assign' => $aAssign); }