作者:0519bobo_724 | 来源:互联网 | 2014-05-27 15:53
回帖内容也是可以添加隐藏标签的,只要用户用使用hide标签权限,当用户回复了该主题的时候也会将内容显示出来回帖可见对游客也是有效的,当一个用户在发帖的时候使用了hide标签,发布主题的时候会调用discuzcode函数对discuz代码进行解析,其中解析hide标签部
回帖内容也是可以添加隐藏标签的,只要用户用使用hide标签权限,当用户回复了该主题的时候也会将内容显示出来
回帖可见对游客也是有效的,当一个用户在发帖的时候使用了hide标签,发布主题的时候会调用
discuzcode函数对
discuz代码进行解析,其中解析hide标签部分:
if($parsetype != 1 && strpos($msglower, '[/hide]') !==
FALSE && $pid) {
if(strpos($msglower,
'[hide]') !== FALSE) {
if($authorreplyexist === null) {
$posttable =
getposttablebytid($_G['tid']);
$authorreplyexist =
!$_G['forum']['ismoderator'] ? DB::result_first("SELECT pid FROM
".DB::table($posttable)." WHERE tid='$_G[tid]' AND ".($_G['uid'] ?
"authorid='$_G[uid]'" : "authorid=0 AND useip='$_G[clientip]'")."
LIMIT 1") : TRUE;
}
if($authorreplyexist) {
$message =
preg_replace("/[hide]s*(.*?)s*[/hide]/is", tpl_hide_reply(),
$message);
} else {
$message =
preg_replace("/[hide](.*?)[/hide]/is", tpl_hide_reply_hidden(),
$message);
$message .=
'';
}
}
if(strpos($msglower,
'[hide=') !== FALSE) {
$message =
preg_replace("/[hide=(d+)]s*(.*?)s*[/hide]/ies",
"creditshide(\1,'\2', $pid)", $message);
}
}
}
由于post表中,主题也是会被存在其中$authorreplyexist = !$_G['forum']['ismoderator']
? DB::result_first("SELECT pid FROM ".DB::table($posttable)." WHERE
tid='$_G[tid]' AND ".($_G['uid'] ? "authorid='$_G[uid]'" :
"authorid=0 AND useip='$_G[clientip]'")." LIMIT 1") : TRUE;
这段代码能够查询出是被回复了(包括游客回复)或者是版主,则用$message =
preg_replace("/[hide]s*(.*?)s*[/hide]/is", tpl_hide_reply(),
$message)将hide标签部分的代码替换掉,如果没有回复则用
tpl_hide_reply_hidden()处理掉hide标签部分的内容,这里的函数来自于:discuzcode.htm,其中的函数原理在这里不做介绍