论坛实现单贴屏蔽的完整修改方法
作者:cmscn 日期:2008-12-21
①在数据库的bbs_data表中加字段pb,类型为 逻辑型(是/否)
或者执行SQL语句 alter table bbs_data add pb bit null
②修改forum_view.asp文件
先定义变量 pb(dim pb)
再找到sql="select bbs_data.id,bbs...这句,在user_data.popedom后面加,bbs_data.pb
找到: if v_i>1 and forum_power_true(forumpower)=true then temp1=temp1&" <a href='forum_isaction.asp?forum_id="&forumid&"&sel_id="&viewid&"&re_id="&v_id&"&action=del'><img src='"&joekoe_cms.web_dir_skin&"small/del2.gif' alt='删除此回贴' align=absMiddle border=0></a> "
替换为: if v_i>1 and forum_power_true(forumpower)=true then temp1=temp1&" <a href='forum_isaction.asp?forum_id="&forumid&"&sel_id="&viewid&"&re_id="&v_id&"&action=del'><img src='"&joekoe_cms.web_dir_skin&"small/del2.gif' alt='删除此回贴' align=absMiddle border=0></a> <a href='forum_isaction.asp?forum_id="&forumid&"&sel_id="&viewid&"&re_id="&v_id&"&action=pb' alt='屏蔽(解除屏蔽)此回贴'>屏蔽</a> "
找到
if joekoe_cms.popedom_p(u_popedom,42)=1 then
word="<table border=0><tr><td align=center class=htd><font class=gray>=========================<br><font class=red2><b>该用户的论坛发言已暂时被屏蔽!</b></font><br>=========================</font></td></tr></table>"
remark=""
end if
在前面加 pb=vdim(25,i)
在此后面加
if pb then
word="<table border=0><tr><td align=center class=htd><font class=gray>=========================<br><font class=red2><b>此贴已暂时被屏蔽!</b></font><br>=========================</font></td></tr></table>"
remark=""
end if
③修改forum_isacton.asp文件
找到:
ase "delete"
aname="删除:"
在前面加:
case "pb"
aname="屏蔽<解除屏蔽>一条回贴:"
找到:sub is_type(ftid,t_move_fid,t_cause,t_c_topic,t_pm,t_pn,t_ismail,t_m_topic,t_chk_topic,t_chk_f)
在 select case action 里面加上
case "pb"
call joekoe_cms.exec("update bbs_data set pb=not pb where forum_id="&forumid&" and reply_id="&ftid&" and id="&re_id,0)
④修改forum_loadtree.asp
找到 if html_temp="" then
在下面的sql语句的from前面加上 bbs_data.pb
在 if joekoe_cms.popedom_p(rs("popedom"),42)=0 then
前面加上
if rs("pb") then
html_temp=html_temp&"<font class=red2>该贴已暂时被屏蔽!</font>"
else
然后在
html_temp=html_temp&" <font class=gray>-</font> "&format_user_name(rs("username"),0,"")&"</td></tr>"
后面加
end if
⑤打开forum_print.asp
找到
sub forum_print()
这一段,将
Code:
sql="select id,username,topic,word,tim from bbs_data where reply_id="&viewid&" order by id"
改为
Code:
sql="select id,username,topic,word,tim,pb from bbs_data where reply_id="&viewid&" order by id"
往下找到
Code:
vbcrlf&"-- <b>"&joekoe_cms.code_html(rs(2),1,0)&"</b><br>" & _
vbcrlf& (code_jk(rs(3))) & _
vbcrlf&"</td></tr></table></td></tr>"
改为
Code:
vbcrlf&"-- <b>"&joekoe_cms.code_html(rs(2),1,0)&"</b><br>"
if rs("pb") then
response.write vbcrlf&"<font class=red2>该贴已暂时被屏蔽!</font>"
else
response.write vbcrlf& (code_jk(rs(3)))
end if
response.write vbcrlf&"</td></tr></table></td></tr>"
⑥打开forum_reply.asp
找到
Code:
sql="select top 1 bbs_data.username,bbs_data.word,bbs_data.tim,user_data.popedom from bbs_data,user_data where bbs_data.userid=user_data.id and bbs_data.reply_id="&viewid&" and bbs_data.id="&replyid
改为
Code:
sql="select top 1 bbs_data.username,bbs_data.word,bbs_data.tim,user_data.popedom,bbs_data.pb from bbs_data,user_data where bbs_data.userid=user_data.id and bbs_data.reply_id="&viewid&" and bbs_data.id="&replyid
往下找到
Code:
if joekoe_cms.popedom_p(rs("popedom"),42)=0 then
在上面添加
Code:
if rs("pb") then
rword="<font class=red2>该贴已暂时被屏蔽!</font>"
else
在
Code:
if chk_true then
上面添加
end if
同时配合下面的修改方法。我懒得去修改帖子了。继续
就是点打印图标后,特殊贴完全没有意义,内容一览无遗。这真是天大的漏洞!
解决办法:
打开forum_print.asp文件,顶部加上
<!-- #include file="include/jk_ubbtst.asp" -->
往下,在sub forum_print()中找到
vbcrlf& code_jk(rs(3)) & _
改为
vbcrlf& reubbtst(code_jk(rs(3)),0)
再看
这样修改后又发现特殊贴不能引用。苦苦琢磨,终于解决此问题!
打开forum_reply.asp
找到
Code:
rword="
Quote:
以下是引用 "&rs("username")&" 在 "&rs("tim")&" 的发言:"&vbcrlf&reubbtst(rs("word"))&vbcrlf&"
"
改为
Code:
rword="
Quote:
以下是引用 "&rs("username")&" 在 "&rs("tim")&" 的发言:"&vbcrlf&reubbtst(rs("word"),0)&vbcrlf&"
"
评论: 0 | 引用: 0 | 查看次数: 519
发表评论