网络建站知识发布于分享网站

当前位置:首页>>新闻中心>>CMS教程>>dedecms教程

Dedecms问答常见问题及修改方法

时间:2025-03-30 13:06:47    来源:    人气:0

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

一:仅允许管理员回答

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


<?php if($cfg_ml->isAdmin == 1) { ?>
    <div class="bor1 mt10 pd10 reply">
        <form method="post" name="answer" action="?ct=question&ac=answer&askaid=<?php echo $question['id']; ?>">
            <h3><span class="fl">我来回答这个问题</span></h3>
            <div class="mt10 reply_edit"><?php GetFck("content","",400);?></div>
            <div class="reply_edit_btn">
                <span class="fl mt10">回答即可得<?php echo $cfg_ask_answerscore;?>分,回答被采纳则获得悬赏分以及奖励<?php echo $cfg_ask_bestanswer;?>分。</span>
                <span class="fl ml10 mt10">
                    <label>
                        <?php 
                            if($GLOBALS['cfg_ask_guestanswer'] == 'Y') {
                        ?>
                        <input name="anonymous" type="checkbox" value="1"/>匿名回答
                        <?php } ?>
                    </label>
                </span>
                <button type="submit" class="btn fr">提交回答</button>
            </div>
        </form>
    </div>
<?php } ?>
        

二:允许游客提问

若要允许游客提问,需删除/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系统更加灵活和用户友好。

相关文章

  • Dedecms 删除文档时同时清除文章中图片的方法

    Dedecms 删除文档时同时清除文章中图片的方法

    在网站建设与维护的过程中,优化代码结构和功能是提升网站性能的重要步骤。本文将介绍如何通过自定义函数实现文章删除时自动清理相关资源的功能,从而提高系统的整洁性和存储效率。以下是具体的操作步骤及代码实现。首先, 在 `/include` 目录下创建一个名为 `extend.func.php` 的文件...
    2025-03-31
  • Dedecms上传图片提示302错误ERROR的解决方法

    Dedecms上传图片提示302错误ERROR的解决方法

    在进行图片上传操作时,用户可能会遇到302错误以及带有ERROR提示的图片上传失败问题。这些问题可能由多种原因引发,因此本文将对这些情况进行整理,以帮助大家更有效地定位并解决问题。 第一种情况:图片文件本身损坏。 这种情况会导致系统返回ERROR错误提示,不过发生概率较低。如果怀疑是图片损坏导致的...
    2025-03-31
  • DEDECMS模板使用教程

    DEDECMS模板使用教程

    如果您正在寻找一种高效的方法来使用Dedecms模板搭建网站或论坛,那么本文将为您提供详尽的指导。从模板解压到最终完成配置,每一步都将清晰呈现,帮助您快速掌握整个流程。 第一步:解压Dedecms模板 将下载的Dedecms模板文件解压出来,确保所有文件完整无误。如下图所示: 第二步:获取D...
    2025-03-31
  • Dedecms Dede 附加表自定义字段与主表文章关联方法

    Dedecms Dede 附加表自定义字段与主表文章关联方法

    在使用DedeCMS开发装修网站时,设计师和设计作品之间的关联是一个重要的功能需求。通常情况下,文章(作品)的内容部分存储在主表dede_addonarticle中,而自定义字段则存储在附加表dede_archives中。为了实现这一功能,可以采用以下两种方法。 ① 根据发布人调用相关文章; ...
    2025-03-31

公众号