mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-07 09:17:35 +00:00
73 lines
1.8 KiB
PHP
73 lines
1.8 KiB
PHP
<?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)
|
|
),
|
|
]
|
|
);
|
|
}
|
|
}
|