![]() 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/mageworx/module-seobase/Model/Observer/ |
<?php /** * Copyright © MageWorx. All rights reserved. * See LICENSE.txt for license details. */ declare(strict_types=1); namespace MageWorx\SeoBase\Model\Observer; use Magento\Framework\View\Page\Config; use MageWorx\SeoBase\Model\HreflangsFactory as HreflangsFactory; use MageWorx\SeoAll\Helper\SeoFeaturesStatusProvider; /** * Observer class for hreflang URLs */ class Hreflangs implements \Magento\Framework\Event\ObserverInterface { /** * @var \MageWorx\SeoBase\Model\HreflangFactory */ protected $hreflangsFactory; /** * @var \Magento\Framework\View\Page\Config */ protected $pageConfig; /** * @var $moduleName */ protected $moduleName = 'SeoBase'; /** * @var \MageWorx\SeoAll\Helper\SeoFeaturesStatusProvider $seoFeaturesStatusProvider */ protected $seoFeaturesStatusProvider; /** * Hreflangs constructor. * * @param Config $pageConfig * @param HreflangsFactory $hreflangsFactory * @param SeoFeaturesStatusProvider $seoFeaturesStatusProvider */ public function __construct( Config $pageConfig, HreflangsFactory $hreflangsFactory, SeoFeaturesStatusProvider $seoFeaturesStatusProvider ) { $this->pageConfig = $pageConfig; $this->hreflangsFactory = $hreflangsFactory; $this->seoFeaturesStatusProvider = $seoFeaturesStatusProvider; } /** * Set hreflang URLs to page config * * @param \Magento\Framework\Event\Observer $observer * @return void */ public function execute(\Magento\Framework\Event\Observer $observer) { if ($this->seoFeaturesStatusProvider->getStatus($this->moduleName)) { return; } $fullActionName = $observer->getFullActionName(); $arguments = ['layout' => $observer->getLayout(), 'fullActionName' => $fullActionName]; $hreflangModel = $this->hreflangsFactory->create($fullActionName, $arguments); if (!$hreflangModel) { return; } $hreflangUrls = $hreflangModel->getHreflangUrls(); if (!$hreflangUrls) { return; } foreach ($hreflangUrls as $code => $hreflangUrl) { $this->pageConfig->addRemotePageAsset( $hreflangUrl, 'alternate', ['attributes' => ['rel' => 'alternate', 'hreflang' => $code]] ); } } }