![]() 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-xmlsitemap/Model/ |
<?php /** * Copyright © MageWorx. All rights reserved. * See LICENSE.txt for license details. */ namespace MageWorx\XmlSitemap\Model; use Magento\Framework\Event\ManagerInterface as EventManagerInterface; use MageWorx\XmlSitemap\Helper\Data as Helper; use Magento\Framework\ObjectManagerInterface; use MageWorx\XmlSitemap\Model\Generator\AbstractGenerator; use Magento\Framework\DataObject; /** * {@inheritdoc} */ class Generator extends AbstractGenerator { /** @var EventManagerInterface */ protected $eventManager; /** * @var int */ protected $counter = 0; /** * Generator constructor. * * @param Helper $helper * @param ObjectManagerInterface $objectManager * @param EventManagerInterface $eventManager */ public function __construct( Helper $helper, ObjectManagerInterface $objectManager, EventManagerInterface $eventManager ) { $this->eventManager = $eventManager; parent::__construct($helper, $objectManager); } /** * @param int $storeId * @param Generator $writer */ public function generate($storeId, $writer, $usePubInMediaUrls = null) { $this->storeId = $storeId; $this->helper->init($this->storeId); $this->storeBaseUrl = $writer->storeBaseUrl; $container = new DataObject(); $container->setGenerators([]); $eventArgs = [ 'storeId' => $storeId, 'container' => $container, 'exclude_meta_robots' => $this->helper->getMetaRobotsExclusion() ]; $this->eventManager->dispatch( 'mageworx_xmlsitemap_add_generator', $eventArgs ); $container = $eventArgs['container']; foreach ($container->getGenerators() as $generatorName => $generatorData) { if (empty($generatorData['items'])) { continue; } $this->code = $generatorName; $priority = empty($generatorData['priority']) ? $this->helper->getPagePriority($storeId) : $generatorData['priority']; $changefreq = empty($generatorData['changefreq']) ? $this->helper->getPageChangefreq($storeId) : $generatorData['changefreq']; foreach ($generatorData['items'] as $item) { if (empty($item['url_key'])) { continue; } $this->counter++; $urlKey = $this->getItemUrl($item['url_key']); $dateChanged = empty($item['date_changed']) ? $this->helper->getCurrentDate() : $item['date_changed']; $writer->write( $urlKey, $dateChanged, $changefreq, $priority ); } $this->name .= empty($generatorData['title']) ? '' : $generatorData['title'] . ' - ' . $this->counter . '; '; $this->counter = 0; unset($generatorData['items']); } $this->counter = -1; } /** * @param string $urlKey * @return string */ protected function getItemUrl($urlKey) { if (strpos($urlKey, $this->storeBaseUrl) === false) { $urlKey = $this->storeBaseUrl . $urlKey; } return $this->helper->trailingSlash($urlKey); } }