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/mageworx/module-xmlsitemap/Model/Observer/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/mageworx/module-xmlsitemap/Model/Observer/GenerateSitemap.php
<?php
/**
 * Copyright © MageWorx. All rights reserved.
 * See LICENSE.txt for license details.
 */

namespace MageWorx\XmlSitemap\Model\Observer;

use Exception;
use Magento\Backend\App\Area\FrontNameResolver;
use Magento\Framework\App\State;
use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
use Magento\Store\Model\Store;
use MageWorx\XmlSitemap\Model\ResourceModel\Sitemap\CollectionFactory;
use Magento\Framework\Stdlib\DateTime\DateTime;
use MageWorx\XmlSitemap\Helper\MagentoSitemap;
use \Magento\Framework\Mail\Template\TransportBuilder;
use \Magento\Framework\Translate\Inline\StateInterface;

/**
 * Observer class for product template apply proccess
 */
class GenerateSitemap implements ObserverInterface
{

    /**
     * @var DateTime
     */
    protected $date;

    /**
     *
     * @var CollectionFactory
     */
    protected $sitemapCollectionFactory;

    /**
     * @var MagentoSitemap;
     */
    protected $helperMagentoSitemap;

    /**
     * @var TransportBuilder
     */
    protected $transportBuilder;

    /**
     * GenerateSitemap constructor.
     *
     * @param DateTime $date
     * @param CollectionFactory $sitemapCollectionFactory
     * @param MagentoSitemap $helperMagentoSitemap
     * @param TransportBuilder $transportBuilder
     */
    public function __construct(
        DateTime $date,
        CollectionFactory $sitemapCollectionFactory,
        MagentoSitemap $helperMagentoSitemap,
        State $state,
        TransportBuilder $transportBuilder
    ) {

        $this->date                     = $date;
        $this->sitemapCollectionFactory = $sitemapCollectionFactory;
        $this->helperMagentoSitemap     = $helperMagentoSitemap;
        $this->transportBuilder         = $transportBuilder;
    }

    /**
     * Apply product template
     *
     * @param Observer $observer
     */
    public function execute(Observer $observer)
    {
        $collection       = $this->sitemapCollectionFactory->create();
        $generationErrors = [];

        if ($ids = $observer->getData('sitemapIds')) {
            $collection->loadByIds($ids);
        }

        foreach ($collection as $sitemap) {
            try {
                $sitemap->generateXml();

            } catch (Exception $e) {
                $generationErrors[] = $e->getMessage();
            }
        }

        if ($generationErrors && $this->helperMagentoSitemap->getErrorRecipient()
        ) {
            $header = $this->getEmailHeader($observer);
            array_unshift($generationErrors, $header);
            $this->transportBuilder->setTemplateIdentifier(
                $this->helperMagentoSitemap->getErrorEmailTemplate()
            )->setTemplateOptions(
                [
                    'area'  => FrontNameResolver::AREA_CODE,
                    'store' => Store::DEFAULT_STORE_ID,
                ]
            )->setTemplateVars(
                ['warnings' => join("\n", $generationErrors)]
            )->setFrom(
                $this->helperMagentoSitemap->getErrorIdentity()
            )->addTo(
                $this->helperMagentoSitemap->getErrorRecipient()
            );
            $transport = $this->transportBuilder->getTransport();
            $transport->sendMessage();
        }
    }

    protected function getEmailHeader($observer)
    {
        $sitemapIds = $observer->getData('sitemapIds');

        $string = __('Unfortunately, the process of generating sitemap(s) went wrong.');
        $string .= ' ' . __('Module') . ': MageWorx_XmlSitemap, ' . __('Date') . ': ' . date("Y-m-d") . '. ';

        if ($sitemapIds) {
            $string .= __('Sitemap(s) with id(s)  %1 were not updated.', implode(", ", $sitemapIds));
        }

        return $string;
    }
}

Spamworldpro Mini