1

我的主页上有几张图片,我希望客户能够不时更改图片。现在它们被硬编码为:

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

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

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

他们的东西像$a->setBlockClass('welcome-photo');吗?

4

2 回答 2

2

是的,可能有一种方法可以通过 Area 类的 setCustomTemplate 方法来实现您想要做的事情。

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

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

于 2012-03-27T18:20:05.947 回答
0

我认为使用setBlockWrapperStart()and没有任何问题setBlockWrapperEnd()——这就是它们的用途。

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

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

如果您想要这些方法中的任何一种的代码示例,请告诉我,我会修改我的答案。但是请先解释一下你原来的 setBlockWrapper 方法的问题,所以我理解你遇到的具体问题。

于 2012-02-22T20:46:45.927 回答