| Current Path : /home/rtorresani/www/vendor/iubenda/module-cookiesolution/Observer/ |
| Current File : //home/rtorresani/www/vendor/iubenda/module-cookiesolution/Observer/ReviewNotification.php |
<?php
namespace Iubenda\CookieSolution\Observer;
use Magento\Backend\Model\UrlInterface;
use Magento\Framework\App\Action\Context;
use Magento\Framework\Event\ObserverInterface;
use Magento\Framework\Message\ManagerInterface as MessageManagerInterface;
use \Magento\Framework\App\Request\Http;
use \Magento\Framework\App\ObjectManager;
use Iubenda\CookieSolution\Helper\Data as HelperData;
class ReviewNotification implements ObserverInterface
{
/**
* @var MessageManagerInterface
*/
private $messageManager;
/**
* HTTP request
*
* @var Http
*/
private $request;
/**
* Helper data
*
* @var HelperData|object
*/
private $helperData;
/**
* Class constructor.
*
* @param object $helperData
* @param object $directory_list
*
* @return void
*/
public function __construct(HelperData $helperData, Context $context, Http $request)
{
$this->messageManager = $context->getMessageManager();
$this->helperData = $helperData;
$this->request = $request;
}
/**
* Update HTML using iubenda class.
*
* @param object $observer
*
* @return void
*/
public function execute(\Magento\Framework\Event\Observer $observer)
{
$this->helperData->setActivationDate();
$fullActionName = $observer->getEvent()->getData('full_action_name');
// Validate we are in system config page
if ('adminhtml_system_config_edit' != $fullActionName) {
return;
}
// Escape from non Iubenda config pages.
if ('iubenda' !== $this->request->getUserParam('section')) {
return;
}
// Check if eligible to show the review notification
if (! $this->helperData->canShowReviewNotification()) {
return;
}
if (! $this->messageManager->getMessages(false)->getCount()) {
$data = $this->prepareData();
$this->messageManager->addComplexNoticeMessage('reviewMessage', $data);
}
}
/**
* Prepare data action URLs
* @return array
*/
private function prepareData(): array
{
$generator = ObjectManager::getInstance()->get(UrlInterface::class);
return [
'yes' => $generator->getUrl('iubenda/review/index'),
'no' => $generator->getUrl('iubenda/review/dismiss'),
];
}
}