2013-05-09 34 views
1

各个块我有一个Concrete5模板,该模板的定义和输出内容区域:遍历内Concrete5

$a = new Area('Content'); 
$a->display($c); 

此输出的内容区域内的所有块,但是我想通过从每块循环该区域并单独输出。

有没有办法做到这一点?

谢谢。

回答

1

我相信我已经想通了这一点我自己,这是我使用的代码:改编自code on the C5 forums

$blocksInArea = Page::getCurrentPage()->getBlocks('Content'); 

foreach ($blocksInArea as $block) { 

    $this_block = Block::getByID($block->bID); 
    $this_block->display(); 

} 

代码。

1

有一种更有效的方式来做到这一点(要比你在论坛的帖子找到了更有效):

$blocks = $c->getBlocks('Content'); 
foreach ($blocks as $b) { 
    $b->display(); 
} 

虽然我不知道为什么你要做到这一点 - 呼唤该区域上的display($c)本身也是一样的。

需要注意的一件事:如果该区域中有“区域布局”,则无法正常工作。为此,您需要变得更加复杂...您可以通过查看我的免费“Page List Teasers”插件中的代码来了解我是如何做到这一点的:http://www.concrete5.org/marketplace/addons/page-list-teasers