|
|
BUG反馈
| 程序版本: |
X3.4 |
| 浏览器: |
Chrome |
| BUG地址: |
隐藏内容 |
| BUG截图: |
|
| 测试用户名: |
隐藏内容 |
| 测试密码: |
隐藏内容 |
首先你发2个日志,然后将其中一个日志置顶,然后直接删除这个置顶日志(不要取消置顶删除)
刷新后这个帖子依然存在,如果你后台没设回收站,那么他显示的是一个空白帖,如果你启用了回收站,这个帖像似一个正常帖,但无法删除!
如果你把发布的两个帖子全部删除,那么这个删不掉的帖子也消失了,而当你再次发新日志,这个空白帖他又出现了。。。
-------------------------(我是新安装的Discuz_X3.4_SC_UTF8_20220811完整安装版测试的,所以也没必要提供网站和用户名密码)
我的检查了表,是 pre_common_member_field_home 表的 stickblogs 项不能随用户删日志而同步清除置顶信息,也就是置顶参数依然存在,我把这里的数字清空,就一切正常了。
管理员可以手动清除,总不能我整天帮用户清除这些数据吧?快修复吧,要疯了!
1 贡献最佳答案
https://gitee.com/Discuz/DiscuzX/pulls/1797/files
打开 source/include/space/space_blog.php
文件最底部有个
- function blog_get_stick($uid, $stickblogs, $summarylen) {
- $list = array_flip($stickblogs);
- if($stickblogs) {
- $data_blog = C::t('home_blog')->fetch_all($stickblogs);
- $data_blogfield = C::t('home_blogfield')->fetch_all($stickblogs);
- foreach($data_blog as $curblogid=>$value) {
- $value = array_merge($value, (array)$data_blogfield[$curblogid]);
- $value['message'] = getstr($value['message'], $summarylen, 0, 0, 0, -1);
- $value['message'] = preg_replace("/&[a-z]+\;/i", '', $value['message']);
- if($value['pic']) $value['pic'] = pic_cover_get($value['pic'], $value['picflag']);
- $value['dateline'] = dgmdate($value['dateline']);
- $value['stickflag'] = true;
- $list[$value['blogid']] = $value;
- }
- }
- return $list;
- }
复制代码修改为
- function blog_get_stick($uid, $stickblogs, $summarylen) {
- $list = array();
- if($stickblogs) {
- $stickids = array();
- $data_blog = C::t('home_blog')->fetch_all($stickblogs);
- $data_blogfield = C::t('home_blogfield')->fetch_all($stickblogs);
- foreach ($stickblogs as $blogid) {
- if(!empty($data_blog[$blogid]) && !empty($data_blogfield[$blogid])) {
- $value = array_merge($data_blog[$blogid], $data_blogfield[$blogid]);
- $value['message'] = getstr($value['message'], $summarylen, 0, 0, 0, -1);
- $value['message'] = preg_replace("/&[a-z]+\;/i", '', $value['message']);
- if($value['pic']) $value['pic'] = pic_cover_get($value['pic'], $value['picflag']);
- $value['dateline'] = dgmdate($value['dateline']);
- $value['stickflag'] = true;
- $list[$value['blogid']] = $value;
- $stickids[] = $value['blogid'];
- }
- }
- if(count($stickids) != count($stickblogs)) {
- C::t('common_member_field_home')->update($uid, array('stickblogs' => implode(',', $stickids)));
- }
- }
- return $list;
- }
复制代码
|
|