最近在做一個織夢的風濕骨科醫院網站,需要用到織夢默認的問答模塊,一般醫院網站用到問答但并不適合用到會員的,一是醫院沒必要要會員功能,二是要會員的話會多出好多頁面會增加開發費用。所以需要做二次開發,讓游客提問 管理員來回答 ,開始沒感覺有什么困難,因為之前做過織夢問答的二次開發??墒钦l知道織夢總是改版,這不是用最新版本5.7sp1的來做,咿呀,一看問答和之前的修改方法完全不一樣嘍!不過經過研究還是解決了 分享給大家:
1、游客提問:
	找到dedecms5.7的/ask/control目錄下的question.php文件,找到其中的這樣一段代碼并刪除:
	if(empty($this->cfg_ml->M_ID))
	{
	ShowMsg('您尚未登錄,請先登錄',$GLOBALS['cfg_ask_member']);
	exit;
	}
	if($this->cfg_ml->M_Spacesta < 0)
	{
	ShowMsg('您還沒有通過審核,暫時不能提問,請耐心等....','-1');
	exit;
	}
2、游客問答,提示“請勿重復回復同一問題”:
	同樣找到并刪除dedecms5.7的/ask/control目錄下的question.php文件,找到其中的這樣一段代碼:
	if($rs)
	{
	ShowMsg('請勿重復回復同一問題!','-1');
	exit;
	}
和
	if($rs){
	            ShowMsg('請不要重復發布同一問題,請耐心等待解答..', "index.php");
	      exit;
	  }
	3、問題已過期、提問者自己不能回答自己的問題
同樣找到找到并刪除dedecms5.7的/ask/control目錄下的question.php文件,找到其中的這樣一段代碼
	if($question)
	  {
	   if($question['uid'] == $this->cfg_ml->M_ID)
	   {
	    ShowMsg('提問者自己不能回答自己的問題', '-1');
	    exit;
	   }else if($question['expiredtime'] < $GLOBALS['cfg_ask_timestamp']){
	    ShowMsg('問題已經過期','-1');
	    exit;
	   }
	   $data['tid'] = $question['tid'];
	   $data['tid2'] = $question['tid2'];
	   $data['userip'] = getip();
	  }else{
	   ShowMsg('回答的問題不存在','-1');
	   exit;
	  }
4、“您尚未登錄,請先登錄”
找到找到并刪除dedecms5.7的/ask/control目錄下的myask.php文件
	  if(empty($this->cfg_ml->M_ID))
	  {
	   ShowMsg('您尚未登錄,請先登錄',$GLOBALS['cfg_ask_member']);
	   exit;
	  }
找到找到并刪除dedecms5.7的/ask/control目錄下的search.php文件
	  if(empty($cfg_ml->M_ID))
	  {
	   ShowMsg('您尚未登錄,請先登錄',$GLOBALS['cfg_ask_member']);
	   exit;
	  }
	  if($cfg_ml->M_Spacesta = 0)
	  {
	   ShowMsg('您還沒有通過審核,暫時不能提問,請耐心等....','-1');
	   exit;
	  }
5、“驗證碼錯誤!”“驗證問題答案錯誤”
找到找到并刪除dedecms5.7的/ask/control目錄下的question.php文件
	  if(preg_match("#7#",$GLOBALS['safe_gdopen'])){
	      $svali = GetCkVdValue();
	            if(strtolower($data['vdcode']) != $svali || $svali=='')
	            {
	                ResetVdValue();
	                ShowMsg('驗證碼錯誤!', '-1');
	                exit();
	            }
	        }
	        //檢查驗證問題
	        $faqkey = isset($data['faqkey']) && is_numeric($data['faqkey']) ? $data['faqkey'] : 0;
	        if($GLOBALS['gdfaq_ask'] == 'Y')
	        {
	            global $safefaqs;
	            if($safefaqs[$faqkey]['answer'] != $data['safeanswer'] || $data['safeanswer'] =='')
	            {
	                ShowMsg('驗證問題答案錯誤', '-1');
	                exit();
	            }
	        }
====================================================================================================================================================================================================
這樣就好了。問題都已經解決了!我親自測試的!希望能夠幫助大家,目前這個還比較少的
新聞熱點
疑難解答