国产又猛又爽又黄视频|在线观看人成视频免费|少妇高潮太爽了在线视频|911国产免费无码专区|特黄做受又大又粗又长大片|欧美一级二级免费在线观看|日日夜人人澡人人澡人人看免|欧洲午夜精品一级毛片在线播放

使用hook鉤子解決Discuz手機版回復(fù)特殊主題時的默認(rèn)內(nèi)容問題

2017-02-13 15:03 欄目:技術(shù)開發(fā) 查看(13673)

在Discuz二次開發(fā)的插件API中就有一個特殊主題,基于這個API我們可以基于Discuz的論壇帖子開發(fā)很多有價值的插件功能,比如非常經(jīng)典的就有官方的那款積分商城插件,那個插件就用到了特殊插件。近期幫助湖南紅網(wǎng)基于論壇帖子開發(fā)在線圖文直播功能的時候也用到了特殊主題。但在開發(fā)過程中我們發(fā)現(xiàn)了一個問題:在手機版的時候,我們回復(fù)特殊主題,發(fā)現(xiàn)在回復(fù)頁面的輸入框中已經(jīng)有了默認(rèn)的內(nèi)容,而且是主題帖的內(nèi)容加上插件的標(biāo)識。如圖所示:

2342

經(jīng)過分析dz的源代碼,發(fā)現(xiàn)是在模板中有一個$postinfo[message],而這個變量就是默認(rèn)輸入框的數(shù)據(jù),再切換在邏輯層,發(fā)現(xiàn)這個$postinfo定義的條件就是當(dāng)主題帖是特殊主題的時候(當(dāng)然還有其他的條件)。其實我也沒搞清楚dz默認(rèn)的代碼為什么要做這樣一個處理,至少針對目前的需求我認(rèn)為這個處理是幫倒忙,那么怎么屏蔽掉這個處理。可能首先想到的就是直接修改就行了,而實際上紅網(wǎng)的該部分文件是不可能被我們來操作的(因為這個文件是dz的核心文件,原則上是不讓動的)。

那么我們只能考慮插件來解決了,我們發(fā)現(xiàn)在帖子回復(fù)頁面存在post_bottom_mobile這個hook,那么我們在直播插件中定義一個手機版的頁面嵌入點即可。其中主要代碼可以是如下:

class mobileplugin_muquan_zhibo {
}
class mobileplugin_muquan_zhibo_forum extends mobileplugin_muquan_zhibo {
  function post_bottom_mobile_output(){
     global $postinfo;
     $postinfo='';
  }
}

上述是什么意思呢,意思就是在該頁面程序執(zhí)行后模板輸出前執(zhí)行post_bottom_mobile_output方法,這個方法的作用就是把$postinfo重置為空,當(dāng)然銷毀也是可以的,具體的方法閱讀dz的開發(fā)文檔即可。好了之后的效果就是跟回復(fù)普通主題一樣了。

535

而dz默認(rèn)情況下針對特殊主題回復(fù)的這個處理是否有別的用處,暫時不得而知,如果該處理有非常重要的用途,那么就要換其他方式來解決了。

與我們的項目經(jīng)理聯(lián)系
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流

轉(zhuǎn)載請注明出處:使用hook鉤子解決Discuz手機版回復(fù)特殊主題時的默認(rèn)內(nèi)容問題 - 微構(gòu)網(wǎng)絡(luò)
分享: