2016-12-04 83 views
0

我以編程方式創建頁面並將內容插入到內容塊中,但創建之後,我無法通過編輯器對其進行編輯(因爲它不是core_page_type_composer_control_output,它是常規內容塊) 。有沒有一種方法可以以編程方式將頁面添加到頁面,並讓它在Composer中表現良好?我使用以編程方式添加生成器控制輸出塊

相關代碼:

$page = Page::getByPath('/articles/xxx'); 
$block = BlockType::getByHandle('content'); 
$data = array(
    'content' => 'the content', 
); 
$page->addBlock($block, 'Main', $data); 

回答

0

要做到這一點,我會設置爲你將與作曲家創建頁面的網頁類型。
(將內容塊添加到作曲者和頁面類型的標準輸出)

創建頁面後,您會注意到作曲者鏈接的內容塊存在於頁面上,但完全爲空。然後,我會更新該塊,而不是嘗試在「主」區域中創建新塊。

代碼示例(未測試):

$page = Page::getByPath('/articles/xxx'); 
$blocks = $page->getBlocks('Main'); 
if(!empty($blocks)){ 
    foreach($blocks as $block){ 
    //check if the blocktype is content 
    if($block->getBlockTypeHandle() == 'content'){ 
     //we are pretty sure this is the content block in the main area 
     //because it's the only content block present... updating the block content 
     $data = array(
       'content' => 'the content', 
      ); 
     $block->update($data) 
    } 
    } 
}