公告:如果您的账号不能登录,可能是系统对您账号进行了保护,我们发现系统中存在着不安全密码,故对其重置,请您重新激活账号,对于给您造成的不便,敬请谅解!
论坛风格切换切换到宽版
  • 6520阅读
  • 4回复

DEDE5.3ask问答模块实现匿名提问或回答 [复制链接]

上一主题 下一主题
离线萧湘月
 

发帖
6723
贡献值
5296
威望值
1494
技术分
10
织梦币
45
只看楼主 倒序阅读 使用道具 0 发表于: 2009-07-07
— 本帖被 萧湘月 执行取消置顶操作(2009-07-07) —
先说一下实现后的效果,首先这个修改后是一个精简版的dedecms问答系统,会取消采纳答案等功能,因取消会员功能后不再有答案的等级之分,如对答案的平分功能等将被取消。

最后不建议使用匿名提问功能,建议使用会员功能来实现问答。这里是给大家提供一个学习的思路!

下面说一下方法:

post.php文件


if(empty($uid) && $action != 'rate')
{
showmsgs('no_login','../member/login.php?gourl=../ask/');
exit;
}



1,修改成 或注释掉
if(empty($uid) && $action != 'rate')
{
if($action!='ask' & $action!='')
{
showmsgs('no_login','../member/login.php?gourl=../ask/');
exit;
}
}



2,注释掉

/*if($question['uid'] == $uid)

              {

                     showmsgs('asker_cannot_answer', '-1');

              }else*/

3,然后

if($answer['uid'] != $uid)

              {

                     showmsgs('unallowed_action', $backurl);

              }else

替换成

if($question['uid'] == $uid)

              {

                     showmsgs('asker_cannot_answer', '-1');

              }else

这样就不能修改答案了,不过这个提示是不会回答自己的问题。



或者直接注释掉:修改答案部分的php代码。

else if($action == 'modifyanswer')

{

       $answer = $dsql->getone("SELECT answer.id, answer.uid, ask.dateline, ask.solvetime, ask.status, ask.expiredtime FROM `dede_askanswer` answer left join dede_ask ask on ask.id=answer.askid WHERE answer.id='$id'");

       if($answer)

       {

              if($answer['uid'] != $uid)

              {

                     showmsgs('unallowed_action', $backurl);

              }elseif($answer['status'] != 0)

              {

                     showmsgs('question_solved', $backurl);

              }elseif($answer['expiredtime'] < $timestamp)

              {

                     showmsgs('question_expired', $backurl);

              }

       } else

       {

              showmsgs('question_nonexistence');

       }



       if(trim($content) == '')

       {

              showmsgs('post_answer_isnull');

       }

       if(strlen($content) > 10000)

       {

              showmsgs('post_answer_toolong');

       }

       if(strlen($brief) > 200)

       {

              showmsgs('post_brief_toolong', '-1');

       }

       if($dsql->ExecuteNoneQuery("update dede_askanswer set content='$content', brief='$brief' where id='$id'"))

       {

              showmsgs('modifyanswer_success',$backurl);

       }else

       {

              showmsgs('modifyanswer_failed',$backurl);

       }

}



question.php

注释

       if($question['uid'] == $uid)

       {

              $publisher = 1;

       }




本篇文章来源于 DedeCms之家 原文链接:http://www.2d30.cn/DEDEshiyong/20090707/271.html
离线a86815123

发帖
44
贡献值
3
威望值
17
技术分
0
织梦币
0
只看该作者 1 发表于: 2009-07-09
这个修改有问题  提示错误
 
离线ja10086

发帖
47
贡献值
7
威望值
19
技术分
0
织梦币
0
只看该作者 2 发表于: 2009-09-03
留个印,
 
离线笑熬糨糊

发帖
99
贡献值
138
威望值
20
技术分
0
织梦币
0
只看该作者 3 发表于: 2010-05-07
在post.php根本找不到这些代码,也许是版本不同吧,为什么问答模块去掉会员功能那么难?
离线三尺寒冰

发帖
72
贡献值
103
威望值
10
技术分
0
织梦币
0
只看该作者 4 发表于: 2010-08-09
看不懂