Store.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Backend\Controller\Adminhtml\System;
  7. use Magento\Backend\App\Action;
  8. use Magento\Framework\App\Filesystem\DirectoryList;
  9. use Magento\Framework\Filesystem;
  10. /**
  11. * Store controller
  12. *
  13. * @author Magento Core Team <core@magentocommerce.com>
  14. * @SuppressWarnings(PHPMD.AllPurposeAction)
  15. */
  16. abstract class Store extends Action
  17. {
  18. /**
  19. * Authorization level of a basic admin session
  20. *
  21. * @see _isAllowed()
  22. */
  23. const ADMIN_RESOURCE = 'Magento_Backend::store';
  24. /**
  25. * Core registry
  26. *
  27. * @var \Magento\Framework\Registry
  28. */
  29. protected $_coreRegistry;
  30. /**
  31. * @var \Magento\Framework\Filter\FilterManager
  32. */
  33. protected $filterManager;
  34. /**
  35. * @var \Magento\Backend\Model\View\Result\ForwardFactory
  36. */
  37. protected $resultForwardFactory;
  38. /**
  39. * @var \Magento\Framework\View\Result\PageFactory
  40. */
  41. protected $resultPageFactory;
  42. /**
  43. * @param \Magento\Backend\App\Action\Context $context
  44. * @param \Magento\Framework\Registry $coreRegistry
  45. * @param \Magento\Framework\Filter\FilterManager $filterManager
  46. * @param \Magento\Backend\Model\View\Result\ForwardFactory $resultForwardFactory
  47. * @param \Magento\Framework\View\Result\PageFactory $resultPageFactory
  48. */
  49. public function __construct(
  50. \Magento\Backend\App\Action\Context $context,
  51. \Magento\Framework\Registry $coreRegistry,
  52. \Magento\Framework\Filter\FilterManager $filterManager,
  53. \Magento\Backend\Model\View\Result\ForwardFactory $resultForwardFactory,
  54. \Magento\Framework\View\Result\PageFactory $resultPageFactory
  55. ) {
  56. $this->_coreRegistry = $coreRegistry;
  57. $this->filterManager = $filterManager;
  58. parent::__construct($context);
  59. $this->resultForwardFactory = $resultForwardFactory;
  60. $this->resultPageFactory = $resultPageFactory;
  61. }
  62. /**
  63. * Init actions
  64. *
  65. * @return \Magento\Backend\Model\View\Result\Page
  66. */
  67. protected function createPage()
  68. {
  69. /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
  70. $resultPage = $this->resultPageFactory->create();
  71. $resultPage->setActiveMenu('Magento_Backend::system_store')
  72. ->addBreadcrumb(__('System'), __('System'))
  73. ->addBreadcrumb(__('Manage Stores'), __('Manage Stores'));
  74. return $resultPage;
  75. }
  76. /**
  77. * Backup database
  78. *
  79. * @return bool
  80. *
  81. * @deprecated 100.2.7 Backup module is to be removed.
  82. */
  83. protected function _backupDatabase()
  84. {
  85. if (!$this->getRequest()->getParam('create_backup')) {
  86. return true;
  87. }
  88. try {
  89. /** @var \Magento\Backup\Model\Db $backupDb */
  90. $backupDb = $this->_objectManager->create(\Magento\Backup\Model\Db::class);
  91. /** @var \Magento\Backup\Model\Backup $backup */
  92. $backup = $this->_objectManager->create(\Magento\Backup\Model\Backup::class);
  93. /** @var Filesystem $filesystem */
  94. $filesystem = $this->_objectManager->get(\Magento\Framework\Filesystem::class);
  95. $backup->setTime(time())
  96. ->setType('db')
  97. ->setPath($filesystem->getDirectoryRead(DirectoryList::VAR_DIR)->getAbsolutePath('backups'));
  98. $backupDb->createBackup($backup);
  99. $this->messageManager->addSuccessMessage(__('The database was backed up.'));
  100. } catch (\Magento\Framework\Exception\LocalizedException $e) {
  101. $this->messageManager->addErrorMessage($e->getMessage());
  102. return false;
  103. } catch (\Exception $e) {
  104. $this->messageManager->addExceptionMessage(
  105. $e,
  106. __('We can\'t create a backup right now. Please try again later.')
  107. );
  108. return false;
  109. }
  110. return true;
  111. }
  112. /**
  113. * Add notification on deleting store / store view / website
  114. *
  115. * @param string $typeTitle
  116. * @return $this
  117. */
  118. protected function _addDeletionNotice($typeTitle)
  119. {
  120. $this->messageManager->addNoticeMessage(
  121. __(
  122. 'Deleting a %1 will not delete the information associated with the %1 (e.g. categories, products, etc.)'
  123. . ', but the %1 will not be able to be restored. It is suggested that you create a database backup '
  124. . 'before deleting the %1.',
  125. $typeTitle
  126. )
  127. );
  128. return $this;
  129. }
  130. }