本篇文章给大家谈谈discuzlast,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、discuz 怎么样设置限制发重复帖
- 2、discuz论坛帖子打开自动跳转到帖子底部怎么修改
- 3、求问discuz如何去掉#lastpost动态链接,实现搜索引擎优化
- 4、Discuz论坛页如何去掉最后发表
- 5、Discuz!7.0.0论坛 点击最后回复的时间
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同时也告诫大家,论坛是要发挥会员的主动热情的,限制过多,不便过甚,反而会使人气大降,这样就得不偿失了,有一位朋友说得好,这些问题,其实可以由加大版主管理力量来解决的。
discuz论坛帖子打开自动跳转到帖子底部怎么修改
这个discuz本来就是这个原理,下面那里调用的是最后回复,链接自然打开到最后了,如果不需要的话,可以打开template\模板所在文件夹\forum\discuz.htm,搜索#lastpost,去掉即可!
求问discuz如何去掉#lastpost动态链接,实现搜索引擎优化
方法是到你正在使用的模板的目录小下找“discuz.htm”如果没有到默认目录下找templates/default/discuz.htm用编辑器打开,注意不要用windows自带的记事本搜索“lastpost ”来到此处(约第67行): p{echo cutstr($forum[lastpost][subject], 30)}/p将其中的 “”修改为 再向下搜索来到此处(约第97行):p{lang forum_lastpost}: a href=”redirect.php?tid=$forum[lastpost][tid]goto=lastpost#lastpost” title=”{echo cutstr($forum[lastpost][subject], 30)} {lang forum_lastpost_by} {if $forum['lastpost']['author']}$forum['lastpost']['authorusername']{else}{lang anonymous}{/if} “$forum[lastpost][dateline]同上,将其中的 ""修改为 修改完后,dz论坛首页的最好发表链接就变成类似“thread-xxx-1-1.html”这样的静态url形式了
Discuz论坛页如何去掉最后发表
修改文件(此修改方式为默认模板)
template/default/forum/forumdisplay_list.htm
查找
td class="52jcs5940-2b00-442b-d86e by"{lang lastpost}/td
约45行
修改为(不要全删,删除变量就行,不然会错位)
td class="52jcs2b00-442b-d86e-2b74 by"/td
搜索
cite!--{if $thread['lastposter']}--
以下内容全部删除
cite!--{if $thread['lastposter']}--a href="{if $thread[digest] != -2}home.php?mod=spaceusername=$thread[lastposterenc]{else}forum.php?mod=viewthreadtid=$thread[tid]page={echo max(1, $thread[pages]);}{/if}" c="1"$thread[lastposter]/a!--{else}--$_G[setting][anonymoustext]!--{/if}--/cite
ema href="{if $thread[digest] != -2 !$thread[ordertype]}forum.php?mod=redirecttid=$thread[tid]goto=lastpost$highlight#lastpost{else}forum.php?mod=viewthreadtid=$thread[tid]{if !$thread[ordertype]}page={echo max(1, $thread[pages]);}{/if}{/if}"$thread[lastpost]/a/em
保存,后台更新缓存。
Discuz!7.0.0论坛 点击最后回复的时间
在默认情况下,首页“最后发表”那个URL是这样的动态URL
/redirect.php?tid=274goto=lastpost#lastpost
这样的效果并不好,如果你论坛已经做了伪静态,想修改成thread-274-1-1.html这样的形式,请做如下修改
打开templates/default/目录下的discuz.htm
找到两处
redirect.php?tid=$forum[lastpost][tid]goto=lastpost#lastpost
discuzlast的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、discuzlast的信息别忘了在本站进行查找喔。