Concrete5块属性

时间:2012-02-22 16:09:47

标签: concrete5

我在主页上有一些图像,我希望客户端能够不时更改图像。现在它们被硬编码为:

<img src="<?=$this->getThemePath()?>/img/welcomePhoto1.jpg" alt="" class="welcome-photo" />

如果我将它设置为可以更改照片的新块区域,我是否可以确保每次更改图像时块都将保留该类。我不喜欢通过用户界面添加课程(只是觉得这不是一个好习惯)。我知道你可以像这样包装块:

<?php 
$a = new Area('sidebar');
$a->setBlockWrapperStart('<div class="box">');
$a->setBlockWrapperEnd('</div>');
$a->display($c); 
?>

他们的问题是$a->setBlockClass('welcome-photo');吗?

2 个答案:

答案 0 :(得分:2)

是的,可能有办法通过Area类的setCustomTemplate方法实现你想要做的事情。

$m = new Area('Main');
$m->setCustomTemplate('image','templates/welcome-photo.php');
$m->display($c);

然后在您的templates / welcome-photo.php文件中,您可以根据需要设置这些图像的包装。但是,请注意,这只是为该区域中“图像”类型的块(在此示例中)设置了默认模板,但可以通过编辑界面覆盖它。

答案 1 :(得分:0)

我认为使用setBlockWrapperStart()setBlockWrapperEnd()没有任何问题 - 这就是他们的目的。

但是,如果您出于某种原因需要备用解决方案,则可以改为对文件集进行硬编码,并让用户通过文件管理器交换该组的图像。

或者您可以对剪贴簿块(如果使用5.4或更低版本)或堆栈(如果使用5.5或更高版本)进行硬编码,并让用户通过仪表板剪贴簿(5.4)或仪表板堆栈(5.5)屏幕编辑图像。 / p>

如果您想要其中任何一种方法的代码示例,请告诉我,我将修改我的答案。但请先解释原始setBlockWrapper方法的问题,以便了解您遇到的具体问题。