Data.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Backend\Helper;
  7. use Magento\Framework\App\Helper\AbstractHelper;
  8. /**
  9. * @api
  10. * @deprecated 100.2.0
  11. * @SuppressWarnings(PHPMD.LongVariable)
  12. * @since 100.0.2
  13. */
  14. class Data extends AbstractHelper
  15. {
  16. const XML_PATH_USE_CUSTOM_ADMIN_URL = 'admin/url/use_custom';
  17. /**
  18. * @var string
  19. */
  20. protected $_pageHelpUrl;
  21. /**
  22. * @var \Magento\Framework\App\Route\Config
  23. */
  24. protected $_routeConfig;
  25. /**
  26. * @var \Magento\Framework\Locale\ResolverInterface
  27. */
  28. protected $_locale;
  29. /**
  30. * @var \Magento\Backend\Model\UrlInterface
  31. */
  32. protected $_backendUrl;
  33. /**
  34. * @var \Magento\Backend\Model\Auth
  35. */
  36. protected $_auth;
  37. /**
  38. * @var \Magento\Backend\App\Area\FrontNameResolver
  39. */
  40. protected $_frontNameResolver;
  41. /**
  42. * @var \Magento\Framework\Math\Random
  43. */
  44. protected $mathRandom;
  45. /**
  46. * @param \Magento\Framework\App\Helper\Context $context
  47. * @param \Magento\Framework\App\Route\Config $routeConfig
  48. * @param \Magento\Framework\Locale\ResolverInterface $locale
  49. * @param \Magento\Backend\Model\UrlInterface $backendUrl
  50. * @param \Magento\Backend\Model\Auth $auth
  51. * @param \Magento\Backend\App\Area\FrontNameResolver $frontNameResolver
  52. * @param \Magento\Framework\Math\Random $mathRandom
  53. */
  54. public function __construct(
  55. \Magento\Framework\App\Helper\Context $context,
  56. \Magento\Framework\App\Route\Config $routeConfig,
  57. \Magento\Framework\Locale\ResolverInterface $locale,
  58. \Magento\Backend\Model\UrlInterface $backendUrl,
  59. \Magento\Backend\Model\Auth $auth,
  60. \Magento\Backend\App\Area\FrontNameResolver $frontNameResolver,
  61. \Magento\Framework\Math\Random $mathRandom
  62. ) {
  63. parent::__construct($context);
  64. $this->_routeConfig = $routeConfig;
  65. $this->_locale = $locale;
  66. $this->_backendUrl = $backendUrl;
  67. $this->_auth = $auth;
  68. $this->_frontNameResolver = $frontNameResolver;
  69. $this->mathRandom = $mathRandom;
  70. }
  71. /**
  72. * @return string
  73. */
  74. public function getPageHelpUrl()
  75. {
  76. if (!$this->_pageHelpUrl) {
  77. $this->setPageHelpUrl();
  78. }
  79. return $this->_pageHelpUrl;
  80. }
  81. /**
  82. * @param string|null $url
  83. * @return $this
  84. */
  85. public function setPageHelpUrl($url = null)
  86. {
  87. if ($url === null) {
  88. $request = $this->_request;
  89. $frontModule = $request->getControllerModule();
  90. if (!$frontModule) {
  91. $frontModule = $this->_routeConfig->getModulesByFrontName($request->getModuleName());
  92. if (empty($frontModule) === false) {
  93. $frontModule = $frontModule[0];
  94. } else {
  95. $frontModule = null;
  96. }
  97. }
  98. $url = 'http://www.magentocommerce.com/gethelp/';
  99. $url .= $this->_locale->getLocale() . '/';
  100. $url .= $frontModule . '/';
  101. $url .= $request->getControllerName() . '/';
  102. $url .= $request->getActionName() . '/';
  103. $this->_pageHelpUrl = $url;
  104. }
  105. $this->_pageHelpUrl = $url;
  106. return $this;
  107. }
  108. /**
  109. * @param string $suffix
  110. * @return $this
  111. */
  112. public function addPageHelpUrl($suffix)
  113. {
  114. $this->_pageHelpUrl = $this->getPageHelpUrl() . $suffix;
  115. return $this;
  116. }
  117. /**
  118. * @param string $route
  119. * @param array $params
  120. * @return string
  121. */
  122. public function getUrl($route = '', $params = [])
  123. {
  124. return $this->_backendUrl->getUrl($route, $params);
  125. }
  126. /**
  127. * @return int|bool
  128. */
  129. public function getCurrentUserId()
  130. {
  131. if ($this->_auth->getUser()) {
  132. return $this->_auth->getUser()->getId();
  133. }
  134. return false;
  135. }
  136. /**
  137. * Decode filter string
  138. *
  139. * @param string $filterString
  140. * @return array
  141. */
  142. public function prepareFilterString($filterString)
  143. {
  144. $data = [];
  145. $filterString = base64_decode($filterString);
  146. parse_str($filterString, $data);
  147. array_walk_recursive(
  148. $data,
  149. // @codingStandardsIgnoreStart
  150. /**
  151. * Decodes URL-encoded string and trims whitespaces from the beginning and end of a string
  152. *
  153. * @param string $value
  154. */
  155. // @codingStandardsIgnoreEnd
  156. function (&$value) {
  157. $value = trim(rawurldecode($value));
  158. }
  159. );
  160. return $data;
  161. }
  162. /**
  163. * Generate unique token for reset password confirmation link
  164. *
  165. * @return string
  166. */
  167. public function generateResetPasswordLinkToken()
  168. {
  169. return $this->mathRandom->getUniqueHash();
  170. }
  171. /**
  172. * Get backend start page URL
  173. *
  174. * @return string
  175. */
  176. public function getHomePageUrl()
  177. {
  178. return $this->_backendUrl->getRouteUrl('adminhtml');
  179. }
  180. /**
  181. * Return Backend area front name
  182. *
  183. * @param bool $checkHost
  184. * @return bool|string
  185. */
  186. public function getAreaFrontName($checkHost = false)
  187. {
  188. return $this->_frontNameResolver->getFrontName($checkHost);
  189. }
  190. }