Tôi cần thêm một khối CMS thông qua tập lệnh cài đặt / nâng cấp. Tôi đã tìm ra cách thêm các trang CMS "bình thường" như được thấy trong tập lệnh bên dưới. Nhưng vì tôi không thể tìm thấy bất kỳ cách nào để thêm các khối CMS trong mã của Magento 2, trên Google hoặc ở đây, tôi khá bị kẹt.
namespace [Vendor]\[Module]\Setup;
use Magento\Cms\Model\Page;
use Magento\Cms\Model\PageFactory;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Framework\Setup\UpgradeDataInterface;
class UpgradeData implements UpgradeDataInterface
{
/**
* Page factory.
*
* @var PageFactory
*/
private $pageFactory;
/**
* Init.
*
* @param PageFactory $pageFactory
*/
public function __construct(PageFactory $pageFactory)
{
$this->pageFactory = $pageFactory;
}
/**
* Upgrade.
*
* @param ModuleDataSetupInterface $setup
* @param ModuleContextInterface $context
*/
public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
{
$setup->startSetup();
if (version_compare($context->getVersion(), '0.0.1') < 0) {
$testPage = [
'title' => 'Test page title',
'identifier' => 'test-page',
'stores' => [0],
'is_active' => 1,
'content_heading' => 'Test page heading',
'content' => 'Test page content',
'page_layout' => '1column'
];
$this->pageFactory->create()->setData($testPage)->save();
}
$setup->endSetup();
}
}
Tôi hiểu rằng tôi không cần tất cả các giá trị được xác định trong $testPage
mảng, vì vậy tôi đã loại bỏ nó xuống như sau:
$testPage = [
'title' => 'Test block title',
'identifier' => 'test-block',
'stores' => [0],
'is_active' => 1
'content' => 'Test block content'
];
Có ai biết những gì tôi cần thay đổi để biến trang thử nghiệm này thành một khối thử nghiệm không?
Lưu ý: Tôi dựa vào tập lệnh của mình dựa trên tập lệnh dữ liệu cài đặt trong mô-đun Magento 2 CMS được đặt trong vendor/magento/module-cms/Setup/InstallData.php
.