123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- declare(strict_types=1);
- namespace Magento\Store\ViewModel;
- use Magento\Framework\App\ActionInterface;
- use Magento\Framework\Url\EncoderInterface;
- use Magento\Framework\UrlInterface;
- use Magento\Store\Model\Store;
- use Magento\Store\Model\StoreManagerInterface;
- /**
- * Provides target store redirect url.
- */
- class SwitcherUrlProvider implements \Magento\Framework\View\Element\Block\ArgumentInterface
- {
- /**
- * @var EncoderInterface
- */
- private $encoder;
- /**
- * @var StoreManagerInterface
- */
- private $storeManager;
- /**
- * @var UrlInterface
- */
- private $urlBuilder;
- /**
- * @param EncoderInterface $encoder
- * @param StoreManagerInterface $storeManager
- * @param UrlInterface $urlBuilder
- */
- public function __construct(
- EncoderInterface $encoder,
- StoreManagerInterface $storeManager,
- UrlInterface $urlBuilder
- ) {
- $this->encoder = $encoder;
- $this->storeManager = $storeManager;
- $this->urlBuilder = $urlBuilder;
- }
- /**
- * Returns target store redirect url.
- *
- * @param Store $store
- * @return string
- * @throws \Magento\Framework\Exception\NoSuchEntityException
- */
- public function getTargetStoreRedirectUrl(Store $store): string
- {
- return $this->urlBuilder->getUrl(
- 'stores/store/redirect',
- [
- '___store' => $store->getCode(),
- '___from_store' => $this->storeManager->getStore()->getCode(),
- ActionInterface::PARAM_NAME_URL_ENCODED => $this->encoder->encode(
- $store->getCurrentUrl(false)
- ),
- ]
- );
- }
- }
|