最近在做一個織夢的風(fēng)濕骨科醫(yī)院網(wǎng)站,需要用到織夢默認(rèn)的問答模塊,一般醫(yī)院網(wǎng)站用到問答但并不適合用到會員的,一是醫(yī)院沒必要要會員功能,二是要會員的話會多出好多頁面會增加開發(fā)費用。所以需要做二次開發(fā),讓游客提問 管理員來回答 ,開始沒感覺有什么困難,因為之前做過織夢問答的二次開發(fā)??墒钦l知道織夢總是改版,這不是用最新版本5.7sp1的來做,咿呀,一看問答和之前的修改方法完全不一樣嘍!不過經(jīng)過研究還是解決了 分享給大家:
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、游客問答,提示“請勿重復(fù)回復(fù)同一問題”:
同樣找到并刪除dedecms5.7的/ask/control目錄下的question.php文件,找到其中的這樣一段代碼:
if($rs)
{
ShowMsg('請勿重復(fù)回復(fù)同一問題!','-1');
exit;
}
和
if($rs){
ShowMsg('請不要重復(fù)發(fā)布同一問題,請耐心等待解答..', "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('問題已經(jīng)過期','-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();
}
}
|