26 private $urlRewritePrototype;
43 private $urlRewriteFinder;
48 private $mergeDataProviderPrototype;
61 \
Magento\CatalogUrlRewrite\Model\Map\UrlRewriteFinder $urlRewriteFinder =
null,
62 \
Magento\
UrlRewrite\Model\MergeDataProviderFactory $mergeDataProviderFactory =
null 69 ->get(\
Magento\CatalogUrlRewrite\Model\Map\UrlRewriteFinder::class);
70 if (!isset($mergeDataProviderFactory)) {
75 $this->mergeDataProviderPrototype = $mergeDataProviderFactory->create();
88 $mergeDataProvider = clone $this->mergeDataProviderPrototype;
89 $currentUrlRewrites = $this->urlRewriteFinder->findAllByData(
96 foreach ($currentUrlRewrites as
$rewrite) {
97 $mergeDataProvider->merge(
104 return $mergeDataProvider->getData();
115 if (
$category->getData(
'save_rewrites_history')) {
116 $targetPath = $this->categoryUrlPathGenerator->getUrlPathWithSuffix(
$category,
$storeId);
117 if (
$url->getRequestPath() !== $targetPath) {
118 $generatedUrl = clone $this->urlRewritePrototype;
121 ->setRequestPath(
$url->getRequestPath())
122 ->setTargetPath($targetPath)
125 ->setIsAutogenerated(0);
126 return [$generatedUrl];
140 $targetPath = !
$url->getRedirectType()
141 ?
$url->getTargetPath()
143 if (
$url->getRequestPath() !== $targetPath) {
144 $generatedUrl = clone $this->urlRewritePrototype;
147 ->setRequestPath(
$url->getRequestPath())
148 ->setTargetPath($targetPath)
149 ->setRedirectType(
$url->getRedirectType())
151 ->setDescription(
$url->getDescription())
152 ->setIsAutogenerated(0)
153 ->setMetadata(
$url->getMetadata());
154 return [$generatedUrl];
__construct(\Magento\CatalogUrlRewrite\Model\CategoryUrlPathGenerator $categoryUrlPathGenerator, \Magento\UrlRewrite\Service\V1\Data\UrlRewriteFactory $urlRewriteFactory, \Magento\UrlRewrite\Model\UrlFinderInterface $urlFinder, \Magento\CatalogUrlRewrite\Model\Map\UrlRewriteFinder $urlRewriteFinder=null, \Magento\UrlRewrite\Model\MergeDataProviderFactory $mergeDataProviderFactory=null)
generate($storeId, \Magento\Catalog\Model\Category $category, $rootCategoryId=null)
generateForCustom($url, $storeId, \Magento\Catalog\Model\Category $category=null)
$categoryUrlPathGenerator
generateForAutogenerated($url, $storeId, \Magento\Catalog\Model\Category $category=null)