主頁(yè) > 網(wǎng)站建設(shè) > 建站知識(shí) > DEDE5.7 問(wèn)答模板的修改技巧

DEDE5.7 問(wèn)答模板的修改技巧

POST TIME:2019-03-20 14:28

dedecms問(wèn)答模塊如何靜態(tài)化

添加dedecms的問(wèn)答模塊有助于被收錄的量及提高網(wǎng)站資訊量,有利于SEO的優(yōu)化及排名,特別是對(duì)于圖片站來(lái)說(shuō),添加了問(wèn)答模塊可以更好的提高收錄量,也有利于被懲罰站的
恢權(quán)重,如果你的站被懲罰了,那么添加個(gè)問(wèn)答模塊還有利于加速恢復(fù)權(quán)重。
我們先來(lái)看下DedeCMS 5.7問(wèn)答模塊的官方升級(jí)說(shuō)明:
重構(gòu)問(wèn)答模塊,采用模塊MVC架構(gòu)進(jìn)行重構(gòu);
問(wèn)答模塊支持偽靜態(tài)設(shè)置;
重新設(shè)計(jì)問(wèn)答模塊前臺(tái)界面,新界面同系統(tǒng)整體界面一致;
客服中心采用新版問(wèn)答模塊改版;
問(wèn)答模塊增加對(duì)二級(jí)域名的支持。
通過(guò)上述說(shuō)明,結(jié)合DedeCMS V5.7的問(wèn)答源碼,基本可以確定兩個(gè)信息:
DedeCMS 5.7問(wèn)答模塊仍然支持偽靜態(tài);
由于織夢(mèng)問(wèn)答模塊升級(jí),使用了新的URL形式,歷史版本的問(wèn)答系統(tǒng)偽靜態(tài)規(guī)則已經(jīng)不適用于新版了,這也DedeCMS 5.7問(wèn)答偽靜態(tài)實(shí)現(xiàn)要解決的重點(diǎn)。
DedeCMS 5.7問(wèn)答偽靜態(tài)高級(jí)解決方案
1)你的主機(jī)是否支持偽靜態(tài)?這點(diǎn)很重要,不然下面說(shuō)再多也是白搭。簡(jiǎn)單說(shuō)明下,Apache服務(wù)器偽靜態(tài)實(shí)現(xiàn)需要借助.htaccess文件;IIS服務(wù)器偽靜態(tài)實(shí)現(xiàn)則需要加載Rewrite
組件,然后配置httpd.ini文件;
2)DedeCMS V5.7管理后臺(tái)-系統(tǒng)-系統(tǒng)基本參數(shù)-模塊設(shè)置,“是否使用Rewrite”選擇“是”,“問(wèn)答模塊的二級(jí)域名”填寫(xiě)“ask”;
這里為什么要填寫(xiě)問(wèn)答模塊的二級(jí)域名?因?yàn)樾∑吹膫戊o態(tài)修改方法是參考DedeCMS V5.5和5.6問(wèn)答的URL形式,目標(biāo)URL以“.html”結(jié)尾,相信對(duì)使用過(guò)歷史版本問(wèn)答系統(tǒng)的朋友
都不會(huì)陌生。
如:http://localhost/ask/question-4.html
這樣的URL在DedeCMS V5.7中會(huì)有一個(gè)問(wèn)題,許多以“?ct=”開(kāi)頭的鏈接都會(huì)訪問(wèn)不了,如“我的提問(wèn)”、“我的回答”、“提高懸賞”、“編輯/刪除問(wèn)題”等,會(huì)產(chǎn)生404錯(cuò)誤頁(yè)
面。
如:http://localhost/ask/question-4.html?ct=myask
其實(shí)這種現(xiàn)象的產(chǎn)生,主要是模板里鏈接的路徑問(wèn)題,采用的都是相對(duì)路徑。而啟用問(wèn)答模塊的二級(jí)域名,再結(jié)合模板修改就可以很好的解決。當(dāng)然,你也可以修改模板,實(shí)現(xiàn)問(wèn)
答全站偽靜態(tài),只需多加幾條偽靜態(tài)規(guī)則即可。
3)DedeCMS 5.7問(wèn)答偽靜態(tài)規(guī)則
IIS服務(wù)器偽靜態(tài)規(guī)則,在httpd.ini文件中加入:
#問(wèn)答首頁(yè)
#RewriteRule ^(.*)/index.html $1/index.php
#問(wèn)答詳細(xì)頁(yè)
RewriteRule ^(.*)/question-([0-9]+).html $1/?ct=question&askaid=$2
#問(wèn)答一級(jí)欄目
RewriteRule ^(.*)/browser-1-([0-9]+).html $1/?ct=browser&tid=$2
#問(wèn)答一級(jí)欄目分頁(yè)
RewriteRule ^(.*)/browser-1-([0-9]+)-page-([0-9]+).html $1/?ct=browser&tid=$2&page=$3
#問(wèn)答子欄目
RewriteRule ^(.*)/browser-2-([0-9]+).html $1/?ct=browser&tid2=$2
#問(wèn)答子欄目分頁(yè)
RewriteRule ^(.*)/browser-2-([0-9]+)-page-([0-9]+).html $1/?ct=browser&tid2=$2&page=$3
# 精彩推薦、待解決問(wèn)題、高懸賞問(wèn)題、新解決問(wèn)題、零回答問(wèn)題、快到期問(wèn)題(包括一級(jí)欄目、子欄目及其分頁(yè))
RewriteRule ^(.*)/browser-([0-9]+).html $1/?ct=browser&lm=$2
RewriteRule ^(.*)/browser-([0-9]+)-page-([0-9]+).html $1/?ct=browser&lm=$2&page=$3
RewriteRule ^(.*)/browser-1-([0-9]+)-([0-9]+).html $1/?ct=browser&tid=$2&lm=$3
RewriteRule ^(.*)/browser-1-([0-9]+)-([0-9]+)-page-([0-9]+).html $1/?ct=browser&tid=$2&lm=$3&page=$4
RewriteRule ^(.*)/browser-2-([0-9]+)-([0-9]+).html $1/?ct=browser&tid2=$2&lm=$3
RewriteRule ^(.*)/browser-2-([0-9]+)-([0-9]+)-page-([0-9]+).html $1/?ct=browser&tid2=$2&lm=$3&page=$4
#全部分類
RewriteRule ^(.*)/type.html $1/?ct=type
#問(wèn)答搜索
RewriteRule ^(.*)/search.html $1/?ct=search
#總積分排行 周積分上升排行 查看個(gè)人信息
RewriteRule ^(.*)/myask-view-([0-9]+).html $1/?ct=myask&ac=view&mid=$2
Apache服務(wù)器偽靜態(tài)規(guī)則,在.htaccess文件中加入:
RewriteRule ^index.html$ index.php
RewriteRule ^question-([0-9]+).html$ ?ct=question&askaid=$1
RewriteRule ^browser-1-([0-9]+).html$ ?ct=browser&tid=$1
RewriteRule ^browser-1-([0-9]+)-page-([0-9]+).html$ ?ct=browser&tid=$2&page=$3
RewriteRule ^browser-2-([0-9]+).html$ ?ct=browser&tid2=$1
RewriteRule ^browser-2-([0-9]+)-page-([0-9]+).html$ ?ct=browser&tid2=$2&page=$3
RewriteRule ^browser-([0-9]+).html$ ?ct=browser&lm=$1
RewriteRule ^browser-([0-9]+)-page-([0-9]+).html$ ?ct=browser&lm=$1&page=$2
RewriteRule ^browser-1-([0-9]+)-([0-9]+).html$ ?ct=browser&tid=$1&lm=$2
RewriteRule ^browser-2-([0-9]+)-([0-9]+)-page-([0-9]+).html$ ?ct=browser&tid2=$1&lm=$2&page=$3
RewriteRule ^browser-2-([0-9]+)-([0-9]+).html$ ?ct=browser&tid2=$2&lm=$3
RewriteRule ^browser-2-([0-9]+)-([0-9]+)-page-([0-9]+).html$ ?ct=browser&tid2=$1&lm=$2&page=$3
RewriteRule ^type$ ?ct=type
RewriteRule ^search.html$ ?ct=search
RewriteRule ^myask-view-([0-9]+).html$ ?ct=myask&ac=view&mid=$1

DedeCMS 5.7問(wèn)答偽靜態(tài)修改注意事項(xiàng)
1)注意備份你站點(diǎn)的ask文件夾,防止出錯(cuò),方便還原;
2)以上的問(wèn)答偽靜態(tài)僅供DedeCMS5.7 GBK版本使用,UTF版本請(qǐng)自行轉(zhuǎn)換下代碼;
3)考慮到SEO,很多織夢(mèng)老用戶都是V5.1~V5.6版本升級(jí)至V5.7的,小拼提供的修改辦法保證了歷史問(wèn)答版本URL的一致性,否則URL改變是很影響搜索引擎收錄和排名的;
4)你可以參考下小拼的問(wèn)答偽靜態(tài)實(shí)現(xiàn)思路,總結(jié)出一套符合個(gè)人站點(diǎn)風(fēng)格的偽靜態(tài)方法。
DedeCMS 5.7問(wèn)答偽靜態(tài)初級(jí)解決方案
如果你怕麻煩,還心存疑慮,那就直接使用官方默認(rèn)的偽靜態(tài)方法了,僅實(shí)現(xiàn)問(wèn)答欄目頁(yè)和詳細(xì)頁(yè)的偽靜態(tài),可以使用下面的偽靜態(tài)規(guī)則:

IIS服務(wù)器,在httpd.ini文件中加入:
#問(wèn)答首頁(yè)
#RewriteRule ^(.*)/index.html $1/index.php
#問(wèn)答詳細(xì)頁(yè)
RewriteRule ^(.*)/([0-9]+).html $1/?ct=question&askaid=$2
#問(wèn)答一級(jí)欄目
#RewriteRule ^(.*)/([0-9]+) $1/?ct=browser&tid=$2
#問(wèn)答子欄目
#RewriteRule ^(.*)/t([0-9]+) $1/?ct=browser&tid2=$2
Apache服務(wù)器,在.htaccess文件中加入:
RewriteRule ^index.html$ index.php
RewriteRule ^([0-9]+).html$ ?ct=question&askaid=$1
RewriteRule ^([0-9]+)$ ?ct=browser&tid=$1
RewriteRule ^t([0-9]+)$ ?ct=browser&tid2=$1
好了,關(guān)于DedeCMS 5.7問(wèn)答模塊偽靜態(tài)的實(shí)現(xiàn)方法就介紹到這里,有什么不明白的地方請(qǐng)?jiān)谙旅媪粞?/p>

問(wèn)答模塊的游客提問(wèn) 管理員回答

 

一:只允許管理員回答
找到dedecms5.7的/ask/control目錄下的question.php文件,找到其中的這樣一段代碼并增加以下紅色部分代碼:

<?php if($cfg_ml->isAdmin == 1) { ?>

<div>
<form method=”post” name=”answer” action=”?ct=question&ac=answer&askaid=<?php echo $question['id']; ?>”>
<h3><span>我來(lái)回答這個(gè)問(wèn)題</span></h3>
<div><?php GetFck(“content”,””,400);?></div>
<div><span>回答即可得<?php echo $cfg_ask_answerscore;?>分,回答被采納則獲得懸賞分以及獎(jiǎng)勵(lì)<?php echo $cfg_ask_bestanswer;?>分。</span><span><label>
<?php
if($GLOBALS['cfg_ask_guestanswer'] == ‘Y’)
{
?>
<input name=”anonymous” type=”checkbox” value=”1″/>匿名回答</label><?php
}
?></span><button type=”submit”>提交回答</button></div>
</form>
</div>

<?php } ?>

二:允許游客提問(wèn)
找到dedecms5.7的/ask/control目錄下的question.php文件,找到其中的這樣一段代碼并刪除:

if(empty($this->cfg_ml->M_ID))
{
ShowMsg(‘您尚未登錄,請(qǐng)先登錄’,$GLOBALS['cfg_ask_member']);
exit;
}
if($this->cfg_ml->M_Spacesta < 0)
{
ShowMsg(‘您還沒(méi)有通過(guò)審核,暫時(shí)不能提問(wèn),請(qǐng)耐心等….’,’-1′);
exit;
}

刪除以上一段代碼后可進(jìn)入提問(wèn)頁(yè)面,但是依然發(fā)布不了,提示:“您尚未登錄,請(qǐng)先登錄”

三:解決 “您尚未登錄,請(qǐng)先登錄”
找到找到并刪除dedecms5.7的/ask/control目錄下的myask.php文件

if(empty($this->cfg_ml->M_ID))
{
ShowMsg(‘您尚未登錄,請(qǐng)先登錄’,$GLOBALS['cfg_ask_member']);
exit;
}
找到找到并刪除dedecms5.7的/ask/control目錄下的search.php文件
if(empty($cfg_ml->M_ID))
{
ShowMsg(‘您尚未登錄,請(qǐng)先登錄’,$GLOBALS['cfg_ask_member']);
exit;
}
if($cfg_ml->M_Spacesta = 0)
{
ShowMsg(‘您還沒(méi)有通過(guò)審核,暫時(shí)不能提問(wèn),請(qǐng)耐心等….’,’-1′);
exit;
}

刪除以上一部分之后 可進(jìn)入發(fā)布了,可是發(fā)不后又提示:“請(qǐng)勿重復(fù)回復(fù)同一問(wèn)題”

四:游客問(wèn)答,提示“請(qǐng)勿重復(fù)回復(fù)同一問(wèn)題”:
同樣找到并刪除dedecms5.7的/ask/control目錄下的question.php文件,找到其中的這樣一段代碼:

if($rs)
{
ShowMsg(‘請(qǐng)勿重復(fù)回復(fù)同一問(wèn)題!’,’-1′);
exit;
}

if($rs){
ShowMsg(‘請(qǐng)不要重復(fù)發(fā)布同一問(wèn)題,請(qǐng)耐心等待解答..’, “index.php”);
exit;
}

到此,想要實(shí)現(xiàn)的功能都已經(jīng)基本上實(shí)現(xiàn)了。最后在附送其他幾個(gè)問(wèn)題的解決辦法,如果有用到可以參考。

五:?jiǎn)栴}已過(guò)期、提問(wèn)者自己不能回答自己的問(wèn)題
同樣找到找到并刪除dedecms5.7的/ask/control目錄下的question.php文件,找到其中的這樣一段代碼

if($question)
{
if($question['uid'] == $this->cfg_ml->M_ID)
{
ShowMsg(‘提問(wèn)者自己不能回答自己的問(wèn)題’, ‘-1′);
exit;
}else if($question['expiredtime'] < $GLOBALS['cfg_ask_timesasdp']){
ShowMsg(‘問(wèn)題已經(jīng)過(guò)期’,’-1′);
exit;
}
$data['tid'] = $question['tid'];
$data['tid2'] = $question['tid2'];
$data['userip'] = getip();
}else{
ShowMsg(‘回答的問(wèn)題不存在’,’-1′);
exit;
}

六:“驗(yàn)證碼錯(cuò)誤!”“驗(yàn)證問(wèn)題答案錯(cuò)誤”
找到找到并刪除dedecms5.7的/ask/control目錄下的question.php文件

if(preg_match(“#7#”,$GLOBALS['safe_gdopen'])){
$svali = GetCkVdValue();
if(strtolower($data['vdcode']) != $svali || $svali==”)
{
ResetVdValue();
ShowMsg(‘驗(yàn)證碼錯(cuò)誤!’, ‘-1′);
exit();
}
}
//檢查驗(yàn)證問(wèn)題
$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(‘驗(yàn)證問(wèn)題答案錯(cuò)誤’, ‘-1′);
exit();
}
}



收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢

  • 400-1100-266