Block 混凝土5:是否可以在特定布局中重复多个块?

Block 混凝土5:是否可以在特定布局中重复多个块?,block,concrete5,Block,Concrete5,我正在使用Concrete5为页面创建自定义模板。我有三个块,包装在一个div类中,我想在一页中重复。例如: <div class="block-wrapper"> <div class="title"><?php $a = new Area('Title'); $a->display($c);?></div> <div class="description"><?php $a = new Area('Descr

我正在使用Concrete5为页面创建自定义模板。我有三个块,包装在一个div类中,我想在一页中重复。例如:

<div class="block-wrapper">
   <div class="title"><?php $a = new Area('Title'); $a->display($c);?></div>
   <div class="description"><?php $a = new Area('Description'); $a->display($c);?></div>
   <div class="autonav"><?php $a = new Area('Autonav'); $a->display($c);?></div>
</div>
<?php
$a = new Area('Main');
$a->setBlockWrapperStart('<div class="block-wrapper">');
$a->setBlockWrapperEnd('</div>');
$a->display($c);
?>
我想要的是能够用3个可编辑的块重复块包装器。例如,生成的页面如下所示:

    <div class="block-wrapper">
      <div class="title">Steve</div>
      <div class="description">Engineer</div>
      <div class="autonav">Link A | Link B | Link C</div>
</div>

    <div class="block-wrapper">
       <div class="title">Betty</div>
       <div class="description">Designer</div>
       <div class="autonav">Link D | Link E | Link F</div>
</div>

史蒂夫
工程师
链路A |链路B |链路C
贝蒂
设计师
链路D |链路E |链路F

…等等。我希望我说得够清楚了。这可能吗?我有什么选择?理想情况下,我会有尽可能多的自由来设计块和块包装器。

为什么不使用一个区域和一个重复块类型?更少的区域可实现更好的可靠性能

我不确定Jordanlev的designer内容块中是否有自动导航选项,但我相信它会为您完成所有这些。我用它作为我自己的许多积木的基础。它使您能够控制所有标记

该说明指出:

设计器内容是一个非常宝贵的工具,允许设计器轻松创建自定义块类型。这样做的目的是让用户可以直接编辑内容,并确保维护样式,而不必依赖复杂且容易出错的TinyMCE样式。例如,假设您网站上的一些页面将包含有关公司员工的信息,每个员工都有一个姓名、一张个人简历和一个简要描述——您可以创建一个自定义块,其中包含一个用于姓名的文本框字段、一个用于个人简历的图像选择器和一个用于描述的所见即所得编辑器。您还可以在html片段(例如,带有类的div)中围绕每个元素,以确保内容的样式适当,而无需用户处理挑剔的TinyMCE工具栏


如果我理解正确,一个可能的选择是以编程方式创建这三个区域。例如,您可以创建一个新的页面属性,该属性具有句柄
number\u of\u bio\u blocks
,然后类似于


或者可能只是设置任意数量的区域,如10,因为未归档的区域将不会显示。据我所知,没有通过界面添加区域的方法。此外,创建这样的区域将使用其他未使用的区域填充数据库。我不确定你是否担心这件事


建议使用设计器内容,现在有了Designer Content Pro,它允许您在块中添加多个重复字段。这不允许使用任意块,但如果您需要富文本和图像之类的内容,这可能是一个不错的选择。

根据您的具体情况,有几种不同的解决方案。内置的Concrete5方法是在Area对象上使用
setBlockWrapper
方法。例如:

<div class="block-wrapper">
   <div class="title"><?php $a = new Area('Title'); $a->display($c);?></div>
   <div class="description"><?php $a = new Area('Description'); $a->display($c);?></div>
   <div class="autonav"><?php $a = new Area('Autonav'); $a->display($c);?></div>
</div>
<?php
$a = new Area('Main');
$a->setBlockWrapperStart('<div class="block-wrapper">');
$a->setBlockWrapperEnd('</div>');
$a->display($c);
?>