![]() 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/magento/module-admin-notification/Block/ |
<?php /** * Critical notification window * * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\AdminNotification\Block; /** * Admin notification window block * * @api * @since 100.0.2 */ class Window extends \Magento\Backend\Block\Template { /** * XML path of Severity icons url */ const XML_SEVERITY_ICONS_URL_PATH = 'system/adminnotification/severity_icons_url'; /** * Severity icons url * * @var string */ protected $_severityIconsUrl; /** * Authentication * * @var \Magento\Backend\Model\Auth\Session */ protected $_authSession; /** * Critical messages collection * * @var \Magento\AdminNotification\Model\ResourceModel\Inbox\Collection */ protected $_criticalCollection; /** * @var \Magento\AdminNotification\Model\Inbox */ protected $_latestItem; /** * The property is used to define content-scope of block. Can be private or public. * If it isn't defined then application considers it as false. * * @var bool */ protected $_isScopePrivate; /** * @param \Magento\Backend\Block\Template\Context $context * @param \Magento\Backend\Model\Auth\Session $authSession * @param \Magento\AdminNotification\Model\ResourceModel\Inbox\Collection\Critical $criticalCollection * @param array $data */ public function __construct( \Magento\Backend\Block\Template\Context $context, \Magento\Backend\Model\Auth\Session $authSession, \Magento\AdminNotification\Model\ResourceModel\Inbox\Collection\Critical $criticalCollection, array $data = [] ) { parent::__construct($context, $data); $this->_authSession = $authSession; $this->_criticalCollection = $criticalCollection; $this->_isScopePrivate = true; } /** * Render block * * @return string */ protected function _toHtml() { if ($this->canShow()) { $this->setHeaderText($this->escapeHtml(__('Incoming Message'))); $this->setCloseText($this->escapeHtml(__('close'))); $this->setReadDetailsText($this->escapeHtml(__('Read Details'))); $this->setNoticeMessageText($this->escapeHtml($this->_getLatestItem()->getTitle())); $this->setNoticeMessageUrl($this->escapeUrl($this->_getLatestItem()->getUrl())); $this->setSeverityText('critical'); return parent::_toHtml(); } return ''; } /** * Retrieve latest critical item * * @return bool|\Magento\AdminNotification\Model\Inbox */ protected function _getLatestItem() { if ($this->_latestItem == null) { $items = array_values($this->_criticalCollection->getItems()); $this->_latestItem = false; if (count($items)) { $this->_latestItem = $items[0]; } } return $this->_latestItem; } /** * Check whether block should be displayed * * @return bool */ public function canShow() { return $this->_authSession->isFirstPageAfterLogin() && $this->_getLatestItem(); } }