2016-12-04 43 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) 
    } 
    } 
} 
相关问题