2024国产成人精品免费视频|日本免费一区二区三区毛片|久久97超碰色中文字幕|亚洲天堂a中文字幕

讓Discuz閱讀權(quán)限大于0的帖子也能用DIY調(diào)用到

2014-10-23 15:28 欄目:技術(shù)開發(fā) 查看(29250)

使用過Discuz的朋友都知道,哪怕你只是一個技術(shù)小白也好。DZ的DIY功能能讓一個完全不懂代碼的站長也能進行各種調(diào)用操作,比如在站內(nèi)可以直接在前臺調(diào)用數(shù)據(jù),而在站外可以直接用后臺提供的API進行數(shù)據(jù)調(diào)用,比如在自己寫的獨立程序上調(diào)用DZ論壇的數(shù)據(jù)就可以除了重新寫SQL外還可以直接通過DZ后臺的API進行調(diào)用。

但問題來了。我們會發(fā)現(xiàn)有的帖子設(shè)置了閱讀權(quán)限,比如設(shè)置了10、100、255等等,這樣的帖子如果我們想DIY調(diào)用出來發(fā)現(xiàn)調(diào)用不到。其實這是DZ在程序設(shè)計上的考慮,他們是這樣考慮的,既然你設(shè)置了權(quán)限了也就是帖子不讓別人訪問了,就沒必要在列表里面展示了,其實這樣的考慮比較完善的。但有的站長就是有這樣的需求,比如設(shè)置了10的權(quán)限,我網(wǎng)站大多數(shù)用戶還是需要看啊。

帶著這樣的需求就開始我們這里討論的話題吧。其實DIY調(diào)用數(shù)據(jù),或者直接在后臺進行調(diào)用,最終還是需要從數(shù)據(jù)庫里邊取數(shù)據(jù)。只是DZ可能從架構(gòu)上采用了面向?qū)ο箝_發(fā)機制,把這些都封裝到某些類的方法里面。比如關(guān)于閱讀權(quán)限大于0就不顯示在DIY調(diào)用數(shù)據(jù)的列表里面,通過微構(gòu)網(wǎng)絡(luò)發(fā)現(xiàn)就是在source/class/block/forum/block_thread.php中的一個名為block_thread中所約束的,這個類繼承了discuz_block 這個父類。而且是寫入在了getdata()這個方法里面。通過分析就在357行(X3.2版本)中有一段如下代碼

$sqlfrom WHERE {$maxwhere}t.readperm=’0′

其中WHERE {$maxwhere}t.readperm=’0′就是限制條件,也就是只有閱讀權(quán)限為0的帖子才會被顯示出來,如果我們要把所有的都顯示出來,那么還明顯我們可以改成WHERE {$maxwhere}t.readperm>=’0′都可以,當(dāng)然也可以是其他的方法了,比如修改其他的地方把這個where條件的一部分去掉。

到了這里我們很自然可以做進一步的優(yōu)化,比如顯示閱讀權(quán)限為100及以下的帖子,那么我們只需要把那段代碼修改為

$sqlfrom WHERE {$maxwhere}t.readperm<=’100′

即可

 

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

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

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

轉(zhuǎn)載請注明出處:讓Discuz閱讀權(quán)限大于0的帖子也能用DIY調(diào)用到 - 微構(gòu)網(wǎng)絡(luò)
分享:
双桥区| 金川县| 宁波市| 合阳县| 揭西县| 景泰县| 福海县| 呼和浩特市| 昌平区| 黔东| 临清市| 贺州市| 宁国市| 赤壁市| 海宁市| 攀枝花市| 孝义市| 静宁县| 思南县| 维西| 新干县| 宜章县| 泗洪县| 通化县| 延长县| 靖宇县| 玉山县| 许昌市| 沿河| 三台县| 石屏县| 宾川县| 贵定县| 北海市| 沾益县| 淮南市| 亳州市| 乐至县| 崇信县| 保亭| 阿勒泰市|