Як програмно створювати нові блоки CMS у Magento 2?

Блоки Magento 2 CMS дозволяють вам виділити певний контент. Якщо ви поширюєте оголошення, знижки чи спеціальні пропозиції за допомогою блоків CMS, це значно підвищує ймовірність того, що ваші клієнти знайдуть їх та застосують.

Ви можете створити Блоки CMS у Magento , це один із способів. Однак, також можливо створювати нові блоки CMS у Magento 2 програмно. Саме це ви сьогодні й дізнаєтесь.

Спочатку вам потрібно створити Basic модуль Magento 2 та додати до нього папку Setup . Потім створіть файл InstallData.php у app/code/Vendor/Extension/Setup та додайте наступний код:

<?php

namespace Vendor\Extension\Setup;

use Magento\Cms\Model\BlockFactory;
use Magento\Framework\Setup\InstallDataInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;

class InstallData implements InstallDataInterface
{
    private $blockFactory;

    public function __construct(BlockFactory $blockFactory)
    {
        $this->blockFactory = $blockFactory;
    }

    public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
    {
        $cmsBlockData = [
          'title' => 'New Cms Block',
          'identifier' => 'new_cms_block',
          'content' => 'Your CMS Block Content',
            'is_active' => 1,
            'stores' => [0],
            'sort_order' => 0
        ];

        $this->blockFactory->create()->setData($cmsBlockData)->save();
    }
}

Потім ви можете викликати створений блок CMS у потрібному файлі phtml за допомогою наступного методу:

echo $block -> getLayout( )
                  -> createBlock('Magento\Cms\Block\Block')
                  -> setBlockId('custom_cms_block') // CMS block Identifier
          ->toHtml();

Щоб завершити, виконайте команди розгортання:

php bin/magento setup:upgrade
php bin/magento setup:static-content:deploy -f
php bin/magento cache:flush

Примітка: якщо ви не хочете, щоб ваш веб-сайт був недоступний під час розгортання, спробуйте ці команди розгортання з нульовим часом простою для Magento 2 .

Нарешті, ви можете перевірити, чи створено ваш блок Magento 2 CMS у Content > Блоки сітка:

 створення нових блоків CMS у Magento програмним способом

Це всі кроки, необхідні для програмного створення нових блоків CMS у Magento 2. Але це лише перший крок. Вам також потрібно розумно керувати блоками, щоб зробити їх ефективними.

Наприклад, ви можете використовувати Планувальник блоків Magento CMS або Увімкнути динамічні блоки в Magento . Таким чином, ви можете заздалегідь підготувати свої кампанії та підвищити свої зусилля.