discuz發帖時標題實現高亮功能?

discuz雖然有高亮功能,但不是在發帖的時候,可以選擇高亮功能,而是對已經發帖成功的主題進行設置。

而我們要實現的功能是: 在發帖的時候,可以選擇高亮功能。

discuz發帖時標題實現高亮功能

工具/原料

discuz

方法/步驟

修改模板文件

1. 先找到模板文件template/模板風格目錄/fourm/post_editor_extra.htm,找到標題(subject)顯示位置,請看截圖1.

2. 這裡判斷是否為回帖,發帖/編輯貼,然後添加高亮功能代碼(可以copy它自帶的功能),請看截圖2.

3. 這裡寫的是插件來控制用戶組使用高亮功能。效果圖截圖3.

discuz發帖時標題實現高亮功能

discuz發帖時標題實現高亮功能

discuz發帖時標題實現高亮功能

處理提交的數據

1. 我們先看提交鏈接: forum.php?mod=post&action=newthread&fid=184&extra=&topicsubmit=yes

找到模塊文件: /source/module/forum/forum_post.php

然後我們看如下代碼:

discuz發帖時標題實現高亮功能

2. 然後再找include目錄下的文件post/post_newthread.php文件,對提交過來的高亮數據進行處理。

請看如下代碼:

discuz發帖時標題實現高亮功能

我們先看插入數據的代碼:

$return = $modthread->newthread($params);

採用了$modthread對象的方法

而$nodthread對象是通過代碼來實例化的

$modthread = C::m('forum_thread');

說明:

C::m 對應的是 model_forum_thread,而C::t 對應的是table_forum_thread

所以我們去找/source/class/model/model_forum_thread.php文件

找到newthread方法

發現此方法調用了,請看截圖。

discuz發帖時標題實現高亮功能

此方法對傳過來的參數以及值進行初始化,所以在$varname數組中添加’highlight’,不然高亮數據就不會入庫。

再接著看newthread方法,找到入庫代碼:(請看截圖)

再把hightlight添加進去。

然後對應的更新完所有改過的數據,發帖高亮就實現了。

discuz發帖時標題實現高亮功能

注意事項

字體顏色、加粗、斜線、下劃線組合成數字存放在highlight字段中。

相關問題答案