Skip to content

Commit 8dfadfa

Browse files
ENGCOM-9092: 32913 set url key for page before validation #33043
2 parents 6f87f86 + 49f2ea8 commit 8dfadfa

File tree

2 files changed

+52
-0
lines changed

2 files changed

+52
-0
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\CmsUrlRewrite\Plugin\Cms\Model\PageRepository;
9+
10+
use Magento\Cms\Api\Data\PageInterface;
11+
use Magento\Cms\Model\PageRepository\ValidationComposite;
12+
use Magento\CmsUrlRewrite\Model\CmsPageUrlPathGenerator;
13+
14+
/**
15+
* Generate url_key if the merchant didn't fill this field
16+
*/
17+
class ValidationCompositePlugin
18+
{
19+
/**
20+
* @var CmsPageUrlPathGenerator
21+
*/
22+
private $cmsPageUrlPathGenerator;
23+
24+
/**
25+
* @param CmsPageUrlPathGenerator $cmsPageUrlPathGenerator
26+
*/
27+
public function __construct(
28+
CmsPageUrlPathGenerator $cmsPageUrlPathGenerator
29+
) {
30+
$this->cmsPageUrlPathGenerator = $cmsPageUrlPathGenerator;
31+
}
32+
33+
/**
34+
* Before save handler
35+
*
36+
* @param ValidationComposite $subject
37+
* @param PageInterface $page
38+
*/
39+
public function beforeSave(
40+
ValidationComposite $subject,
41+
PageInterface $page
42+
) {
43+
$urlKey = $page->getData('identifier');
44+
if ($urlKey === '' || $urlKey === null) {
45+
$page->setData('identifier', $this->cmsPageUrlPathGenerator->generateUrlKey($page));
46+
}
47+
}
48+
}

app/code/Magento/CmsUrlRewrite/etc/di.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
<type name="Magento\Cms\Model\ResourceModel\Page">
1010
<plugin name="cms_url_rewrite_plugin" type="Magento\CmsUrlRewrite\Plugin\Cms\Model\ResourceModel\Page"/>
1111
</type>
12+
<type name="Magento\Cms\Model\PageRepository\ValidationComposite">
13+
<plugin name="cms_validate_url_plugin"
14+
type="Magento\CmsUrlRewrite\Plugin\Cms\Model\PageRepository\ValidationCompositePlugin" sortOrder="10"/>
15+
</type>
1216
<type name="Magento\UrlRewrite\Model\UrlRewrite">
1317
<arguments>
1418
<argument name="entityToCacheTagMap" xsi:type="array">

0 commit comments

Comments
 (0)