ইনস্টল / আপগ্রেড স্ক্রিপ্টের মাধ্যমে আমার একটি সিএমএস ব্লক যুক্ত করা দরকার। নীচের স্ক্রিপ্টে যেমন দেখানো হয়েছে "সাধারণ" সিএমএস পৃষ্ঠা কীভাবে যুক্ত করবেন তা ইতিমধ্যে আমি নির্ধারণ করেছি। তবে যেহেতু আমি গুগলে বা এখানে ম্যাজেন্টো 2 এর কোডে সিএমএস ব্লক যুক্ত করার কোনও উপায় খুঁজে পাচ্ছি না, তাই আমি বেশ জ্যাম পেয়েছি।
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();
}
}
আমি বুঝেছি $testPage
অ্যারেতে সংজ্ঞায়িত সমস্ত মানের দরকার নেই , তাই আমি এটিকে নীচে থেকে নামিয়ে দিয়েছি:
$testPage = [
'title' => 'Test block title',
'identifier' => 'test-block',
'stores' => [0],
'is_active' => 1
'content' => 'Test block content'
];
কেউ কি জানেন যে এই পরীক্ষার পৃষ্ঠাটিকে একটি পরীক্ষা ব্লক করতে আমার কী পরিবর্তন করতে হবে?
দ্রষ্টব্য: আমি আমার স্ক্রিপ্টটিতে অবস্থিত ম্যাজেন্টো 2 সিএমএস মডিউলটিতে ডেটা ইনস্টল ডেটা স্ক্রিপ্টের ভিত্তিতে তৈরি করেছি vendor/magento/module-cms/Setup/InstallData.php
।