我正在使用Concrete5 CMS作为我的客户端项目但是存在(理想情况下)我希望能够以这样的方式嵌套HTML结构的问题,即内容编辑器将能够编辑网站而不用必须知道或写任何HTML。一个示例结构是......
<header class="page-header"><!-- Defined as a GlobalArea -->
<div class="site-meta"><!-- Defined as a Block Group (Stack?) -->
<p class="contact-info"><!-- Defined as a Block -->
<!-- User editable content -->
</p>
....other content...
</div>
<div class="branding"><!-- Defined as a Block group -->
<div class="logo"><!-- Defined as a Block -->
<!-- User editable content -->
</div>
<hgroup><!-- Custom wrapper of sub-blocks -->
<h1 class="brandname"><!-- Defined as a Block -->
<!-- User editable content -->
</h1>
<h2 class="tagline"><!-- Defined as a Block -->
<!-- User editable content -->
</h2>
</hgroup>
</div>
<p class="description"><!-- Defined as a Block -->
<!-- User editable content -->
</p>
</header>
如您所见,我需要单独的用户可编辑内容“块”分组到定义内容“区域”(或分组区域)内的较大“元”块。虽然我的理解是Concrete5不能以这种方式运行 - 即区域不能包含其他区域和块不能包含其他块。
在这种情况下,我想知道如何仅使用原始php代码从数据库手动加载特定内容块。这样我希望能够预定义给定区域的内容块,并希望强制在特定的HTML结构中插入一个块。
感谢人们为我提供的任何帮助。
答案 0 :(得分:2)
查看免费的Designer Content插件......您可以创建嵌入了标记的自定义块。这将使您获得要创建的标记的大部分内容。如有必要,您可以使用它创建的块代码并更精确地自定义自定义块。
http://www.concrete5.org/marketplace/addons/designer-content/
答案 1 :(得分:2)
是否真的需要具有嵌套区域的上层区域组?这通常由模板处理。例如:
<header class="page-header">
<div class="site-meta">
<p class="contact-info">
<?php
$a = new Area('Contact Info');
$a->display($c);
?>
</p>
<!-- ....other content... -->
</div>
<div class="branding">
<div class="logo">
<?php
$a = new Area('Logo');
$a->display($c);
?>
</div>
<hgroup>
<h1 class="brandname">
<?php
$a = new Area('Brand Name');
$a->display($c);
?>
</h1>
<h2 class="tagline">
<?php
$a = new Area('Tag Line');
$a->display($c);
?>
</h2>
</hgroup>
</div>
<p class="description">
<?php
$a = new Area('Description');
$a->display($c);
?>
</p>
</header>