本文目录一览:
- 1、
代码 可用 “这是什么意思?' title="论坛 里 经常看到”Discuz!代码可用
代码 可用 “这是什么意思?'>论坛 里 经常看到”Discuz!代码可用
代码 可用 “这是什么意思?
- 2、discuz 怎么让特殊字符不被转义比如&不被转义成&
- 3、discuz换行问题
- 4、
代码 分别是什么意思' title="html html 代码 、smilies 、discuz! 代码、
代码 分别是什么意思'>html html 代码 、smilies 、discuz! 代码、
代码 分别是什么意思
- 5、discuz 怎么样设置限制发重复帖
论坛 里 经常看到”Discuz!代码可用
代码 可用 “这是什么意思?
Discuz!代码是Discuz!论坛专用的代码,设置是否解析用户帖子中的自定义 Discuz! 代码。注意: 自定义 Discuz! 代码由管理员在系统设置中自行定义,不包括系统内置的数十种代码。这也是为了安全起见,而采取的作法。
代码是属于UBB代码,这是一种通用的安全的代码,通常与[/img]一起使用,主要是用于添加图片,使用格式是:
在此添加图片地址
就可以引用某一张图片了,在论坛中通常用于自我介绍和个人签名里。
discuz 怎么让特殊字符不被转义比如&不被转义成&
Html中特殊字符不被转义,可以使用预格式化标签。
pre 是 Preformatted text(预格式化文本) 的缩写。使用此标签可以把代码中的空格和换行直接显示到页面上。
例如HTML代码:
pre
if (xx 5) {
print "比5大!\n";
}
/pre
浏览器显示效果:
if (xx 5) {
print "比5大!\n";
}
textarea/textarea之间包含有类似的这种转义字符的时候总会被解析,倒是可以把所有的""通过程序替换成"",但是有些本来就是""的也会被转换,这就错了。如何让textarea/textarea之间包含的文本原封不动的显示出来呢?
总结如下:
解决方法有两种:
第1种:
body
textarea id='t' rows=20 cols=20/textarea
script
document.getElementById('t').innerText='a';
/script
/body
第2种:
/*将字串转为html格式*/
public String strToHtml(String s)
{
if (s==null||s.equals("")) return "";
s = s.replaceAll("", "");
s = s.replaceAll("", "");
s = s.replaceAll("", "");
s = s.replaceAll(" ", " ");
// s = s.replaceAll("/n", "br/");
// s = s.replaceAll("'", "'");
return s;
}
/*将html格式转为字串*/
public String strToHtml(String s)
{
if (s==null||s.equals("")) return "";
s = s.replaceAll("","");
s = s.replaceAll("","");
s = s.replaceAll("","");
s = s.replaceAll(" "," ");
//s = s.replaceAll("br/","/n");
//s = s.replaceAll("'","'");
return s;
}
最后一点:jQuery的.html()方法默认会转义的,这种情况使用.text()就不会转义了。
discuz换行问题
后台 论坛管理 板块中
默认设置有点问题。我调整了一下就行了。
关于快速回复换行问题
解决方法:
1.后台 论坛管理 板块中 关闭允许使用html代码
为了是以前的帖子不乱码 可以使用sql语句开启下以前帖子的html代码使用
2.后台 系统工具 数据库升级:
UPDATE `cdb_posts` SET `htmlon` = '1'
这是所有帖子开启使用html代码的sql,只针对已经发布的帖子
操作前请备份!!
include/newreply.inc.php
查找
$pinvisible = $modnewreplies ? -2 : 0;
在其上面或下面,添加
$message = preg_replace("/\\n/is","BR /",$message);
html html 代码 、smilies 、discuz! 代码、
代码 分别是什么意思
html 代码网页的源代码,从菜单栏里的查看就能察看此网页的源代码,就是html代码了
smilies应该是像QQ里面不是有QQ表情,像笑脸啊等的代码
DISCUZ!代码也即是所讲的UBB代码,是一种内置的代码,原理过程是将特定的代码转换成html代码,比如[b][/b]是字体加粗代码,在现实的时候是处理成html的 b/b,其实是很简单的。这种代码相对来说比较安全,如果开放html代码的话,对论坛来说会有安全问题。
IMG代码是指类似于UBB代码一样的标记。
网页发帖要视情况而定,都可以的
discuz 怎么样设置限制发重复帖
一、比如限制重复主题、重复回复的代码修改:打开 include/newreply.inc.php, 查找:$attachment = empty($attachments) ? 0 : 1;(discuz6.1的代码)$attachment = empty($attachments) ? 0 : ($imageexists ? 2 : 1);(discuz7的代码)在下面增加// ********************* 重复回帖检测 *****************************$repeatlevel = 2; // 重复回帖的验证级别,后面有详细说明。$chk_sql = "SELECT COUNT(*) FROM {$tablepre}posts WHERE ";
$chk_term = "";
switch($repeatlevel) {
case 1:
$chk_term = "subject='{$subject}'";
break;
case 2:
$chk_term = "message='{$message}'";
break;
case 3:
$chk_term = "subject='{$subject}' AND message='{$message}'";
break;
case 4:
$chk_term = "subject='{$subject}' AND message='{$message}' AND authorid='{$discuz_uid}'";
break;
}
if($chk_term) {
$chk_num = $db-result($db-query($chk_sql . $chk_term), 0);
if($chk_num 0) {
showmessage('请不要重复回帖,这很浪费资源的。请返回。');
}
}
// ********************* 重复回帖检测 ***************************** 关于回帖的重复检测级别,直接修改 $repeatlevel 参数就行了。下面是当这个变量的值为1~4的时候所代表的级别:1 - 标题与数据库里的记录一致即算重复
2 - 内容与数据库里的记录一致即算重复
3 - 内容、标题与数据库里的记录都一致算重复
4 - 内容、标题、用户名与数据库里的记录都一致算重复备注:上述代码据Linker测试验证,有着很大的弊端,在回复时会有大量的等待现象,可以得知是在遍历数据库查询,因此对于发贴和回复量比较大的论坛,Linker不建议采用这些办法来限制主题与回复的重复。二、限制回复中文:修改include/newreply.inc.php找到 $author = empty($isanonymous) ? $discuz_user : '';在其下一行加入:if(preg_match_all("/[\xB0-\xF7][\xA1-\xFE]/",$message,$regs)=3) showmessage("请输入4个中文以上!");这个方法,Linker在采用,速度显示很快,并且限制了诸如连续字母、连续数字、连续符号等输入,从而促进会员的主动回复。三、还有一个限制主题与回复重复的方法,Linker没有具体测试,看代码,似乎也是遍历数据库查询的办法,也有可能造成回复的迟钝延时,但据discuz论坛网友说明,是付费获得的方法,有需要的朋友可以具体测试一下:1,修改include/newreply.inc.php找到$author = empty($isanonymous) ? $discuz_user : '';在其下一行加入 if($subject$db-result_first("SELECT * FROM `{$tablepre}posts` WHERE `subject` LIKE '$subject' limit 0,1")) showmessage("scriptalert('标题与已有标题重复!');history.go(-1)/script");
if($db-result_first("SELECT * FROM `{$tablepre}posts` WHERE `message` LIKE '$message' limit 0,1")) showmessage("scriptalert('内容与已有内容重复!');history.go(-1)/script");
2,修改include/newthread.inc.php找到$db-query("INSERT INTO {$tablepre}threads (fid, readperm, price, iconid, typeid, author, authorid, subject, dateline, lastpost, lastposter, displayorder, digest, special, attachment, subscribed, moderated)
VALUES ('$fid', '$readperm', '$price', '$iconid', '$typeid', '$author', '$discuz_uid', '$subject', '$timestamp', '$timestamp', '$author', '$displayorder', '$digest', '$special', '$attachment', '$subscribed', '$moderated')");在其上一行加入if($db-result_first("SELECT * FROM `{$tablepre}threads` WHERE `subject` LIKE '$subject' limit 0,1")) showmessage("scriptalert('标题与已有标题重复!');history.go(-1)/script");四、连续回帖自动改为在上面一楼追加【实用·长帖自动不追加·版块黑白名单】,测试discuz7有效。//连续回复自动合并$_insertword = "\n\n$discuz_userss 于 ".date("$dateformat $timeformat",
$timestamp)." 补充以下内容\n\n";//追加内容前缀$_maxlength = 80;//字符数大于此值则一律不合并,注意1中文=2字符(GBK)或3字符(UTF)$_reducesmile = 1;//设为1=去除表情之后计算字数,0=否$_reducequote = 1;//设为1=去除引用之后计算字数,0=否$_reducespace = 1;//设为1=去除空白换行之后计算字数,0=否$_blackfids = array(18);//版块FID黑名单,此名单内不进行合并$_whitefids = array();//版块FID白名单,此名单内进行合并,黑白名单同时存在时白名单
无效//设置部分结束if($_blackfids $_whitefids) unset($_whitefids);$temp = $message;if(is_array($smilies))if($_reducesmile) foreach($smilies as $sm) {$temp = str_replace($sm['code'], '', $temp);}if($_reducequote) $temp = preg_replace("/\s*\[quote\][\n\r]*(.+?)[\n\r]
*\[\/quote\]\s*/is", '', $temp);if($_reducespace) $temp = preg_replace("/\s/is", '', $temp);$temp = trim($temp);$length = strlen($temp);unset($temp);if($length = $_maxlength (!$_blackfids || !in_array($fid, $_blackfids))
(!$_whitefids || in_array($fid, $_whitefids))) {$q = $db-query("SELECT authorid, pid FROM {$tablepre}posts WHERE
tid='$tid' ORDER BY pid DESC LIMIT 1");$q = $db-fetch_array($q);if($q['authorid'] == $discuz_uid !$attachment !$isanonymous) {$message = $_insertword . $message;$db-query("UPDATE {$tablepre}posts SET smileyoff = 0,
bbcodeoff = 0, message = CONCAT(message, '$message') WHERE pid='{$q['pid']}'");showmessage('post_reply_succeed', "viewthread.php?
tid=$tidpid={$q[pid]}page=".(@ceil(($thread['special'] ? $thread['replies'] :
$thread['replies'] + 1) / $ppp))."extra=$extra#pid{$q[pid]}");
}
}//连续回复自动合并上述代码本来还有管理组不受限的功能,Linker觉得无此必要,管理组也不能特殊嘛,有需要的朋友,去discuz论坛搜索。OK,有了这些,Linker觉得,已经方便很多了,但另一方面,Linker同时也告诫大家,论坛是要发挥会员的主动热情的,限制过多,不便过甚,反而会使人气大降,这样就得不偿失了,有一位朋友说得好,这些问题,其实可以由加大版主管理力量来解决的。