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/vendor/redchamps/module-core/Model/System/Message/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/redchamps/module-core/Model/System/Message/UpdatesSystemMessage.php
<?php
namespace RedChamps\Core\Model\System\Message;

use Magento\Framework\App\Config\ScopeConfigInterface;
use Magento\Framework\Notification\MessageInterface;
use Magento\Framework\UrlInterface;
use RedChamps\Core\Model\Processor;

/*
 * Package: Core
 * Class: UpdateSystemMessage
 * Company: RedChamps
 * author: rav([email protected])
 * */
class UpdatesSystemMessage implements MessageInterface
{
    /**
     * @var Processor
     */
    protected $processor;

    /**
     * @var $updateAvailable
     */
    protected $updateAvailable;

    /**
     * @var $extensionDetails
     */
    protected $extensionDetails = [];

    protected $urlBulder;

    protected $scopeConfig;

    /**
     * @param Processor $processor
     * @param UrlInterface $url
     * @param ScopeConfigInterface $scopeConfig
     */
    public function __construct(
        Processor $processor,
        UrlInterface $url,
        ScopeConfigInterface $scopeConfig
    ) {
        $this->processor = $processor;
        $this->scopeConfig = $scopeConfig;
        $this->urlBulder = $url;
    }

    /**
     * Message identity
     */
    const MESSAGE_IDENTITY = 'redchamps_system_message';

    /**
     * Retrieve unique system message identity
     *
     * @return string
     */
    public function getIdentity()
    {
        return self::MESSAGE_IDENTITY;
    }

    /**
     * Retrieve system message severity
     * Possible default system message types:
     * - MessageInterface::SEVERITY_CRITICAL
     * - MessageInterface::SEVERITY_MAJOR
     * - MessageInterface::SEVERITY_MINOR
     * - MessageInterface::SEVERITY_NOTICE
     *
     * @return int
     */
    public function getSeverity()
    {
        return self::SEVERITY_MAJOR;
    }

    /**
     * Check whether the system message should be shown
     *
     * @return bool
     */
    public function isDisplayed()
    {
        return false;
    }

    /**
     * Retrieve system message text
     *
     * @return bool
     */
    public function getText()
    {
        return false;
    }

    /**
     * Check if extension update needed
     *
     * @param $extensionName
     * @param $extensionLabel
     * @return string
     */
    protected function _checkUpdate($extensionName, $extensionLabel)
    {
        $extensionDetails = $this->processor->getExtensionVersion($extensionName);
        if (isset($extensionDetails['status']) && isset($extensionDetails['update_needed']) &&
            $extensionDetails['status'] && $extensionDetails['update_needed']) {
            if (isset($extensionDetails['label'])) {
                $extensionLabel = $extensionDetails["label"];
            }
            $availableVersion = $extensionDetails['available_version'];
            if ($this->_checkIfRead($extensionName, $availableVersion)) {
                return false;
            }
            $routePath = "redchamps/system_message/markRead/extension/$extensionName/version/$availableVersion";
            $msg = $extensionLabel . ' ' . $extensionDetails['status_message'] .
                ' ' .
                $extensionDetails['notification_msg'] .
                ' ' .
                "<b>
                    [<a href='{$this->urlBulder->getUrl($routePath)}'>Mark as Read</a>]
                </b>";
            return $msg;
        }
        return false;
    }

    protected function _checkIfRead($extensionName, $availableVersion)
    {
        $value = $this->scopeConfig->getValue(Processor::XML_BASE_CONFIG_PATH . $extensionName);
        if ($value && version_compare($value, $availableVersion) >= 0) {
            return true;
        }
        return false;
    }

    /**
     * Get current extension details
     *
     * @return array
     */
    protected function _getExtensionDetails($class)
    {
        if (empty($this->extensionDetails)) {
            $class = get_class($class);
            if ($class) {
                $class = explode('\\', $class);
                if (isset($class[0]) && isset($class[1])) {
                    $this->extensionDetails['name'] = $class[0] . '_' . $class[1];
                    $this->extensionDetails['label'] = $class[1];
                }
            }
        }

        return $this->extensionDetails;
    }
}

Spamworldpro Mini