![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/mageplaza/module-core/Helper/ |
<?php /** * Mageplaza * * NOTICE OF LICENSE * * This source file is subject to the mageplaza.com license that is * available through the world-wide-web at this URL: * https://www.mageplaza.com/LICENSE.txt * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade this extension to newer * version in the future. * * @category Mageplaza * @package Mageplaza_Core * @copyright Copyright (c) Mageplaza (https://www.mageplaza.com/) * @license https://www.mageplaza.com/LICENSE.txt */ namespace Mageplaza\Core\Helper; use Exception; use Magento\Backend\App\Config; use Magento\Framework\App\Area; use Magento\Framework\App\Helper\AbstractHelper; use Magento\Framework\App\Helper\Context; use Magento\Framework\App\ObjectManager; use Magento\Framework\App\ProductMetadataInterface; use Magento\Framework\App\State; use Magento\Framework\Json\Helper\Data as JsonHelper; use Magento\Framework\ObjectManagerInterface; use Magento\Framework\UrlInterface; use Magento\Store\Model\ScopeInterface; use Magento\Store\Model\StoreManagerInterface; use Mageplaza\Core\Model\Config\Source\NoticeType; /** * Class AbstractData * @package Mageplaza\Core\Helper */ class AbstractData extends AbstractHelper { const CONFIG_MODULE_PATH = 'mageplaza'; /** * @type array */ protected $_data = []; /** * @type StoreManagerInterface */ protected $storeManager; /** * @type ObjectManagerInterface */ protected $objectManager; /** * @var Config */ protected $backendConfig; /** * @var array */ protected $isArea = []; /** * AbstractData constructor. * * @param Context $context * @param ObjectManagerInterface $objectManager * @param StoreManagerInterface $storeManager */ public function __construct( Context $context, ObjectManagerInterface $objectManager, StoreManagerInterface $storeManager ) { $this->objectManager = $objectManager; $this->storeManager = $storeManager; parent::__construct($context); } /** * @param null $storeId * * @return bool */ public function isEnabled($storeId = null) { return $this->getConfigGeneral('enabled', $storeId); } /** * @param null $storeId * * @return bool */ public function isEnabledNotificationUpdate($storeId = null) { $isEnable = $this->getConfigGeneral('notice_enable', $storeId); $noticeType = $this->getConfigGeneral('notice_type', $storeId); if ($noticeType) { $noticeType = explode(',', $noticeType); $noticeType = in_array(NoticeType::TYPE_NEWUPDATE, $noticeType); } return $isEnable && $noticeType; } /** * @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 $scopeValue * @param string $scopeType * * @return array|mixed */ public function getConfigValue($field, $scopeValue = null, $scopeType = ScopeInterface::SCOPE_STORE) { if ($scopeValue === null && !$this->isArea()) { /** @var Config $backendConfig */ if (!$this->backendConfig) { $this->backendConfig = $this->objectManager->get(\Magento\Backend\App\ConfigInterface::class); } return $this->backendConfig->getValue($field); } return $this->scopeConfig->getValue($field, $scopeType, $scopeValue); } /** * @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 $ver * @param string $operator * * @return mixed */ public function versionCompare($ver, $operator = '>=') { $productMetadata = $this->objectManager->get(ProductMetadataInterface::class); $version = $productMetadata->getVersion(); //will return the magento version return version_compare($version, $ver, $operator); } /** * @param $data * * @return string */ public function serialize($data) { if ($this->versionCompare('2.2.0')) { return self::jsonEncode($data); } return $this->getSerializeClass()->serialize($data); } /** * @param $string * * @return mixed */ public function unserialize($string) { if ($this->versionCompare('2.2.0')) { return self::jsonDecode($string); } return $this->getSerializeClass()->unserialize($string); } /** * 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; } /** * 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() { return $this->isArea(Area::AREA_ADMINHTML); } /** * @param string $area * * @return mixed */ public function isArea($area = Area::AREA_FRONTEND) { if (!isset($this->isArea[$area])) { /** @var State $state */ $state = $this->objectManager->get(\Magento\Framework\App\State::class); try { $this->isArea[$area] = ($state->getAreaCode() == $area); } catch (Exception $e) { $this->isArea[$area] = false; } } return $this->isArea[$area]; } /** * @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); } /** * @return JsonHelper|mixed */ public static function getJsonHelper() { return ObjectManager::getInstance()->get(JsonHelper::class); } /** * @return mixed */ protected function getSerializeClass() { return $this->objectManager->get('Zend_Serializer_Adapter_PhpSerialize'); } /** * @return mixed */ public function getEdition() { return $this->objectManager->get(ProductMetadataInterface::class)->getEdition(); } /** * Extract the body from a response string * * @param string $response_str * * @return string */ public static function extractBody($response_str) { $parts = preg_split('|(?:\r\n){2}|m', $response_str, 2); if (isset($parts[1])) { return $parts[1]; } return ''; } /** * getHtmlJqColorPicker * * @param string $htmlId // id of the input html * @param string|null $value * * @return string */ public static function getHtmlJqColorPicker(string $htmlId, $value = '') { return <<<HTML <script type="text/javascript"> require(["jquery","jquery/colorpicker/js/colorpicker"], function ($) { $(document).ready(function () { var el = $("#{$htmlId}"); el.css("backgroundColor", "{$value}"); el.ColorPicker({ color: "{$value}", onChange: function (hsb, hex, rgb) { el.css("backgroundColor", "#" + hex).val("#" + hex); } }); }); }); </script> HTML; } }