软件技术disucz论坛限制发帖标题的最小最大长度,使用discuz7及以下版本

米花 发表 于:8年前 浏览量:182
当一些用户发布帖子的时候 标题要是超过了80个字符超出的部分被剪切掉了,特别是一些用户发送一些英文或其他其语言的文章的时候标题说甚至会超过180个字符,又特别论坛编码是UTF-8格式,因为一个字占3个字节,所以标题最长也就26个汉字,很多用户想修改这个80个字符的限制。

  disucz帖子的标题是长度极限是80个字,中文和英文都是一样的。这个长度应该说够用了,但很多人有不同的需要,discuz不可能控制这么细,因此要控制发帖的最小标题长度或者增加80字的极限长度就要修改程序。
  
  1.限制发帖标题的最小长度
  
  可能有的用户发贴子标题只是习惯用一两个字,或很短不能表达帖子在意思,这对搜索引擎优化是不利的,对于用户体验和discuz的seo也不好。限制发帖标题的最小长度,需要修改后台检测函数就可以了,可能对discuz seo也有好处:
  
  打开include/post.func.php文件:global $subject, $message, $disablepostctrl, $minpostsize, $maxpostsize;
  
  if(strlen($subject) > 80 ) { //把这两行替换为如下:
  
  global $subject, $message, $disablepostctrl, $minpostsize, $maxpostsize, $action;
  
  if(strlen($subject)>80 || ($action=='newthread' && strlen($subject)<8) ){
  
  复制代码这时还要注意,当标题过短时的提示还是标题过长超过字数限制,还要修改语言包的提示
  
  打开templates/default/messages.lang.php,找到post_subject_toolong
  
  将后面的提示修改为:标题字数应在 8-80 之间,请返回修改标题长度
  
  注意:不改改变这个文件的字符编码,否则会造成显示乱码。
  
  2.加大discuz标题长度
  
  这个真不知道为什么还要加长,可是有人需要过。方法除了像1.一样修改程序中的限制和提示信息,还要修改数据库中字段的长度,否则也存不下自然就丢弃了。
  
  修改数据表字段长度,主题表:cdb_threads,帖子表:cdb_posts
  
  对它们分别执行:ALTER TABLE [上面两个表的名字] MODIFY subject varchar(200);
  
  注意:操作前要备份数据库;红字根据需要修改。
本文由 米花发表。转载请注明出处:https://www.mihua.net/list/0/3206.html

发表评论

您的昵称:

猜你喜欢

最近更新