![]() 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/cartforge.co/vendor/magento/module-sales/Model/Rss/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Sales\Model\Rss; use Magento\Framework\App\Rss\DataProviderInterface; /** * Class NewOrder * @package Magento\Sales\Model\Rss */ class NewOrder implements DataProviderInterface { /** * @var \Magento\Sales\Model\OrderFactory */ protected $orderFactory; /** * Url Builder * * @var \Magento\Framework\UrlInterface */ protected $urlBuilder; /** * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface */ protected $localeDate; /** * @var \Magento\Framework\Stdlib\DateTime */ protected $dateTime; /** * System event manager * @var \Magento\Framework\Event\ManagerInterface */ protected $eventManager; /** * Parent layout of the block * * @var \Magento\Framework\View\LayoutInterface */ protected $layout; /** * @var \Magento\Framework\App\Rss\UrlBuilderInterface */ protected $rssUrlBuilder; /** * @param \Magento\Sales\Model\OrderFactory $orderFactory * @param \Magento\Framework\UrlInterface $urlBuilder * @param \Magento\Framework\App\Rss\UrlBuilderInterface $rssUrlBuilder * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate * @param \Magento\Framework\Stdlib\DateTime $dateTime * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Magento\Framework\View\LayoutInterface $layout */ public function __construct( \Magento\Sales\Model\OrderFactory $orderFactory, \Magento\Framework\UrlInterface $urlBuilder, \Magento\Framework\App\Rss\UrlBuilderInterface $rssUrlBuilder, \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, \Magento\Framework\Stdlib\DateTime $dateTime, \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Framework\View\LayoutInterface $layout ) { $this->orderFactory = $orderFactory; $this->urlBuilder = $urlBuilder; $this->localeDate = $localeDate; $this->dateTime = $dateTime; $this->eventManager = $eventManager; $this->layout = $layout; $this->rssUrlBuilder = $rssUrlBuilder; } /** * Check if RSS feed allowed * * @return mixed */ public function isAllowed() { return true; } /** * Get RSS feed items * * @return array */ public function getRssData() { $dateTime = new \DateTime('now', new \DateTimeZone('UTC')); $interval = new \DateInterval('P7D'); $dateTime->sub($interval); $fromDate = $this->dateTime->formatDate($dateTime->getTimestamp()); $newUrl = $this->rssUrlBuilder->getUrl(['_secure' => true, '_nosecret' => true, 'type' => 'new_order']); $title = __('New Orders'); $data = ['title' => $title, 'description' => $title, 'link' => $newUrl, 'charset' => 'UTF-8']; /** @var $order \Magento\Sales\Model\Order */ $order = $this->orderFactory->create(); /** @var $collection \Magento\Sales\Model\ResourceModel\Order\Collection */ $collection = $order->getResourceCollection(); $collection->addAttributeToFilter('created_at', ['date' => true, 'from' => $fromDate]) ->addAttributeToSort('created_at', 'desc'); $this->eventManager->dispatch('rss_order_new_collection_select', ['collection' => $collection]); $detailBlock = $this->layout->getBlockSingleton(\Magento\Sales\Block\Adminhtml\Order\Details::class); foreach ($collection as $item) { $title = __('Order #%1 created at %2', $item->getIncrementId(), $this->localeDate->formatDate( $item->getCreatedAt() )); $url = $this->urlBuilder->getUrl( 'sales/order/view', ['_secure' => true, 'order_id' => $item->getId(), '_nosecret' => true] ); $detailBlock->setOrder($item); $data['entries'][] = (['title' => $title, 'link' => $url, 'description' => $detailBlock->toHtml()]); } return $data; } /** * @return string */ public function getCacheKey() { return 'rss_new_orders_data'; } /** * @return int */ public function getCacheLifetime() { return 60; } /** * @return array */ public function getFeeds() { return []; } /** * {@inheritdoc} */ public function isAuthRequired() { return true; } }