Spamworldpro Mini Shell
Spamworldpro


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/app/code/Zendesk/Zendesk/Helper/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/app/code/Zendesk/Zendesk/Helper/Config.php
<?php

namespace Zendesk\Zendesk\Helper;

use Magento\Framework\App\Helper\Context;

class Config extends \Magento\Framework\App\Helper\AbstractHelper
{
    const DOMAIN_CONFIG_PATH = 'zendesk/general/domain';
    const AGENT_EMAIL_CONFIG_PATH = 'zendesk/general/email';
    const API_TOKEN_CONFIG_PATH = 'zendesk/general/password';
    const WEB_WIDGET_ENABLED_CONFIG_PATH = 'zendesk/frontend_features/web_widget_code_active';
    const ENABLE_DEBUG_LOGGING_CONFIG_PATH = 'zendesk/debug/enable_debug_logging';
    const WEB_WIDGET_DYNAMIC_SNIPPET_URL_PATTERN_CONFIG_PATH = 'zendesk/web_widget/dynamic_snippet_url_pattern';
    const WEB_WIDGET_CUSTOMIZE_URL_PATTERN_CONFIG_PATH = 'zendesk/web_widget/web_widget_customize_url';
    const ZENDESK_APP_ID_CONFIG_PATH = 'zendesk/zendesk_app/app_id';
    const ZENDESK_APP_CORS_ORIGIN_PATTERN_CONFIG_PATH = 'zendesk/zendesk_app/cors_origin_pattern';

    const ZENDESK_APP_DISPLAY_NAME_CONFIG_PATH = 'zendesk/zendesk_app/display_name';
    const ZENDESK_APP_DISPLAY_ORDER_STATUS_CONFIG_PATH = 'zendesk/zendesk_app/display_order_status';
    const ZENDESK_APP_DISPLAY_ORDER_STORE_CONFIG_PATH = 'zendesk/zendesk_app/display_order_store';
    const ZENDESK_APP_DISPLAY_ITEM_QUANTITY_CONFIG_PATH = 'zendesk/zendesk_app/display_item_quantity';
    const ZENDESK_APP_DISPLAY_ITEM_PRICE_CONFIG_PATH = 'zendesk/zendesk_app/display_item_price';
    const ZENDESK_APP_DISPLAY_TOTAL_PRICE_CONFIG_PATH = 'zendesk/zendesk_app/display_total_price';
    const ZENDESK_APP_DISPLAY_SHIPPING_ADDRESS_CONFIG_PATH = 'zendesk/zendesk_app/display_shipping_address';
    const ZENDESK_APP_DISPLAY_SHIPPING_METHOD_CONFIG_PATH = 'zendesk/zendesk_app/display_shipping_method';
    const ZENDESK_APP_DISPLAY_TRACKING_NUMBER_CONFIG_PATH = 'zendesk/zendesk_app/display_tracking_number';
    const ZENDESK_APP_DISPLAY_ORDER_COMMENTS_CONFIG_PATH = 'zendesk/zendesk_app/display_order_comments';

    const API_CREDENTIAL_PATHS = [
        \Zendesk\Zendesk\Helper\Config::AGENT_EMAIL_CONFIG_PATH,
        \Zendesk\Zendesk\Helper\Config::DOMAIN_CONFIG_PATH,
        \Zendesk\Zendesk\Helper\Config::API_TOKEN_CONFIG_PATH
    ];

    const DOMAIN_PLACEHOLDER = '{domain}';
    const ZENDESK_DOMAIN = '.zendesk.com';

    const BRAND_FIELD_CONFIG_PATH_PREFIX = 'brand-mapping-';
    const BRAND_FIELD_GROUP_PREFIX = 'zendesk/brand_mapping';

    /**
     * @var \Magento\Framework\App\Config\Storage\WriterInterface
     */
    protected $configWriter;
    /**
     * @var \Magento\Framework\App\Cache\Manager
     */
    protected $cacheManager;

    /**
     * Config constructor.
     * @param Context $context
     * @param \Magento\Framework\App\Config\Storage\WriterInterface $configWriter
     * @param \Magento\Framework\App\Cache\Manager $cacheManager
     */
    public function __construct(
        Context $context,
        // End parent parameters
        \Magento\Framework\App\Config\Storage\WriterInterface $configWriter,
        \Magento\Framework\App\Cache\Manager $cacheManager
    ) {
        parent::__construct($context);
        $this->configWriter = $configWriter;
        $this->cacheManager = $cacheManager;
    }

    /**
     * Get configured zendesk domain
     *
     * @param string $scopeType
     * @param ?string $scopeCode
     * @return string
     */
    public function getDomain($scopeType = \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $scopeCode = null)
    {
        return (string)$this->scopeConfig->getValue(self::DOMAIN_CONFIG_PATH, $scopeType, $scopeCode);
    }

    /**
     * Get configured zendesk subdomain
     *
     * @param string $scopeType
     * @param ?string $scopeCode
     * @return string
     */
    public function getSubDomain(
        $scopeType = \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
        $scopeCode = null
    ) {
        $domain = $this->getDomain($scopeType, $scopeCode);

        return str_replace(self::ZENDESK_DOMAIN, '', $domain);
    }

    /**
     * Get configured zendesk agent email
     *
     * @param string $scopeType
     * @param ?string $scopeCode
     * @return string
     */
    public function getAgentEmail(
        $scopeType = \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
        $scopeCode = null
    ) {
        return (string)$this->scopeConfig->getValue(self::AGENT_EMAIL_CONFIG_PATH, $scopeType, $scopeCode);
    }

    /**
     * Get configured zendesk API token
     *
     * @param string $scopeType
     * @param ?string $scopeCode
     * @return string
     */
    public function getApiToken(
        $scopeType = \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
        $scopeCode = null
    ) {
        return (string)$this->scopeConfig->getValue(self::API_TOKEN_CONFIG_PATH, $scopeType, $scopeCode);
    }

    /**
     * Get if web widget enabled by store
     *
     * @param string $scopeType
     * @param null $scopeCode
     * @return bool
     */
    public function getWebWidgetEnabled(
        $scopeType = \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
        $scopeCode = null
    ) {
        return (bool)$this->scopeConfig->getValue(self::WEB_WIDGET_ENABLED_CONFIG_PATH, $scopeType, $scopeCode);
    }

    /**
     * Get if API call debug info should be logged
     *
     * @return bool
     */
    public function getDebugLoggingEnabled()
    {
        return (bool)$this->scopeConfig->getValue(self::ENABLE_DEBUG_LOGGING_CONFIG_PATH);
    }

    /**
     * Get web widget dynamic snippet URL pattern.
     * Currently fixed value in config.xml, but could conceivably be updated in the future.
     *
     * Replace {domain} with full zendesk domain.
     *
     * @return string
     */
    public function getWebWidgetDynamicSnippetUrlPattern()
    {
        return (string)$this->scopeConfig->getValue(self::WEB_WIDGET_DYNAMIC_SNIPPET_URL_PATTERN_CONFIG_PATH);
    }

    /**
     * Get web widget customization URL pattern.
     * Currently fixed value in config.xml, but could conceivably be updated in the future.
     *
     * @return string
     */
    public function getWebWidgetCustomizeUrlPattern()
    {
        return (string)$this->scopeConfig->getValue(self::WEB_WIDGET_CUSTOMIZE_URL_PATTERN_CONFIG_PATH);
    }

    /**
     * Get corresponding Zendesk APP ID.
     * Currently fixed value in config.xml, but could conceivably be updated in the future.
     *
     * @return int
     */
    public function getZendeskAppId()
    {
        return (int)$this->scopeConfig->getValue(self::ZENDESK_APP_ID_CONFIG_PATH);
    }

    /**
     * Get store ID(s) mapped to given brand ID
     *
     * @param int $brandId
     * @return int[]
     */
    public function getBrandStores($brandId)
    {
        $stores = $this->scopeConfig->getValue(
            self::BRAND_FIELD_GROUP_PREFIX . '/' . self::BRAND_FIELD_CONFIG_PATH_PREFIX . $brandId
        );

        return explode(',', $stores);
    }

    /**
     * Set stores associated with a given brand
     *
     * @param int $brandId
     * @param array $storeIds
     */
    public function setBrandStores($brandId, array $storeIds)
    {
        $this->configWriter->save(
            self::BRAND_FIELD_GROUP_PREFIX . '/' . self::BRAND_FIELD_CONFIG_PATH_PREFIX . $brandId,
            implode(',', $storeIds)
        );

        // Newly set config value won't take effect unless config cache is cleaned.
        $this->cacheManager->clean([\Magento\Framework\App\Cache\Type\Config::TYPE_IDENTIFIER]);
    }

    /**
     * Get regex pattern for valid CORS origins for Zendesk app.
     * Currently fixed value in config.xml, but could conceivably be updated in the future.
     *
     * @return string
     */
    public function getZendeskAppCorsOrigin()
    {
        return (string)$this->scopeConfig->getValue(self::ZENDESK_APP_CORS_ORIGIN_PATTERN_CONFIG_PATH);
    }

    /**
     * Get if Zendesk app should display customer name
     *
     * @param string $scopeType
     * @param null $scopeCode
     * @return bool
     */
    public function getZendeskAppDisplayName(
        $scopeType = \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
        $scopeCode = null
    ) {
        return (bool)$this->scopeConfig->getValue(
            self::ZENDESK_APP_DISPLAY_NAME_CONFIG_PATH,
            $scopeType,
            $scopeCode
        );
    }

    /**
     * Get if Zendesk app should display order status
     *
     * @param string $scopeType
     * @param null $scopeCode
     * @return bool
     */
    public function getZendeskAppDisplayOrderStatus(
        $scopeType = \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
        $scopeCode = null
    ) {
        return (bool)$this->scopeConfig->getValue(
            self::ZENDESK_APP_DISPLAY_ORDER_STATUS_CONFIG_PATH,
            $scopeType,
            $scopeCode
        );
    }

    /**
     * Get if Zendesk app should display order store
     *
     * @param string $scopeType
     * @param null $scopeCode
     * @return bool
     */
    public function getZendeskAppDisplayOrderStore(
        $scopeType = \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
        $scopeCode = null
    ) {
        return (bool)$this->scopeConfig->getValue(
            self::ZENDESK_APP_DISPLAY_ORDER_STORE_CONFIG_PATH,
            $scopeType,
            $scopeCode
        );
    }

    /**
     * Get if Zendesk app should display item quantity
     *
     * @param string $scopeType
     * @param null $scopeCode
     * @return bool
     */
    public function getZendeskAppDisplayItemQuantity(
        $scopeType = \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
        $scopeCode = null
    ) {
        return (bool)$this->scopeConfig->getValue(
            self::ZENDESK_APP_DISPLAY_ITEM_QUANTITY_CONFIG_PATH,
            $scopeType,
            $scopeCode
        );
    }

    /**
     * Get if Zendesk app should display item price
     *
     * @param string $scopeType
     * @param null $scopeCode
     * @return bool
     */
    public function getZendeskAppDisplayItemPrice(
        $scopeType = \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
        $scopeCode = null
    ) {
        return (bool)$this->scopeConfig->getValue(
            self::ZENDESK_APP_DISPLAY_ITEM_PRICE_CONFIG_PATH,
            $scopeType,
            $scopeCode
        );
    }

    /**
     * Get if Zendesk app should display total price
     *
     * @param string $scopeType
     * @param null $scopeCode
     * @return bool
     */
    public function getZendeskAppDisplayTotalPrice(
        $scopeType = \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
        $scopeCode = null
    ) {
        return (bool)$this->scopeConfig->getValue(
            self::ZENDESK_APP_DISPLAY_TOTAL_PRICE_CONFIG_PATH,
            $scopeType,
            $scopeCode
        );
    }

    /**
     * Get if Zendesk app should display shipping address
     *
     * @param string $scopeType
     * @param null $scopeCode
     * @return bool
     */
    public function getZendeskAppDisplayShippingAddress(
        $scopeType = \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
        $scopeCode = null
    ) {
        return (bool)$this->scopeConfig->getValue(
            self::ZENDESK_APP_DISPLAY_SHIPPING_ADDRESS_CONFIG_PATH,
            $scopeType,
            $scopeCode
        );
    }

    /**
     * Get if Zendesk app should display shipping method
     *
     * @param string $scopeType
     * @param null $scopeCode
     * @return bool
     */
    public function getZendeskAppDisplayShippingMethod(
        $scopeType = \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
        $scopeCode = null
    ) {
        return (bool)$this->scopeConfig->getValue(
            self::ZENDESK_APP_DISPLAY_SHIPPING_METHOD_CONFIG_PATH,
            $scopeType,
            $scopeCode
        );
    }

    /**
     * Get if Zendesk app should display tracking number(s)
     *
     * @param string $scopeType
     * @param null $scopeCode
     * @return bool
     */
    public function getZendeskAppDisplayTrackingNumber(
        $scopeType = \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
        $scopeCode = null
    ) {
        return (bool)$this->scopeConfig->getValue(
            self::ZENDESK_APP_DISPLAY_TRACKING_NUMBER_CONFIG_PATH,
            $scopeType,
            $scopeCode
        );
    }

    /**
     * Get if Zendesk app should display order comments
     *
     * @param string $scopeType
     * @param null $scopeCode
     * @return bool
     */
    public function getZendeskAppDisplayOrderComments(
        $scopeType = \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
        $scopeCode = null
    ) {
        return (bool)$this->scopeConfig->getValue(
            self::ZENDESK_APP_DISPLAY_ORDER_COMMENTS_CONFIG_PATH,
            $scopeType,
            $scopeCode
        );
    }
}

Spamworldpro Mini