花魁直播高品质美女在线视频互动社区 - 花魁直播官方版

 歡迎來(lái)到素材無(wú)憂網(wǎng),按 + 收藏我們
登錄 注冊(cè) 退出 找回密碼

dede問(wèn)答平臺(tái)開發(fā)筆記

時(shí)間: 2018-12-11 08:44 閱讀: 作者:素材無(wú)憂網(wǎng)

dedecms有個(gè)問(wèn)答平臺(tái)的模塊,安裝該模塊之后會(huì)在根目錄下面生成一個(gè)ask的目錄,相關(guān)的代碼和模板都在里面了,當(dāng)然安裝過(guò)程中還在數(shù)據(jù)庫(kù)中添加了和問(wèn)答相關(guān)的數(shù)據(jù)。

其實(shí)模塊是和系統(tǒng)其它部分比較獨(dú)立的程序集合,我發(fā)現(xiàn)這個(gè)問(wèn)答模塊的代碼結(jié)構(gòu)和dede其它地方的代碼結(jié)構(gòu)差別比較大,可能是程序員不同吧,問(wèn)答模塊基本上是基于mvc設(shè)計(jì)模式的,至少代碼看上去和很多mvc框架相似,而且在問(wèn)答模塊里面,采用的模板也不再是dede文章模板的標(biāo)簽調(diào)用形式,問(wèn)答模塊里面可以很隨意的嵌套php語(yǔ)句。盡管有些地方也能看到dede標(biāo)簽,但是我初步感覺,這個(gè)模板已經(jīng)不再是dede的模板了,從后臺(tái)和前臺(tái)分離的角度來(lái)說(shuō),這不是好事,但是就個(gè)人來(lái)說(shuō)我喜歡能使用php代碼的模板。

好了今天我想給問(wèn)答平臺(tái)添加一個(gè)在首頁(yè)顯示所有問(wèn)題的功能(默認(rèn)是沒有的),很容易找到了ask/control/index.php文件,下面我將關(guān)鍵代碼貼出來(lái):

       //待解決的問(wèn)題
        $notoks = $this->question->get_all('status=0','ORDER BY disorder DESC, dateline DESC',$row);
    
        //新解決的問(wèn)題
        $solutions = $this->question->get_all('status=1','ORDER BY solvetime DESC',$row);
  
     //高分懸賞問(wèn)題
        $rewards = $this->question->get_all('status=0','ORDER BY reward DESC',$row);

看到了吧,這里就是查詢不同條件下問(wèn)題的列表,get_all()函數(shù)里面的參數(shù)是設(shè)置查找問(wèn)題的條件status=1表示已解決問(wèn)題,status=0表示未解決問(wèn)題,如果我不要任何條件將這里設(shè)置成空 是不是就可以得到所有問(wèn)題了呢,于是我將代碼改成:

       //待解決的問(wèn)題
        $notoks = $this->question->get_all('status=0','ORDER BY disorder DESC, dateline DESC',$row);
       
        //所有問(wèn)題
        $allqus = $this->question->get_all('','ORDER BY disorder DESC, dateline DESC',$row);
 
              
        //新解決的問(wèn)題
        $solutions = $this->question->get_all('status=1','ORDER BY solvetime DESC',$row);
  
  //高分懸賞問(wèn)題
        $rewards = $this->question->get_all('status=0','ORDER BY reward DESC',$row);

實(shí)驗(yàn)證明我錯(cuò)了,問(wèn)答模塊的代碼沒我想的那么智能化,找了很久終于發(fā)現(xiàn)原因所在。原來(lái)在模型mquestion里面,get_all()不管條件有沒有指,都給sql語(yǔ)句加了個(gè)where,

$query = "SELECT $field FROM `dede_ask` WHERE $wheresql $orderby limit 0,$row";

這里的$wheresql我設(shè)置成了空,結(jié)果導(dǎo)致sql語(yǔ)句不全了,所以出錯(cuò)。改成

            if($wheresql=='')
              $query = "SELECT $field FROM `dede_ask`  $orderby limit 0,$row";
            else
             $query = "SELECT $field FROM`dede_ask` WHERE $wheresql $orderby limit 0,$row";
現(xiàn)在就可以了,后臺(tái)代碼已經(jīng)改完,現(xiàn)在改前臺(tái)。

增加
              <?php

             if($allqus!= ""){
              foreach($allqus as $key => $v){
             ?>
            這里是html代碼,參照待解決問(wèn)題

            <?php  }} ?>

就講到這里吧

版權(quán)聲明: 本站資源均來(lái)自互聯(lián)網(wǎng)或會(huì)員發(fā)布,如果侵犯了您的權(quán)益請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除!謝謝!

轉(zhuǎn)載請(qǐng)注明: dede問(wèn)答平臺(tái)開發(fā)筆記

標(biāo)簽:  
相關(guān)文章
模板推薦