在Dedecms5.7中实现特定功能的自定义设置,可以显著提升用户体验和网站管理效率。以下是一些关键步骤和代码调整方法,帮助您实现管理员回答、游客提问以及解决常见问题的功能。

一:仅允许管理员回答

为了确保只有管理员能够回答问题,需要对/ask/control/question.php文件进行修改。以下是具体操作:


isAdmin == 1) { ?>
    

我来回答这个问题

回答即可得分,回答被采纳则获得悬赏分以及奖励分。

二:允许游客提问

若要允许游客提问,需删除/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;
}
        

三:解决“您尚未登录,请先登录”提示

针对此问题,需删除/ask/control/myask.php/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;
}
        

四:解决“请勿重复回复同一问题”

/ask/control/question.php中删除以下代码:


if($rs) {
    ShowMsg('请勿重复回复同一问题!', '-1');
    exit;
}
if($rs){
    ShowMsg('请不要重复发布同一问题,请耐心等待解答..', "index.php");
    exit;
}
        

五:解决“问题已过期”或“提问者自己不能回答自己的问题”

同样在/ask/control/question.php中删除以下代码:


if($question) {
    if($question['uid'] == $this->cfg_ml->M_ID) {
        ShowMsg('提问者自己不能回答自己的问题', '-1');
        exit;
    } else if($question['expiredtime'] < $GLOBALS['cfg_ask_timesasdp']){
        ShowMsg('问题已经过期','-1');
        exit;
    }
    $data['tid'] = $question['tid'];
    $data['tid2'] = $question['tid2'];
    $data['userip'] = getip();
} else {
    ShowMsg('回答的问题不存在','-1');
    exit;
}
        

六:解决“验证码错误!”或“验证问题答案错误”

最后,在/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();
    }
}
        

通过以上修改,您可以实现管理员专属回答、游客提问以及其他功能优化。这些调整将使您的Dedecms系统更加灵活和用户友好。