升级2.5之后一直没注意,水印竟然只有原图才会有,而缩略图是没有水印的,就是说得点击图片才能看到水印,瞎搞。。之前用X2的时候貌似是正常的,但是之前的一些版本都存在这个问题,不得不说康盛新创太扯淡了。。只能自己解决了
首先尝试后台更改设置看看能不能解决:
步骤:后台–全局–上传设置–论坛附件–论坛附件缩略图设置, 选择不启用, “直接缩放原图”选择“是”,设置原图缩放大小,建议根据论坛的宽度设置,(窄版可设置为750*1024,)。
设置完后上传图片测试,会发现有水印了,但是点开图片会发现并没有大图,就是说图片已经被裁减为750*1024了(不是固定比例,根据最长边裁减),解决办法是原图缩放大小那里留空,就不会裁减,但是水印会非常小。因为论坛需要展示大图,这种情况不合适了,只能再尝试其他方法。
根据网上搜到的老版本的修改代码的方案,修改移植后代码如下(需要改两处):
打开source/function/function_post.php文件, 查找如下代码:
1 2 | $image ->Watermark( $_G [ 'setting' ] [ 'attachdir' ]. '/forum/' . $newattachfile [ $aid ], '' , 'forum' ); |
在其上面插入一行代码:
1 2 3 | if ( file_exists ( $_G [ 'setting' ][ 'attachdir' ]. '/forum/' . $newattachfile [ $aid ]. '.thumb.jpg' )){ $image ->Watermark( $_G [ 'setting' ][ 'attachdir' ]. '/forum/' . $newattachfile [ $aid ]. '.thumb.jpg' , '' , 'forum' ); } |
203至209行(注意: 这里的行数是在原版的基础上, 安装插件等可能会导致不在此行)变为:
1 2 3 4 5 6 7 | if ( $_G [ 'setting' ][ 'watermarkstatus' ] && empty ( $_G [ 'forum' ][ 'disablewatermark' ])) { if ( file_exists ( $_G [ 'setting' ][ 'attachdir' ]. '/forum/' . $newattachfile [ $aid ]. '.thumb.jpg' )){ $image ->Watermark( $_G [ 'setting' ][ 'attachdir' ]. '/forum/' . $newattachfile [ $aid ]. '.thumb.jpg' , '' , 'forum' ); } $image ->Watermark( $_G [ 'setting' ][ 'attachdir' ]. '/forum/' . $newattachfile [ $aid ], '' , 'forum' ); $update [ 'filesize' ] = $image ->imginfo[ 'size' ]; } |
然后查找
1 | C::t( 'forum_attachment_unused' )-> delete ( $aid ); |
在其下面插入如下代码:
1 2 3 | if ( file_exists ( $_G [ 'setting' ][ 'attachdir' ]. '/forum/' . $attach [ 'attachment' ]. '.thumb.jpg' )){ $image ->Watermark( $_G [ 'setting' ][ 'attachdir' ]. '/forum/' . $attach [ 'attachment' ]. '.thumb.jpg' , '' , 'forum' ); } |
修改后覆盖源文件即可,注意覆盖前先备份.
两种方式都可以达到目的,一般论坛选择第一种即可,有特殊需求的可修改代码(风险自担= =、),以上代码在IE,FireFox下测试正常,Chrome下上传图片的那个按钮点了没反应,道行太浅,求高手赐教(刚刚发现貌似是浏览器出问题了=,= 求测试)。