48 private $urlRewriteBunchReplacer;
53 private $databaseMapPool;
58 private $dataUrlRewriteClassNames;
76 $dataUrlRewriteClassNames = [
77 DataCategoryUrlRewriteDatabaseMap::class,
78 DataProductUrlRewriteDatabaseMap::class
85 $this->urlRewriteBunchReplacer = $urlRewriteBunchReplacer;
86 $this->databaseMapPool = $databaseMapPool;
87 $this->dataUrlRewriteClassNames = $dataUrlRewriteClassNames;
98 if (
$category->dataHasChangedFor(
'parent_id')) {
99 $saveRewritesHistory = $this->scopeConfig->isSetFlag(
104 $category->setData(
'save_rewrites_history', $saveRewritesHistory);
105 $categoryUrlRewriteResult = $this->categoryUrlRewriteGenerator->generate(
$category,
true);
106 $this->urlRewriteHandler->deleteCategoryRewritesForChildren(
$category);
107 $this->urlRewriteBunchReplacer->doBunchReplace($categoryUrlRewriteResult);
108 $productUrlRewriteResult = $this->urlRewriteHandler->generateProductUrlRewrites(
$category);
109 $this->urlRewriteBunchReplacer->doBunchReplace($productUrlRewriteResult);
111 $this->resetUrlRewritesDataMaps(
$category);
121 private function resetUrlRewritesDataMaps(
$category)
123 foreach ($this->dataUrlRewriteClassNames as
$className) {
__construct(CategoryUrlRewriteGenerator $categoryUrlRewriteGenerator, UrlPersistInterface $urlPersist, ScopeConfigInterface $scopeConfig, UrlRewriteHandler $urlRewriteHandler, UrlRewriteBunchReplacer $urlRewriteBunchReplacer, DatabaseMapPool $databaseMapPool, $dataUrlRewriteClassNames=[DataCategoryUrlRewriteDatabaseMap::class, DataProductUrlRewriteDatabaseMap::class])
const XML_PATH_SEO_SAVE_HISTORY
$categoryUrlRewriteGenerator
execute(Observer $observer)