久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

Discuz! 官方交流社區

標題: 發現一個重要的BUG,日志置頂帖刪掉后留下空白日志! [打印本頁]

作者: 說好的一起    時間: 2022-11-8 04:04
標題: 發現一個重要的BUG,日志置頂帖刪掉后留下空白日志!
首先你發2個日志,然后將其中一個日志置頂,然后直接刪除這個置頂日志(不要取消置頂刪除)
刷新后這個帖子依然存在,如果你后臺沒設回收站,那么他顯示的是一個空白帖,如果你啟用了回收站,這個帖像似一個正常帖,但無法刪除!


如果你把發布的兩個帖子全部刪除,那么這個刪不掉的帖子也消失了,而當你再次發新日志,這個空白帖他又出現了。。。

-------------------------(我是新安裝的Discuz_X3.4_SC_UTF8_20220811完整安裝版測試的,所以也沒必要提供網站和用戶名密碼)


我的檢查了表,是 pre_common_member_field_home 表的 stickblogs 項不能隨用戶刪日志而同步清除置頂信息,也就是置頂參數依然存在,我把這里的數字清空,就一切正常了。

管理員可以手動清除,總不能我整天幫用戶清除這些數據吧?快修復吧,要瘋了!

作者: 一定    時間: 2022-11-11 12:25
現在都高3.5去了,3.4的一些問題不會弄了吧
作者: 說好的一起    時間: 2022-11-12 15:25
如果說不完美可以理解的,因為無論官方怎么設計都是眾口難調,但是我說的這個BUG不僅給站長帶來麻煩,也給用戶帶來麻煩,總有幾個空的置頂帖子在上面,而且越積累越多,多影響心情,而且即使修復了,所有用戶的空日志依然置頂存在,包括3.5也存在這個問題的,所以日志以后不能啟用置頂帖,我是把置頂功能代碼刪除了,沒辦法。

如果有高人指點,修復此問題,萬分感謝!
作者: 說好的一起    時間: 2022-11-13 16:58
有沒有大神支援一下,解決這個問題?我不太懂,新手。。。我想解決這個問題應該不難,就刪日志的同時刪除對應的置頂信息。

官方大大能不能幫助解決一下或指點一下呢?

以下是刪除日志按鈕相關代碼
  1.       <!--{if $_GET['view']=='me' && $space['self']}--><!--{if empty($value['status'])}--><a href="home.php?mod=spacecp&ac=blog&blogid=$value[blogid]&op=stick&stickflag=$stickflag&handlekey=stickbloghk_{$value[blogid]}" id="blog_stick_$value[blogid]" onclick="showWindow(this.id, this.href, 'get', 0);"><!--{if $stickflag}-->{lang stick}<!--{else}-->{lang cancel_stick}<!--{/if}--></a><span class="pipe">|</span><!--{/if}--><!--{/if}-->
復制代碼
以下是要刪帖的同時從表里刪除對應的置頂數據
表:pre_common_member_field_home
其中stickblogs項的置頂信息(例如:35,36,14)刪帖的同時如何同步刪除對應的組數字?

如何修改刪帖的代碼實現刪除相應的置頂數據呢?還是得修改哪里的控制代碼呢?
作者: 專家    時間: 2022-11-16 01:27
說好的一起 發表于 2022-11-13 16:58
有沒有大神支援一下,解決這個問題?我不太懂,新手。。。我想解決這個問題應該不難,就刪日志的同時刪除對 ...

bug反饋了即可,一般后續會有人來看的。
不要聽那些人說的,bug一直都是有持續修復的。
可以去Gitee上面看,更新內容一直都沒有斷過。

不過排隊是免不了的了,要做的事情很多很多,輪到你這個可能得點時間。
最好不要指望反饋了馬上就能得到結果,如果非常急的話建議還是找人自己先解決一下。
作者: 專家    時間: 2022-11-16 01:31
另外bug可以同時反饋到Gitee的issue板塊,記得使用電腦端按模板填寫,這樣得到關注和修復的優先級會更高一些。
作者: 說好的一起    時間: 2022-11-16 02:57
專家 發表于 2022-11-16 01:27
bug反饋了即可,一般后續會有人來看的。
不要聽那些人說的,bug一直都是有持續修復的。
可以去Gitee上面 ...

好的,謝謝,回頭去那邊看看。。。
作者: 1314學習網    時間: 2022-11-16 10:48
https://gitee.com/Discuz/DiscuzX/pulls/1797/files
打開 source/include/space/space_blog.php
文件最底部有個
  1. function blog_get_stick($uid, $stickblogs, $summarylen) {
  2.         $list = array_flip($stickblogs);
  3.         if($stickblogs) {
  4.                 $data_blog = C::t('home_blog')->fetch_all($stickblogs);
  5.                 $data_blogfield = C::t('home_blogfield')->fetch_all($stickblogs);
  6.                 foreach($data_blog as $curblogid=>$value) {
  7.                         $value = array_merge($value, (array)$data_blogfield[$curblogid]);
  8.                         $value['message'] = getstr($value['message'], $summarylen, 0, 0, 0, -1);
  9.                         $value['message'] = preg_replace("/&[a-z]+\;/i", '', $value['message']);
  10.                         if($value['pic']) $value['pic'] = pic_cover_get($value['pic'], $value['picflag']);
  11.                         $value['dateline'] = dgmdate($value['dateline']);
  12.                         $value['stickflag'] = true;
  13.                         $list[$value['blogid']] = $value;
  14.                 }
  15.         }
  16.         return $list;
  17. }
復制代碼
修改為
  1. function blog_get_stick($uid, $stickblogs, $summarylen) {
  2.         $list = array();
  3.         if($stickblogs) {
  4.                 $stickids = array();
  5.                 $data_blog = C::t('home_blog')->fetch_all($stickblogs);
  6.                 $data_blogfield = C::t('home_blogfield')->fetch_all($stickblogs);
  7.                 foreach ($stickblogs as $blogid) {
  8.                         if(!empty($data_blog[$blogid]) && !empty($data_blogfield[$blogid])) {
  9.                                 $value = array_merge($data_blog[$blogid], $data_blogfield[$blogid]);
  10.                                 $value['message'] = getstr($value['message'], $summarylen, 0, 0, 0, -1);
  11.                                 $value['message'] = preg_replace("/&[a-z]+\;/i", '', $value['message']);
  12.                                 if($value['pic']) $value['pic'] = pic_cover_get($value['pic'], $value['picflag']);
  13.                                 $value['dateline'] = dgmdate($value['dateline']);
  14.                                 $value['stickflag'] = true;
  15.                                 $list[$value['blogid']] = $value;
  16.                                 $stickids[] = $value['blogid'];
  17.                         }
  18.                 }
  19.                 if(count($stickids) != count($stickblogs)) {
  20.                         C::t('common_member_field_home')->update($uid, array('stickblogs' => implode(',', $stickids)));
  21.                 }
  22.         }
  23.         return $list;
  24. }
復制代碼




作者: 劉先生    時間: 2022-11-16 13:56
終于解決了,這個BUG我兩年前就在GIT提交了,沒人理
作者: 專家    時間: 2022-11-16 15:57
說好的一起 發表于 2022-11-16 02:57
好的,謝謝,回頭去那邊看看。。。

你樓下那位已經幫忙給修好了,可以對照著自己改一下或者等待下一個正式版發布
作者: 說好的一起    時間: 2022-11-16 17:59
專家 發表于 2022-11-16 15:57
你樓下那位已經幫忙給修好了,可以對照著自己改一下或者等待下一個正式版發布 ...

是呀是呀,看到了,我就去修改,試試。。。

太好了,開心的一天!
作者: 說好的一起    時間: 2022-11-16 18:34
發了2個BUG,都被1314這位兄弟給解決了,另一個在下面地址里,3.5也適用哦,大家快去修復吧。。。
http://www.9999xn.com/forum.ph ... sortid%26sortid%3D1

另外感謝1314學習網這位兄弟,真是一句廢話沒有,只解決問題干實事,牛逼!
1314學習網有很多插件:https://addon.dismall.com/developer-4865.html
無以回報僅能幫忙宣傳一下,以后我需要插件也會去購買,還發現了好多免費的。。。




歡迎光臨 Discuz! 官方交流社區 (http://www.9999xn.com/) Powered by Discuz! W1.0