ltsecurityinc安防产品在线商城代码
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Lts\HomePage\Setup\Patch\Data;
|
||||
|
||||
use Magento\Cms\Model\PageFactory;
|
||||
use Magento\Framework\Setup\Patch\DataPatchInterface;
|
||||
|
||||
class AddResourcesBlockToHomePage implements DataPatchInterface
|
||||
{
|
||||
private const PAGE_IDENTIFIER = 'athlete2-home-greece';
|
||||
private const CATEGORY_BLOCK = '{{block class="Magento\\Cms\\Block\\Block" block_id="lts-home-shop-by-category"}}';
|
||||
private const RESOURCES_BLOCK = '{{block class="Magento\\Cms\\Block\\Block" block_id="lts-home-resources"}}';
|
||||
|
||||
public function __construct(
|
||||
private readonly PageFactory $pageFactory
|
||||
) {
|
||||
}
|
||||
|
||||
public function apply(): self
|
||||
{
|
||||
$page = $this->pageFactory->create()->getCollection()
|
||||
->addFieldToFilter('identifier', self::PAGE_IDENTIFIER)
|
||||
->addStoreFilter(0, false)
|
||||
->setPageSize(1)
|
||||
->getFirstItem();
|
||||
|
||||
if (!$page->getId()) {
|
||||
return $this;
|
||||
}
|
||||
|
||||
$content = (string) $page->getContent();
|
||||
|
||||
if (str_contains($content, self::RESOURCES_BLOCK)) {
|
||||
return $this;
|
||||
}
|
||||
|
||||
if (str_contains($content, self::CATEGORY_BLOCK)) {
|
||||
$content = str_replace(
|
||||
self::CATEGORY_BLOCK,
|
||||
self::CATEGORY_BLOCK . PHP_EOL . ' ' . self::RESOURCES_BLOCK,
|
||||
$content
|
||||
);
|
||||
} else {
|
||||
$feedbackPosition = strpos($content, '<a class="lts-feedback"');
|
||||
|
||||
if ($feedbackPosition === false) {
|
||||
$content .= PHP_EOL . self::RESOURCES_BLOCK;
|
||||
} else {
|
||||
$content = substr($content, 0, $feedbackPosition)
|
||||
. self::RESOURCES_BLOCK
|
||||
. PHP_EOL
|
||||
. ' '
|
||||
. substr($content, $feedbackPosition);
|
||||
}
|
||||
}
|
||||
|
||||
$page->setContent($content)->save();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public static function getDependencies(): array
|
||||
{
|
||||
return [CreateShopByCategoryBlock::class];
|
||||
}
|
||||
|
||||
public function getAliases(): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user