远程附件设置和搬移方法不再赘述。网上有很多。
远程附件开启后,diy模块里的图片依然显示本地路径所以直接打叉,必须手动更新才能显示。
官方就丢了一句会反馈了事,网上也找不到解决方案,只好自行研究。
首先要明白,common_block_item表就是记录diy模块数据的。
picflag=2意味着图片远程,=1意味着本地。
这个picflag,系统抓取时会从att表直接拿,但att表里,1是远程,0才是本地。
于是蛋疼的事情就出现了。
修改/source/function/function_block.php文件,找到if(empty($ftp) || empty($ftp->connectid)) {,以下部分是判断缩略图是否已经生成的。
1 2 3 4 |
if($ftp->ftp_size($thumbpath) > 0) { $curitem['makethumb'] = 1; $curitem['picflag'] = 2; } |
遗憾的是官方到此为止,因此若缩略图未来得及生成的情况下,picflag永远不会变成2。
解决方法很简单:
1 2 3 4 5 6 7 |
if($ftp->ftp_size($thumbpath) > 0) {//缩略图存在 $curitem['makethumb'] = 1; $curitem['picflag'] = 2; }else{//缩略图不存在 $curitem['makethumb'] = 0; $curitem['picflag'] = 2; } |
加一个else判断完事。同时,makethumb=0时,才会促使系统生成缩略图,discuz把这些数字搞得真心好乱。都不想说。
这样改好之后,基本就不会再出现问题了。