/** * _displayHeader() method add to header JS and CSS * * @return array */ private function _displayHeader() { // set $aAssign = array(); // set js msg translation BT_FPCModuleTools::translateJsMsg(); $aAssign['oJsTranslatedMsg'] = BT_FPCModuleTools::jsonEncode($GLOBALS[_FPC_MODULE_NAME . '_JS_MSG']); // old version if (version_compare(_PS_VERSION_, '1.4.1', '<')) { $aAssign['bAddJsCss'] = true; } else { // use case - get context if (version_compare(_PS_VERSION_, '1.5', '>')) { // add in minify process by prestahsop Context::getContext()->controller->addCSS(_FPC_URL_CSS . 'hook.css'); Context::getContext()->controller->addJS(_FPC_URL_JS . 'module.js'); if (Tools::getValue('controller') == 'myaccount') { // get fancybox plugin $aJsCss = Media::getJqueryPluginPath('fancybox'); // add fancybox plugin if (!empty($aJsCss['js']) && !empty($aJsCss['css'])) { Context::getContext()->controller->addCSS($aJsCss['css']); Context::getContext()->controller->addJS($aJsCss['js']); } } } else { // add in minify process by prestahsop Tools::addCSS(_FPC_URL_CSS . 'hook.css'); Tools::addJS(_FPC_URL_JS . 'module.js'); // add fancybox plugin Tools::addCSS(_PS_CSS_DIR_ . 'jquery.fancybox-1.3.4.css'); Tools::addJS(_PS_JS_DIR_ . 'jquery/jquery.fancybox-1.3.4.js'); } $aAssign['bAddJsCss'] = false; } return array('tpl' => _FPC_TPL_HEADER, 'assign' => $aAssign); }
/** * getContent() method manages all data in Back Office * * @return string */ public function getContent() { require_once _FPC_PATH_CONF . 'admin.conf.php'; require_once _FPC_PATH_LIB_ADMIN . 'admin-ctrl_class.php'; // set $aUpdateModule = array(); try { // update new module keys BT_FPCModuleTools::updateConfiguration(); // get configuration options BT_FPCModuleTools::getConfiguration(); // set js msg translation BT_FPCModuleTools::translateJsMsg(); // instantiate admin controller object $oAdmin = new BT_AdminCtrl(); // defines type to execute // use case : no key sAction sent in POST mode (no form has been posted => first page is displayed with admin-display.class.php) // use case : key sAction sent in POST mode (form or ajax query posted ). $sAction = !Tools::getIsset('sAction') || Tools::getIsset('sAction') && 'display' == Tools::getValue('sAction') ? Tools::getIsset('sAction') ? Tools::getValue('sAction') : 'display' : Tools::getValue('sAction'); // make module update only in case of display general admin page if ($sAction == 'display' && !Tools::getIsset('sType')) { // update module if necessary $aUpdateModule = $this->_updateModule(); } //execute good action in admin // only displayed with key : tpl and assign in order to display good smarty template $aDisplay = $oAdmin->run($sAction, array_merge($_GET, $_POST)); // free memory unset($oAdmin); if (!empty($aDisplay)) { $aDisplay['assign'] = array_merge($aDisplay['assign'], array('aUpdateErrors' => $aUpdateModule, 'oJsTranslatedMsg' => BT_FPCModuleTools::jsonEncode($GLOBALS[_FPC_MODULE_NAME . '_JS_MSG']), 'bAddJsCss' => true)); // get content $sContent = $this->displayModule($aDisplay['tpl'], $aDisplay['assign']); if (!empty(self::$sQueryMode)) { echo $sContent; } else { return $sContent; } } else { throw new Exception('action returns empty content', 110); } } catch (Exception $e) { $this->aErrors[] = array('msg' => $e->getMessage(), 'code' => $e->getCode()); // get content $sContent = $this->displayErrorModule(); if (!empty(self::$sQueryMode)) { echo $sContent; } else { return $sContent; } } // exit clean with XHR mode if (!empty(self::$sQueryMode)) { exit(0); } }
/** * _collect() method * * @category hook collection * @uses * * @param array $aParams * @return array */ private function _collect($sType, array $aParams) { $aAssign = array(); // ci = customer ID // si = customer social ID // ca = connector action : ex like or want // ct = connector type : ex product or category // oi = object ID : ex product ID or category ID (base64 encoded) // test if params are valid if ((!empty($aParams['ci']) && md5('collect' . FacebookPsConnect::$oCookie->id_customer) == $aParams['ci'] || !empty($aParams['si'])) && !empty($aParams['ca']) && !empty($aParams['ct']) && !empty($aParams['oi'])) { // need to be decoded if (!empty($aParams['ci'])) { $aParams['ci'] = FacebookPsConnect::$oCookie->id_customer; $aParams['oi'] = base64_decode($aParams['oi']); } if (!empty($aParams['si']) && !empty($aParams['ci'])) { $aParams['si'] = base64_decode($aParams['si']); } $aParams['ca'] = base64_decode($aParams['ca']); $aParams['ct'] = base64_decode($aParams['ct']); // include require_once _FPC_PATH_LIB . 'module-dao_class.php'; if (!BT_FPCModuleDao::existSocialData(FacebookPsConnect::$iShopId, $aParams['ci'], $aParams['si'], $sType, $aParams['ca'], $aParams['ct'], $aParams['oi'])) { // register social data $bAdd = BT_FPCModuleDao::collectSocialData($aParams['ci'], $aParams['si'], FacebookPsConnect::$iShopId, $sType, $aParams['ca'], $aParams['ct'], $aParams['oi']); } else { $bAdd = false; } $aAssign['sResponse'] = BT_FPCModuleTools::jsonEncode(array('status' => $bAdd)); } return array('tpl' => _FPC_TPL_HOOK_PATH . _FPC_TPL_COllECTOR_RESPONSE, 'assign' => $aAssign); }