|
|
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;
- }
復制代碼
|
|