123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Reports\Controller\Adminhtml\Report;
- use Magento\Backend\Model\Auth\Session as AuthSession;
- use Magento\Backend\Model\Session;
- use Magento\Framework\App\Action\HttpGetActionInterface;
- /**
- * Report statistics admin controller.
- *
- * @api
- * @since 100.0.2
- */
- abstract class Statistics extends \Magento\Backend\App\Action implements HttpGetActionInterface
- {
- /**
- * Authorization level of a basic admin session
- *
- * @see _isAllowed()
- */
- const ADMIN_RESOURCE = 'Magento_Reports::statistics';
- /**
- * Admin session model
- *
- * @var null|AuthSession
- */
- protected $_adminSession = null;
- /**
- * @var \Magento\Framework\Stdlib\DateTime\Filter\Date
- */
- protected $_dateFilter;
- /**
- * Codes for Refresh Statistics
- *
- * @var []
- */
- protected $reportTypes;
- /**
- * @param \Magento\Backend\App\Action\Context $context
- * @param \Magento\Framework\Stdlib\DateTime\Filter\Date $dateFilter
- * @param array $reportTypes
- */
- public function __construct(
- \Magento\Backend\App\Action\Context $context,
- \Magento\Framework\Stdlib\DateTime\Filter\Date $dateFilter,
- array $reportTypes
- ) {
- $this->_dateFilter = $dateFilter;
- $this->reportTypes = $reportTypes;
- parent::__construct($context);
- }
- /**
- * Add reports and statistics breadcrumbs
- *
- * @return $this
- */
- public function _initAction()
- {
- $this->_view->loadLayout();
- $this->_addBreadcrumb(__('Reports'), __('Reports'));
- $this->_addBreadcrumb(__('Statistics'), __('Statistics'));
- return $this;
- }
- /**
- * Retrieve array of collection names by code specified in request
- *
- * @return array
- * @throws \Exception
- */
- protected function _getCollectionNames()
- {
- $codes = $this->getRequest()->getParam('code');
- if (!$codes) {
- throw new \Exception(__('No report code is specified.'));
- }
- if (!is_array($codes) && strpos($codes, ',') === false) {
- $codes = [$codes];
- } elseif (!is_array($codes)) {
- $codes = explode(',', $codes);
- }
- $out = [];
- foreach ($codes as $code) {
- $out[] = $this->reportTypes[$code];
- }
- return $out;
- }
- /**
- * Retrieve admin session model
- *
- * @return AuthSession|Session|mixed|null
- */
- protected function _getSession()
- {
- if ($this->_adminSession === null) {
- $this->_adminSession = $this->_objectManager->get(\Magento\Backend\Model\Auth\Session::class);
- }
- return $this->_adminSession;
- }
- }
|