<address id="r9vd9"><address id="r9vd9"><listing id="r9vd9"></listing></address></address>

      歡迎您光臨深圳塔燈網絡科技有限公司!
      電話圖標 余先生:13699882642

      dede問答平臺開發筆記

      發表日期:2018-03 文章編輯:小燈 瀏覽次數:3307

      dedecms有個問答平臺的模塊,安裝該模塊之后會在根目錄下面生成一個ask的目錄,相關的代碼和模板都在里面了,當然安裝過程中還在數據庫中添加了和問答相關的數據。

      其實模塊是和系統其它部分比較獨立的程序集合,我發現這個問答模塊的代碼結構和dede其它地方的代碼結構差別比較大,可能是程序員不同吧,問答模塊基本上是基于mvc設計模式的,至少代碼看上去和很多mvc框架相似,而且在問答模塊里面,采用的模板也不再是dede文章模板的標簽調用形式,問答模塊里面可以很隨意的嵌套php語句。盡管有些地方也能看到dede標簽,但是我初步感覺,這個模板已經不再是dede的模板了,從后臺和前臺分離的角度來說,這不是好事,但是就個人來說我喜歡能使用php代碼的模板。

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

      //待解決的問題
      $notoks = $this->question->get_all('status=0','ORDER BY disorder DESC, dateline DESC',$row);

      //新解決的問題
      $solutions = $this->question->get_all('status=1','ORDER BY solvetime DESC',$row);

      //高分懸賞問題
      $rewards = $this->question->get_all('status=0','ORDER BY reward DESC',$row);

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

      //待解決的問題
      $notoks = $this->question->get_all('status=0','ORDER BY disorder DESC, dateline DESC',$row);

      //所有問題
      $allqus = $this->question->get_all('','ORDER BY disorder DESC, dateline DESC',$row);


      //新解決的問題
      $solutions = $this->question->get_all('status=1','ORDER BY solvetime DESC',$row);

      //高分懸賞問題
      $rewards = $this->question->get_all('status=0','ORDER BY reward DESC',$row);

      實驗證明我錯了,問答模塊的代碼沒我想的那么智能化,找了很久終于發現原因所在。原來在模型mquestion里面,get_all()不管條件有沒有指,都給sql語句加了個where,

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

      這里的$wheresql我設置成了空,結果導致sql語句不全了,所以出錯。改成

      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";
      現在就可以了,后臺代碼已經改完,現在改前臺。

      增加
      <?php

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

      <?php}}?>

      就講到這里吧
      本頁內容由塔燈網絡科技有限公司通過網絡收集編輯所得,所有資料僅供用戶參考了本站不擁有所有權,如您認為本網頁中由涉嫌抄襲的內容,請及時與我們聯系,并提供相關證據,工作人員會在5工作日內聯系您,一經查實,本站立刻刪除侵權內容。本文鏈接:http://www.webpost.com.cn/11260.html
      相關cms文章
       八年  行業經驗

      多一份參考,總有益處

      聯系深圳網站公司塔燈網絡,免費獲得網站建設方案及報價

      咨詢相關問題或預約面談,可以通過以下方式與我們聯系

      業務熱線:余經理:13699882642

      Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.    

      国产成人精品综合在线观看