objectManager = $objectManager; $this->storeManager = $storeManager; parent::__construct($context); } /** * @param null $storeId * @return bool */ public function isEnabled($storeId = null) { return $this->getConfigGeneral('enabled', $storeId); } /** * @param string $code * @param null $storeId * @return mixed */ public function getConfigGeneral($code = '', $storeId = null) { $code = ($code !== '') ? '/' . $code : ''; return $this->getConfigValue(static::CONFIG_MODULE_PATH . '/general' . $code, $storeId); } /** * @param string $field * @param null $storeId * @return mixed */ public function getModuleConfig($field = '', $storeId = null) { $field = ($field !== '') ? '/' . $field : ''; return $this->getConfigValue(static::CONFIG_MODULE_PATH . $field, $storeId); } /** * @param $field * @param null $storeId * @return mixed */ public function getConfigValue($field, $storeId = null) { return $this->scopeConfig->getValue( $field, ScopeInterface::SCOPE_STORE, $storeId ); } /** * @param $name * @return null */ public function getData($name) { if (array_key_exists($name, $this->_data)) { return $this->_data[$name]; } return null; } /** * @param $name * @param $value * @return $this */ public function setData($name, $value) { $this->_data[$name] = $value; return $this; } /** * @return mixed */ public function getCurrentUrl() { $model = $this->objectManager->get(UrlInterface::class); return $model->getCurrentUrl(); } /** * @param $data * @return string * @throws \Zend_Serializer_Exception */ public function serialize($data) { if ($this->versionCompare('2.2.0')) { return self::jsonEncode($data); } return $this->getSerializeClass()->serialize($data); } /** * @param $ver * @return mixed */ public function versionCompare($ver) { $productMetadata = $this->objectManager->get(ProductMetadataInterface::class); $version = $productMetadata->getVersion(); //will return the magento version return version_compare($version, $ver, '>='); } /** * Encode the mixed $valueToEncode into the JSON format * * @param mixed $valueToEncode * @return string */ public static function jsonEncode($valueToEncode) { try { $encodeValue = self::getJsonHelper()->jsonEncode($valueToEncode); } catch (\Exception $e) { $encodeValue = '{}'; } return $encodeValue; } /** * @return \Magento\Framework\Json\Helper\Data|mixed */ public static function getJsonHelper() { return ObjectManager::getInstance()->get(JsonHelper::class); } /** * @return \Zend_Serializer_Adapter_PhpSerialize|mixed */ protected function getSerializeClass() { return $this->objectManager->get(\Zend_Serializer_Adapter_PhpSerialize::class); } /** * @param $string * @return mixed * @throws \Zend_Serializer_Exception */ public function unserialize($string) { if ($this->versionCompare('2.2.0')) { return self::jsonDecode($string); } return $this->getSerializeClass()->unserialize($string); } /** * Decodes the given $encodedValue string which is * encoded in the JSON format * * @param string $encodedValue * @return mixed */ public static function jsonDecode($encodedValue) { try { $decodeValue = self::getJsonHelper()->jsonDecode($encodedValue); } catch (\Exception $e) { $decodeValue = []; } return $decodeValue; } /** * Is Admin Store * * @return bool */ public function isAdmin() { /** @var \Magento\Framework\App\State $state */ $state = $this->objectManager->get('Magento\Framework\App\State'); try { $areaCode = $state->getAreaCode(); } catch (\Exception $e) { return false; } return $areaCode == Area::AREA_ADMINHTML; } /** * @param $path * @param array $arguments * @return mixed */ public function createObject($path, $arguments = []) { return $this->objectManager->create($path, $arguments); } /** * @param $path * @return mixed */ public function getObject($path) { return $this->objectManager->get($path); } }