男的舔女的下面视频在线播放-少妇愉情理仑片高潮日本-久久久久久国产一区二区三区-麻豆精品一区二区综合-国产精品超碰在线观看-网红极品女神精品视频在线-国产亚洲综合777-高清性视频一区二区播放-中文字幕第一页亚洲天堂

12下一頁(yè)
返回列表 發(fā)帖
查看: 6149|回復(fù): 13

如何在帖子列表頁(yè)展示作者頭像和版塊名稱?

76

主題

488

回帖

3

粉絲

應(yīng)用開發(fā)者

貢獻(xiàn)
17 點(diǎn)
金幣
36 個(gè)
QQ
樓主
發(fā)表于 2023-3-27 22:44:59 |四川| 只看樓主 |倒序?yàn)g覽 |閱讀模式


是的,又是請(qǐng)教chatgpt得到的經(jīng)驗(yàn),分享給大家

看了官方文檔,找了很多地方都沒有解決,今天試著問問chatgpt,測(cè)試了一下可用。



問:如何在discuz帖子列表頁(yè)獲取作者頭像和版塊名稱
答:在 Discuz 帖子列表頁(yè)中,可以通過以下方式獲取作者頭像和版塊名稱:

  • 獲取作者頭像
    可以使用 Discuz 提供的 avatar 函數(shù)獲取作者頭像。例如:
    1. {avatar($thread['authorid'], 'small')}
    復(fù)制代碼
    這行代碼會(huì)顯示作者 ID 為 $thread['authorid'] 的用戶頭像,大小為 small。
  • 獲取版塊名稱
    可以使用 Discuz 提供的 forum 函數(shù)獲取版塊名稱。例如:
    1. {forum($thread['fid'])['name']}
    復(fù)制代碼

    這行代碼會(huì)顯示版塊 ID 為 $thread['fid'] 的版塊名稱。
    請(qǐng)注意,以上代碼僅適用于 DiscuzX 3.x 版本,不同版本和不同模板可能會(huì)有所差異。同時(shí),為了避免頻繁訪問數(shù)據(jù)庫(kù),建議在獲取頭像和版塊名稱時(shí)進(jìn)行緩存處理。例如,可以使用 Discuz 提供的 DB 類進(jìn)行緩存操作,如下所示:
    // 獲取用戶頭像并進(jìn)行緩存


  1. $avatar = DB::result_first("SELECT avatar FROM ".DB::table('common_member')." WHERE uid=".$thread['authorid']);
  2. $avatarurl = avatar($thread['authorid'], 'small');
  3. C::t('common_member')->update($thread['authorid'], array('avatar' => $avatarurl));
復(fù)制代碼

      // 獲取版塊名稱并進(jìn)行緩存


  1. $forum = DB::fetch_first("SELECT name FROM ".DB::table('forum_forum')." WHERE fid=".$thread['fid']);
  2. C::t('forum_forum')->update_cache($thread['fid'], array('name' => $forum['name']));
復(fù)制代碼


     以上代碼會(huì)先從數(shù)據(jù)庫(kù)中獲取作者頭像和版塊名稱,然后將其進(jìn)行緩存,避免頻繁訪問數(shù)據(jù)庫(kù)。


試用了第一段代碼,頭像出來了,但是2的版塊名稱出不來。所以得用下邊的數(shù)據(jù)庫(kù)獲取的代碼,但如果直接放這段代碼到模板文件里會(huì)報(bào)錯(cuò)。
于是問了chatgpt
答:是的,您不能直接將這些 PHP 代碼放入 Discuz 的 HTML 模板文件中,因?yàn)?HTML 文件不能解析 PHP 代碼。如果您需要在模板中執(zhí)行 PHP 代碼,則必須使用 Discuz 提供的模板標(biāo)簽,或?qū)?PHP 代碼放在 Discuz 的模板引擎文件中。

在您的情況下,您需要將這些 PHP 代碼放入模板引擎文件中。模板引擎文件通常是一個(gè) PHP 文件,它包含在 Discuz 的模板引擎中,用于處理模板中的變量和標(biāo)簽。您可以使用以下步驟將 PHP 代碼放入模板引擎文件中:

找到模板引擎文件。
模板引擎文件通常位于 source/module/forum/forumdisplay.php 文件中。在該文件中,您可以找到類似以下的代碼段:


  1. $sortid = isset($_GET['sortid']) ? intval($_GET['sortid']) : 0;
  2. $sortoptionarray = $sortid ? C::t('forum_threadclass')->get_by_typeid($sortid) : array();
  3. $sortid = $sortoptionarray ? $sortid : 0;

  4. $seodata = array('first' => $thread['subject'], 'name' => $forum['name'], 'fupname' => $forum['name']);
  5. foreach ($sortoptionarray as $sortoption) {
  6.     $seodata['first'] .= ' ' . $sortoption['optionname'];
  7. }

  8. ...
復(fù)制代碼


在這個(gè)文件中,您可以看到 $forum 變量已經(jīng)被定義并初始化,所以您可以將您的代碼添加到此處。

將代碼添加到模板引擎文件中。
將以下代碼添加到模板引擎文件的合適位置,以獲取版塊名稱并更新緩存:


  1. $forum = DB::fetch_first("SELECT name FROM ".DB::table('forum_forum')." WHERE fid=".$thread['fid']);
  2. C::t('forum_forum')->update_cache($thread['fid'], array('name' => $forum['name']));
復(fù)制代碼


保存模板引擎文件并上傳到服務(wù)器。
保存模板引擎文件后,將其上傳到您的服務(wù)器中,以確保 Discuz 可以正確地讀取文件。

請(qǐng)注意,修改 Discuz 模板和代碼可能會(huì)導(dǎo)致系統(tǒng)出現(xiàn)問題,因此在修改之前,最好備份所有文件和數(shù)據(jù)庫(kù)。


這個(gè)方法我沒有測(cè)試,因?yàn)橐瞿0蹇隙ú荒芤竺總€(gè)用戶都改代碼
于是又問了chatgpt

問:不改模板引擎文件 直接改模板文件不行嗎
答:一般情況下,不建議在模板文件中添加這樣的 PHP 代碼,因?yàn)檫@會(huì)使模板文件變得混亂不堪,難以維護(hù)和修改。另外,模板文件中只能使用模板標(biāo)簽和模板變量,不能直接使用 PHP 代碼。

如果您非常確定要在模板文件中添加 PHP 代碼,您可以使用 Discuz 的模板標(biāo)簽 {eval} 來執(zhí)行 PHP 代碼。例如,您可以將以下代碼添加到您的模板文件中,以獲取版塊名稱并更新緩存:
游客,如果您要查看本帖隱藏內(nèi)容請(qǐng)回復(fù)

但是,我仍然建議您將這些 PHP 代碼放入模板引擎文件中,以避免對(duì)模板文件進(jìn)行過多的更改。

最后這段代碼放到forumdisplay_list.htm里你想放的位置,再改下模板樣式就可以了

回復(fù)

使用道具 舉報(bào)

76

主題

488

回帖

3

粉絲

應(yīng)用開發(fā)者

貢獻(xiàn)
17 點(diǎn)
金幣
36 個(gè)
QQ
沙發(fā)
 樓主| 發(fā)表于 2023-3-27 23:01:20 |四川| 只看Ta
新手且PHP沒有學(xué)過 所以大佬們有更好的方法,還請(qǐng)賜教哦
回復(fù)

使用道具 舉報(bào)

12

主題

1634

回帖

4

粉絲

Giter

貢獻(xiàn)
151 點(diǎn)
金幣
362 個(gè)
板凳
發(fā)表于 2023-3-27 23:02:26 |遼寧| 只看Ta
啊這,這個(gè)chatgpt在亂講,當(dāng)然它可能不那么了解Discuz倒也可以理解。
正常不應(yīng)該是這么干的
回復(fù) 1

使用道具 舉報(bào)

76

主題

488

回帖

3

粉絲

應(yīng)用開發(fā)者

貢獻(xiàn)
17 點(diǎn)
金幣
36 個(gè)
QQ
地板
 樓主| 發(fā)表于 2023-3-28 00:08:49 |四川來自手機(jī) | 只看Ta
專家 發(fā)表于 2023-3-27 23:02
啊這,這個(gè)chatgpt在亂講,當(dāng)然它可能不那么了解Discuz倒也可以理解。
正常不應(yīng)該是這么干的 ...

應(yīng)該怎么做呢?有相關(guān)的教程么?我找了一圈沒找到
回復(fù)

使用道具 舉報(bào)

1

主題

26

回帖

3

粉絲

初學(xué)乍練

貢獻(xiàn)
0 點(diǎn)
金幣
9 個(gè)
5#
發(fā)表于 2023-4-14 02:15:06 |廣東| 只看Ta
有效果圖看看嗎?
回復(fù)

使用道具 舉報(bào)

0

主題

25

回帖

0

粉絲

初學(xué)乍練

貢獻(xiàn)
0 點(diǎn)
金幣
6 個(gè)
6#
發(fā)表于 2023-4-14 22:40:24 |香港| 只看Ta
學(xué)習(xí)一下~~~~~~~~~~~~~~~
回復(fù)

使用道具 舉報(bào)

s77

11

主題

110

回帖

3

粉絲

漸入佳境

貢獻(xiàn)
0 點(diǎn)
金幣
19 個(gè)
7#
發(fā)表于 2023-5-13 01:52:47 |廣西| 只看Ta
效果如何呢
回復(fù)

使用道具 舉報(bào)

0

主題

3

回帖

0

粉絲

初學(xué)乍練

貢獻(xiàn)
0 點(diǎn)
金幣
0 個(gè)
8#
發(fā)表于 2023-11-4 14:52:56 |云南| 只看Ta
學(xué)習(xí)一下。
回復(fù)

使用道具 舉報(bào)

2

主題

43

回帖

0

粉絲

漸入佳境

貢獻(xiàn)
0 點(diǎn)
金幣
5 個(gè)
9#
發(fā)表于 2023-12-5 08:54:13 |河北| 只看Ta
學(xué)習(xí)一下,感謝分享
回復(fù)

使用道具 舉報(bào)

0

主題

5

回帖

0

粉絲

初學(xué)乍練

貢獻(xiàn)
0 點(diǎn)
金幣
5 個(gè)
10#
發(fā)表于 2024-1-4 21:10:46 |四川| 只看Ta
如何在帖子列表頁(yè)展示作者頭像和版塊名稱?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

  • 關(guān)注公眾號(hào)
  • 有償服務(wù)微信
  • 有償服務(wù)QQ

手機(jī)版|小黑屋|Discuz! 官方交流社區(qū) ( 皖I(lǐng)CP備16010102號(hào) |皖公網(wǎng)安備34010302002376號(hào) )|網(wǎng)站地圖|star

GMT+8, 2026-4-18 00:03 , Processed in 0.046570 second(s), 11 queries , Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2026 Discuz! Team.

關(guān)燈 在本版發(fā)帖
有償服務(wù)QQ
有償服務(wù)微信
返回頂部
快速回復(fù) 返回頂部 返回列表