香蕉成人伊视频在线观看|学生小视频国产区|yy女主播啪啪啪视频|麻豆传播媒体APP大全免费版官网|瑜伽牲交AV|国产欧美日韩在线天堂区|白浆精品国产91

Discuz! 官方交流社區(qū)

標(biāo)題: discuz X2如何判斷當(dāng)前頁(yè)面的動(dòng)作 [打印本頁(yè)]

作者: 我是小站長(zhǎng)    時(shí)間: 2019-6-1 16:44
標(biāo)題: discuz X2如何判斷當(dāng)前頁(yè)面的動(dòng)作
*************************************************
** 本教程基于版本:Discuz! X 2.0                                         **
*************************************************



在制作插件,或者想自己修改一些功能的時(shí)候,經(jīng)常會(huì)遇到一個(gè)情況,就是需要獲取到當(dāng)前頁(yè)面在進(jìn)行一個(gè)什么動(dòng)作,比如是在看帖,還是在看主題列表,或者是在搜索,還是在后臺(tái)操作。然后根據(jù)相關(guān)動(dòng)作進(jìn)行判斷執(zhí)行什么代碼,比如在后臺(tái)操作,就自動(dòng)記錄一些相關(guān)LOG,或者搜索的時(shí)候,把數(shù)據(jù)庫(kù)切換到從庫(kù)去。


X2在每個(gè)頁(yè)面都做了標(biāo)記,很好的解決了這個(gè)問(wèn)題。

隨便打開(kāi)一個(gè)文件,就能看到類(lèi)似
  1. define('CURSCRIPT', 'forum');
復(fù)制代碼

或者

  1. define('CURSCRIPT', 'admin');
復(fù)制代碼

這樣的語(yǔ)句,這就是入口文件標(biāo)記。

通過(guò)判斷入口文件標(biāo)記,能實(shí)現(xiàn)判斷現(xiàn)在在論壇還是家園,門(mén)戶,群組,后臺(tái)管理,雜項(xiàng)等。

下面是入口文件標(biāo)記列表:

列表整理中....

通過(guò)判斷入口文件標(biāo)記,已經(jīng)能知道當(dāng)前是在哪個(gè)大類(lèi)下操作了。還可以通過(guò)判斷當(dāng)前模塊,來(lái)實(shí)現(xiàn)更詳細(xì)的判斷,比如詳細(xì)到看帖,還是在列表頁(yè)。

下面是模塊標(biāo)記列表:

列表整理中...

知道了怎么判斷當(dāng)前頁(yè)面動(dòng)作后,可以靈活的通過(guò)這個(gè)小技巧來(lái)自定義一些功能。下面是一個(gè)例子:

X2有讀寫(xiě)分離功能,但是只要設(shè)置了讀寫(xiě)分離,所有的讀取操作都到從庫(kù)去了。希望能靈活控制查詢從庫(kù)的動(dòng)作。

在source/class/class_mysql_slave.php 文件下  有個(gè) function query函數(shù),可以在里面添加各種判斷進(jìn)行控制。

例如
  1. if($this->slaveid && !$this->slaveexcept && strtoupper(substr($sql, 0 , 6)) == 'SELECT' && in_array(CURSCRIPT, array('search','misc','admin'))) {
復(fù)制代碼



那么就是只有“搜索”“統(tǒng)計(jì)和排行榜”“管理后臺(tái)”  才會(huì)進(jìn)行讀取從庫(kù),其他操作還是在主庫(kù)上進(jìn)行。

再例如
  1. if($this->slaveid && !$this->slaveexcept && strtoupper(substr($sql, 0 , 6)) == 'SELECT' && in_array(CURSCRIPT, array('forum')) && in_array(CURMODULE, array('forumdisplay', 'viewthread'))) {
復(fù)制代碼


那么就是只有論壇的“列表頁(yè)”“看帖頁(yè)”才會(huì)讀取從庫(kù),其他的操作全部還是讀取主庫(kù)的。

這只是其中一個(gè)靈活運(yùn)用的例子,更多的還要根據(jù)自己的需要來(lái)進(jìn)行修改,有了這些詳細(xì)的標(biāo)記,那么判斷起來(lái)就隨心應(yīng)手了。







歡迎光臨 Discuz! 官方交流社區(qū) (http://m.yu-jie.cn/) Powered by Discuz! X5.0