我已将 3.1.2 的Silverstripe更新为 3.1.13 (框架,CMS和扩展程序)。已安装silverstripe-watermarkable
和silverstripe-translatable
个扩展程序且工作正常。
现在,我在Settings > Watermark Image
上的默认语言环境(lv_LV
)上传了我的水印图片。
一切都很好,而我正在浏览默认语言环境中的网站,但是当我更改为不同的可用语言环境(假设说英语或俄语)时,它会抛出错误
[注意] getimagesize()[function.getimagesize]:读错误!
这只是几个错误中的一个。到目前为止,我已经想到的是,当我将$watermark_path = $watermarkFile->getFullPath();
中的silverstripe-watermarkable/code/ImageWatermarkExtension.php
更改为my/path/to/actual/watermark_image.png
时
它运作良好,那么,我该怎么做才能为这个问题创建解决方案呢?
答案 0 :(得分:1)
我有一个解决方案!我一直在编辑扩展文件,这是一种糟糕的方式。我只想改变应该改变的DataObject
:
// mysite/code/MyImage.php
<?php
class MyImage extends WatermarkImage {
...
public function getWatermark() {
// in this example we assume has an image named "Watermark"
$siteConfig = SiteConfig::current_site_config();
if ($siteConfig->Watermark()) {
return $siteConfig->getTranslation('lv_LV')->Watermark();
}
}
...
}
问题出在return $siteConfig->Watermark();
,关键是->getTranslation('lv_LV')
。
我想出了
code
目录文件DataObject
,而不是更新核心