Edit.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Theme\Controller\Adminhtml\Design\Config;
  7. use Magento\Backend\App\Action;
  8. use Magento\Backend\App\Action\Context;
  9. use Magento\Backend\Model\View\Result\Page as ResultPage;
  10. use Magento\Framework\App\Config\ScopeConfigInterface;
  11. use Magento\Framework\App\ScopeValidatorInterface as ScopeValidator;
  12. use Magento\Framework\Controller\Result\Redirect as ResultRedirect;
  13. use Magento\Framework\View\Result\PageFactory as ResultPageFactory;
  14. use Magento\Framework\App\ScopeResolverPool;
  15. /**
  16. * Edit action controller
  17. */
  18. class Edit extends Action
  19. {
  20. /**
  21. * @var ResultPageFactory
  22. */
  23. protected $resultPageFactory;
  24. /**
  25. * @var ScopeValidator
  26. */
  27. protected $scopeValidator;
  28. /**
  29. * @var ScopeResolverPool
  30. */
  31. protected $scopeResolverPool;
  32. /**
  33. * @param Context $context
  34. * @param ResultPageFactory $resultPageFactory
  35. * @param ScopeValidator $scopeValidator
  36. * @param ScopeResolverPool $scopeResolverPool
  37. */
  38. public function __construct(
  39. Context $context,
  40. ResultPageFactory $resultPageFactory,
  41. ScopeValidator $scopeValidator,
  42. ScopeResolverPool $scopeResolverPool
  43. ) {
  44. $this->resultPageFactory = $resultPageFactory;
  45. $this->scopeValidator = $scopeValidator;
  46. $this->scopeResolverPool = $scopeResolverPool;
  47. parent::__construct($context);
  48. }
  49. /**
  50. * @return ResultPage|ResultRedirect
  51. */
  52. public function execute()
  53. {
  54. $scope = $this->getRequest()->getParam('scope');
  55. $scopeId = $this->getRequest()->getParam('scope_id');
  56. if (!$this->scopeValidator->isValidScope($scope, $scopeId)) {
  57. /** @var ResultRedirect $resultRedirect */
  58. $resultRedirect = $this->resultRedirectFactory->create();
  59. $resultRedirect->setPath('theme/design_config/');
  60. return $resultRedirect;
  61. }
  62. /** @var ResultPage $resultPage */
  63. $resultPage = $this->resultPageFactory->create();
  64. $resultPage->setActiveMenu('Magento_Theme::design_config');
  65. $resultPage->getConfig()->getTitle()->prepend(__('%1', $this->getScopeTitle()));
  66. return $resultPage;
  67. }
  68. /**
  69. * Retrieve scope title
  70. *
  71. * @return string
  72. */
  73. protected function getScopeTitle()
  74. {
  75. $scope = $this->getRequest()->getParam('scope');
  76. $scopeId = $this->getRequest()->getParam('scope_id');
  77. if ($scope != ScopeConfigInterface::SCOPE_TYPE_DEFAULT) {
  78. $scopeResolver = $this->scopeResolverPool->get($scope);
  79. $scopeObject = $scopeResolver->getScope($scopeId);
  80. return __('%1', $scopeObject->getName());
  81. }
  82. return __('Global');
  83. }
  84. /**
  85. * Check the permission to run it
  86. *
  87. * @return boolean
  88. */
  89. protected function _isAllowed()
  90. {
  91. return $this->_authorization->isAllowed('Magento_Config::config_design');
  92. }
  93. }