我有一个多种语言的Opencart商店。横幅只能包含一张图片(无论选择哪种语言),我为每种语言设计了横幅。
开车 v 2.3.0.2
catalog/./view/theme/default/template/extension/module/banner.tpl
<div id="banner<?php echo $module; ?>" class="owl-carousel">
<?php foreach ($banners as $banner) { ?>
<div class="item">
<?php if ($banner['link']) { ?>
<a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" class="img-responsive" /></a>
<?php } else { ?>
<img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" class="img-responsive" />
<?php } ?>
</div>
<?php } ?>
</div>
您必须手动(使用 FTP)管理横幅图像文件,但这样的方法可能可行:
- 对于要显示的每个横幅,请像往常一样在后台上传。
- 在保存镜像的目录中,创建与您支持的语言对应的子目录(例如"en-gb")。
- 此代码假定横幅位于
catalog/demo/banners
下。 所以它只是在其下添加了路径"language_name"。 - 修改
catalog/./view/theme/default/template/extension/module/banner.tpl
以首先查看显示横幅的块中特定于语言的子目录。 在 2.3.0.2 中,这看起来像:
<?php
foreach ($banners as $banner) {
$lang = $this->registry->get('language');
if (file_exists($lang . "/" . $banner['image'])) {
$banner['image'] = str_replace("catalog/demo/banners", "catalog/demo/banners/$lang", $banner['image']);
}
}
?>
<div id="banner<?php echo $module; ?>" class="owl-carousel">
<?php foreach ($banners as $banner) { ?>
<div class="item">
<?php if ($banner['link']) { ?>
<a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" class="img-responsive" /></a>
<?php } else { ?>
<img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" class="img-responsive" />
<?php } ?>
</div>
<?php } ?>
</div>