在Concrete5中包含其他块的自定义块(布局?)

时间:2011-07-22 16:37:16

标签: php templates layout block concrete5

我为那些不太精通技术的客户制作了许多网站...并且在我为他们制作网站之后需要一种简单的方法来编辑他们的网站。为此,我在Concrete5编写了很多我的网站。

最近我收到了一个将http://www.windowfashionsonwheels.com翻译为Concrete5的项目。快速浏览一下源代码就会发现它只不过是桌子里的桌子......这很可怕。我一直在努力使用最小的HTML和CSS重建精确的外观和结构,但我碰到了一个小凹凸。

在主页面上,如果略微向下滚动,主体左侧有一个浅灰色框,包含四个不同的内容块。这部分有不同的背景颜色,圆角,甚至渐变边框,只是为了让我的工作更加困难。

我可以通过在Concrete5中创建单个内容块并对其应用自定义设计(背景颜色,CSS3圆角和CSS3图像边框)来模拟此框的外观。然而,由于这在很大程度上依赖于CSS3,它在旧版浏览器或Internet Explorer中无法正常显示,而且它只允许我使用单个内容块(如果我想在文本中使用文本和幻灯片或其他块,则不理想同样的浅灰色方块)

我可以轻松地将这个浅灰色方块添加到主题本身,但它不会出现在所有页面上。创建两个不同的页面类型似乎太多了,一个用于带有此灰色框的页面,另一个用于没有页面的页面。

我还可以为内容块创建一个自定义模板,生成这些<div>个对象,允许我将它们放在我想要的任何页面上的任意位置 - 但是这样只允许浅灰色框包含单个内容块。例如,它不允许我在同一个框中拥有内容块和幻灯片模块。

我还可以添加一个HTML块,但我想假设我的客户端不了解HTML,我希望她能够编辑自己的页面。

理想的解决方案是创建一个生成这个新背景和边框的块(使用多个<div>对象来创建圆角并采用旧式方式)然后允许在此块中放置块以便我可以有我想要的任何内容。但据我所知,Concrete5不允许块内的块。但它确实允许布局内的块 - 但据我所知,布局适用于多列页面,而不是专门的边框。

如果有人有使用Concrete5的经验并且解决了我的问题,请提供帮助。

1 个答案:

答案 0 :(得分:3)

对于您的具体情况,这听起来像创建新的页面类型是理想的解决方案。你说“看起来工作太多了”,但创建页面类型是所有选项中最简单的(方式比在大多数情况下创建自己的块更容易,尽管请参阅下面的详细信息)。您所要做的就是复制当前模板文件,重命名它,为该灰色框添加新的HTML,并将此“区域”代码放入新的灰色框HTML(当前内容所在的位置)中:

<?php
$a = new Area('Grey Sidebar');
$a->display($c);
?>

然后转到Dashboard - &gt;页面和主题,单击当前主题旁边的“检查”按钮,您将看到该新页面类型旁边的复选框 - 单击“安装”按钮(或任何它的名称,我不记得了,但是当你看到它时很明显。)

现在,查看您链接到它的网站似乎该灰色框内的内容相当“设计”并坚持一致的格式(标题,缩略图,段落)。如果你想确保维护这种格式,同时让非技术用户很容易编辑内容,我已经为这种情况创建了一个块生成器插件: http://concrete5.org/marketplace/addons/designer-content

如果我正在构建此站点,我将结合这两种技术(周围灰盒HTML的页面类型,以及使用Designer Content为每个内部块创建的自定义块)。 但也许在你的情况下,你实际上不希望灰盒子的内容总是看起来一样(就像他们现在在你链接的网站上做的那样) - 在这种情况下,只需使用灰色框进行页面类型并做你最好“隔离”内部内容和那种风格,所以用户添加的任何块都不会意外地干扰灰盒环境(基本上确保围绕“区域”代码有一个大的&lt; div&gt;并且你设置了明确的宽度或周围HTML / CSS中需要的任何内容。