discuz 推送博文图片提示数据不匹配

来源:互联网 发布:网络出版服务许可证 编辑:程序博客网 时间:2024/06/01 21:26


diy调用日志模块,若选择过滤封面,然后再推送博文的时候总是会出现数据不匹配的问题,这个问题困扰了我很久,今天终于被我解决了。
原因是在发博文的时候,选择图片上传时包括“上传图片”,“相册图片”和“网络图片”,若选择“上传图片”,调用swfupload这个插件,然后会生成一个隐藏域,名称为picids,里边存的值为home_pic中picid 的值,但是选择“相册图片”和“网络退片”则不会生成 picids,正是这个picids 是产生了数据不配的根本原因。若picids值不为空,home_blog 的数据表中picflag值会变为1, 最主要的还是home_blogfiled表中pic 的值会是图片的地址,也是是说这个值会是推送博文时图片的封面。若picids 的是为空,home_blogfiled中  pic的值为空,及推送时diy的模块会认为此博文是没有封面的博文,导致出现数据不匹配的警告。
下边介绍解决办法,我想的是修改 source/function/function_blog .php文件。
在 C::t('home_blogfield')->insert($fieldarr);之后加入此段代码
                if( empty($fieldarr['pic']) ) {
                        if( preg_match("<img src=\"data/attachment/album/(.+?)\".*?>",$message,$match) ){
                                C::t('home_blogfield')->update($blogid,array("pic"=>$match[1].".thumb.jpg"));
                                C::t('home_blog')->update($blogid, array("picflag"=>1));
                        }
                }


判断fieldarr这个数据存的值就是要插入数据库的,我先判断pic的值,pic 不为空就是选择了“ 上传图片”,这样就不必做任何修改数据库的行为,但是若pic的值为空,及选择了“相册图片”,我们需要修改home_blogfiled 中pic的值,将其改为图片的地址,然后修改home_blog中picflag改为1.
好了,问题介绍完了,希望大家能够看懂,这个问题困扰了我很久,希望同样被此问题困扰的人们能够解决!!