兔源码网 - 专注DZ模版分享、DZ插件分享!

 找回密码
 立即注册

QQ登录

只需一步,快速开始

广告
温馨提示:本站所有DZ相关模板、插件、教程(包括DZ应用中心已下架插件、模板)所有用户可全部免费下载,无任何收费模式(不包括VIP版块非DZ资源,VIP版块需购买会员组方可下载),如本站没有您需要的插件或模板,请自行前往淘宝互站网送吗网等第三方站点搜索相关插件或模板进行低价格购买下载本站非常不建议用户浪费金钱前往DZ应用中心购买。

Discuz 主题列表页以及帖子内容页显示昵称

[复制链接]
tuyuanma 发表于 2015-7-27 10:07:33 | 显示全部楼层 |阅读模式
温馨提醒:禁止内容附带广告图片、二维码图片,否则将在不通知情况下永久禁言账号!
欢迎加入兔源码站长交流群,您的加入是我们前行的动力!

DZ站长建站交流群:493651246

[ 温馨提示:点击上方群文字,可快速加入QQ群 ]


    Discuz 在发帖或者回帖的时候,默认是显示用户的“用户名”的,这里的用户名就是用户注册的时候使用的用户名,是唯一的。但是很多用户进了论坛之后都会弄一个比较个性的昵称,看到发帖或者回帖的时候自己费尽心构思的昵称居然不会显示在醒目的地方,就很没有归属感,觉得自己“好像不存在”了一样,很不爽。所以笔者想要实现在用户发帖或者回帖的时候,如果用户自定义了昵称就显示昵称,否则就显示注册的用户名。# e$ J" {, i  e( n  x9 ^- {& R4 a9 [
     Discuz 本身没有这个设定功能(笔者用的是Discuz 6)。为了解决这个问题,笔者google了一下,结果发现很多Discuz的用户都想解决这个问题,也有人到官方反应的,不过结果很无奈,这么个小功能貌似一直没有添加。不过好在有人提供了一些思路,笔者转贴一下,好让更多需要的人google到。; \8 E! x5 s$ I' O4 I
注:修改 Discuz 之前请确保你了解一些PHP编程知识并知道自己在干什么。
% D# F) L$ C% |3 N$ u. M- s1 ]. h1 _+ J( m* Q
首先,打开
游客,如果您要查看本帖隐藏内容请回复
,在里面添加下面的一个函数:
   
  1. <span style="font-family: Verdana, 'Microsoft YaHei', Tahoma, Simsun, sans-serif; font-size: 15px; line-height: 25.328125px;">function getnickname($uid){</span>3 u9 E5 B/ w' O' h& _2 l
  2. <span style="font-family: Verdana, 'Microsoft YaHei', Tahoma, Simsun, sans-serif; font-size: 15px; line-height: 25.328125px;">global $db, $tablepre; $nickname = '';</span>
    ; V" b# V+ _5 G/ m
  3. <span style="font-family: Verdana, 'Microsoft YaHei', Tahoma, Simsun, sans-serif; font-size: 15px; line-height: 25.328125px;">$query = $db->query("SELECT nickname from {$tablepre}memberfields where uid= '{$uid}' LIMIT 1");</span><span style="font-family: Verdana, 'Microsoft YaHei', Tahoma, Simsun, sans-serif; font-size: 15px; line-height: 25.328125px;"> </span>
    8 F% L% ^# o; V/ ]
  4. <span style="font-family: Verdana, 'Microsoft YaHei', Tahoma, Simsun, sans-serif; font-size: 15px; line-height: 25.328125px;">if($memnick = $db->fetch_array($query)) $nickname = $memnick['nickname'];</span><span style="font-family: Verdana, 'Microsoft YaHei', Tahoma, Simsun, sans-serif; font-size: 15px; line-height: 25.328125px;"> </span>' q0 t) Y) ]# r4 a3 e- H0 m  j
  5. <span style="font-family: Verdana, 'Microsoft YaHei', Tahoma, Simsun, sans-serif; font-size: 15px; line-height: 25.328125px;">return $nickname;</span><span style="font-family: Verdana, 'Microsoft YaHei', Tahoma, Simsun, sans-serif; font-size: 15px; line-height: 25.328125px;"> </span>
    * B& q7 X: Y/ h  P& h4 E7 V
  6. <span style="font-family: Verdana, 'Microsoft YaHei', Tahoma, Simsun, sans-serif; font-size: 15px; line-height: 25.328125px;">}</span>
复制代码
然后打开
游客,如果您要查看本帖隐藏内容请回复
,找到
  
/ H: ?/ [( g4 ~, N, P: x5 S
  1. $author = empty($isanonymous) ? $discuz_user : '';
复制代码
替换成:
  1. <span style="font-family: Verdana, 'Microsoft YaHei', Tahoma, Simsun, sans-serif; font-size: 15px; line-height: 25.328125px;">if($nickname = getnickname($discuz_uid)) {</span>0 A. I  e6 J6 X1 Z" R- T/ E
  2. <span style="font-family: Verdana, 'Microsoft YaHei', Tahoma, Simsun, sans-serif; font-size: 15px; line-height: 25.328125px;">$author = empty($isanonymous) ? $nickname : '';</span>
    8 A7 r3 }( k! Y
  3. <span style="font-family: Verdana, 'Microsoft YaHei', Tahoma, Simsun, sans-serif; font-size: 15px; line-height: 25.328125px;">} else {</span><span style="font-family: Verdana, 'Microsoft YaHei', Tahoma, Simsun, sans-serif; font-size: 15px; line-height: 25.328125px;"> </span>, ~6 F- \+ o6 h6 m8 y1 W# o& v* P
  4. <span style="font-family: Verdana, 'Microsoft YaHei', Tahoma, Simsun, sans-serif; font-size: 15px; line-height: 25.328125px;">$author = empty($isanonymous) ? $discuz_user : '';</span>3 u, b5 v7 t8 Q3 X! U
  5. <span style="font-family: Verdana, 'Microsoft YaHei', Tahoma, Simsun, sans-serif; font-size: 15px; line-height: 25.328125px;">}</span>
复制代码
然后查找文件中的文本:
4 r* a: K  T$ r# d" P1 j: w; L4 d- X7 e6 |' h

( m1 U, i0 l* {' G/ r3 @2 U'$discuz_user' // 注意两边的单引号,这样是为了找到sql语句中引用到的 $discuz_user变量+ }) @4 n6 t9 `4 b5 }) `5 c
替换成:  n1 u" h0 W1 U2 w7 G) s5 _
'$author'' k/ ^) h# a% I' D8 m
接下来打开
  1. include/newthread.inc.php
复制代码
,找到:

$ e0 e$ N3 ]2 n. ]$ h
  1. $author = !$isanonymous ? $discuz_user : '';
复制代码
替换成:  
  1. <span style="font-family: Verdana, 'Microsoft YaHei', Tahoma, Simsun, sans-serif; font-size: 15px; line-height: 25.328125px;">if($nickname = getnickname($discuz_uid)) {</span>
    ) y6 N1 u2 b) t' L( f; S6 x5 B
  2. <span style="font-family: Verdana, 'Microsoft YaHei', Tahoma, Simsun, sans-serif; font-size: 15px; line-height: 25.328125px;">$author = !$isanonymous ? $nickname : '';</span><span style="font-family: Verdana, 'Microsoft YaHei', Tahoma, Simsun, sans-serif; font-size: 15px; line-height: 25.328125px;"> </span>
    ! c7 O) O; i- {2 u4 ~
  3. <span style="font-family: Verdana, 'Microsoft YaHei', Tahoma, Simsun, sans-serif; font-size: 15px; line-height: 25.328125px;">} else {</span><span style="font-family: Verdana, 'Microsoft YaHei', Tahoma, Simsun, sans-serif; font-size: 15px; line-height: 25.328125px;"> </span>
    # W$ Q, n* T% _, J
  4. <span style="font-family: Verdana, 'Microsoft YaHei', Tahoma, Simsun, sans-serif; font-size: 15px; line-height: 25.328125px;">$author = !$isanonymous ? $discuz_user : '';</span>
    " P* q1 E5 F/ y2 u; S+ Y5 T4 [
  5. <span style="font-family: Verdana, 'Microsoft YaHei', Tahoma, Simsun, sans-serif; font-size: 15px; line-height: 25.328125px;">}</span>
复制代码
然后查找文件中的文本:0 d* l6 _; _9 s$ [* N0 ]/ v& z
'$discuz_user' // 注意两边的单引号,这样是为了找到sql语句中引用到的 $discuz_user变量+ u; i* d' B8 u+ k) F  q+ y% A. U
替换成:
" I* S+ V( b$ [6 O' {'$author'
4 D' q8 w/ ?4 j! P2 N! O" _) [这样咱们的工作就告一段落了,不过这只能保证改动代码之后用户发的帖子和恢复都会优先显示自定义的昵称,没有昵称才会显示用户名。之前的信息怎么办呢?我看了一下,最需要处理的应该就是帖子列表中的“作者”一栏,其它的比如“最近回复”都会逐渐被后面的新发布的信息顶下去,所以不用关心。这样的话一条 SQL 语句就可以了,假设你的 discuz 安装的时候使用的数据库表的前缀是 “cdb_”, SQL 语句就可以这样写:5 {, _4 Y! I9 e7 `. b: ?2 z( v
UPDATE cdb_threads AS A, cdb_memberfields AS B SET A.author=B.nickname WHERE A.authorid=B.uid AND B.nickname!='';
+ j5 p1 [7 p7 z0 \  ?0 m/ Y

版权声明
1、转摘或引用本站内容资源须注明原网址,并标明本站网址(兔源码www.tuyuanma.com);
2、对于转摘或引用本站内容资源而引起的民事纠纷、行政处罚或其他损失,本站不承担责任;
3、对于不遵守本声明或其他违法、恶意使用本站内容者,本站保留其追究法律责任的权利。




she 发表于 2016-4-26 11:19:06 | 显示全部楼层
温馨提醒:禁止内容附带广告图片、二维码图片,否则将在不通知情况下永久禁言账号!
回复 支持 反对

使用道具 举报

自动排版 | 高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广告

兔源码网 ( 赣ICP备17001544号 公网安备36112102000036号 )

兔源码 QQ交流群:493651246  GMT+8, 2019-12-14 22:12
←站长统计工具 查看密码:tuyuanma

兔源码DZ模板下载 站长邮箱:tuyuanma@qq.com 站长QQ:3197813386 网站地图

© 2001-2013 本站内容皆来自互联网及用户分享,如需删除请提供软著或商标证书。

     
快速回复 返回顶部 返回列表