मैं एक स्थापित / उन्नयन स्क्रिप्ट के माध्यम से एक सीएमएस ब्लॉक जोड़ने की जरूरत है। मैंने पहले ही पता लगा लिया है कि "सामान्य" सीएमएस पृष्ठों को कैसे जोड़ा जाए जैसा कि नीचे की स्क्रिप्ट में देखा गया है। लेकिन चूंकि मुझे Google या यहाँ पर Magento 2 के कोड में CMS ब्लॉक जोड़ने का कोई तरीका नहीं मिल रहा है, इसलिए मैं काफी जाम हूँ।
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'
];
क्या किसी को पता है कि इस परीक्षण पृष्ठ को टेस्ट ब्लॉक में बदलने के लिए मुझे क्या बदलने की आवश्यकता है?
नोट: मैंने अपनी स्क्रिप्ट को Magento 2 CMS मॉड्यूल में स्थापित डेटा स्क्रिप्ट पर आधारित किया है vendor/magento/module-cms/Setup/InstallData.php
।