admin
管理员
管理员
  • UID1
  • 粉丝2
  • 关注2
  • 发帖数339
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:4962回复:0

dede5.7问答模块的游客提问 管理员回答

楼主#
更多 发布于:2013-10-20 17:38
分享到:
最近有一客户要使用DEDECMS
问答模块,其中涉及到一些权限的设置,因为他们的问答不需要会员系统,那怎么办呢?想了一下决定游客允许提问不允许回答,只允许管理员自己回答。
想好了权限问题,就开始决定怎么实现了。
现在放出办法,共享出来给大家。
 只允许管理员回答
 找到dedecms5.7的/ask/control目录下的question.htm文件,找到其中的这样一段代码并增加以下红色部分代码:

<?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"/>匿名回答</label><?php

   
   }

   
 
 ?></span><button
type="submit" class="btn
fr">提交回答</button></div>

   
 
</form>

   
</div>

 
<?php }
 ?>

 
dedecms5.7问答模块的游客匿名提问、问答和查看的方法
?close - z 15:20:17
 找到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();
            
}
        
}
游客

返回顶部