Discuz!如何显示用户名字谢谢了,大神帮忙啊

Discuz!如何显示用户名字谢谢了,大神帮忙啊,第1张

Discuz 在发帖或者回帖的时候,默认是显示用户的“用户名”的,这里的用户名就是用户注册的时候使用的用户名,是唯一的。但是很多用户进了论坛之后都会弄一个比较个性的昵称,看到发帖或者回帖的时候自己费尽心构思的昵称居然不会显示在醒目的地方,就很没有归属感,觉得自己“好像不存在”了一样,很不爽。所以我想要实现在用户发帖或者回帖的时候,如果用户自定义了昵称就显示昵称,否则就显示注册的用户名。 Discuz 本身没有这个设定功能(我用的是Discuz 6)。为了解决这个问题,我google了一下,结果发现很多Discuz的用户都想解决这个问题,也有人到官方反应的,不过结果很无奈,这么个小功能貌似一直没有添加。不过好在有人提供了一些思路,我转贴一下,好让更多需要的人google到。 注:修改 Discuz 之前请确保你了解一些PHP编程知识并知道自己在干什么。 原帖地址 首先,打开 include/globalfuncphp ,在里面添加下面的一个函数: 1 2 3 4 5 6 7 8 9 function getnickname($uid) { global $db, $tablepre; $nickname = ''; $query = $db->query("SELECT nickname from {$tablepre}memberfields where uid= '{$uid}' LIMIT 1"); if($memnick = $db->fetch_array($query)) $nickname = $memnick['nickname']; return $nickname; } 然后打开 include/newreplyincphp ,找到 1 $author = empty($isanonymous) $discuz_user : ''; 替换成: 1 2 3 4 5 6 7 8 if($nickname = getnickname($discuz_uid)) { $author = empty($isanonymous) $nickname : ''; } else { $author = empty($isanonymous) $discuz_user : ''; } 然后查找文件中的文本: 1 '$discuz_user' // 注意两边的单引号,这样是为了找到sql语句中引用到的 $discuz_user变量 替换成: 1 '$author' 接下来打开 include/newthreadincphp ,找到: 1 $author = !$isanonymous $discuz_user : ''; 替换成: 1 2 3 4 5 6 7 8 if($nickname = getnickname($discuz_uid)) { $author = !$isanonymous $nickname : ''; } else { $author = !$isanonymous $discuz_user : ''; } 然后查找文件中的文本: 1 '$discuz_user' // 注意两边的单引号,这样是为了找到sql语句中引用到的 $discuz_user变量 替换成: 1 '$author' 这样咱们的工作就告一段落了,不过这只能保证改动代码之后用户发的帖子和恢复都会优先显示自定义的昵称,没有昵称才会显示用户名。之前的信息怎么办呢?我看了一下,最需要处理的应该就是帖子列表中的“作者”一栏,其它的比如“最近回复”都会逐渐被后面的新发布的信息顶下去,所以不用关心。这样的话一条 SQL 语句就可以了,假设你的 discuz 安装的时候使用的数据库表的前缀是 “cdb_”, SQL 语句就可以这样写: 1 UPDATE cdb_threads AS A, cdb_memberfields AS B SET Aauthor=Bnickname WHERE Aauthorid=Buid AND Bnickname!=''; 搞定。希望对那些需要的人有帮助。如果 Discuz 的开发人员看到篇日志,希望可以在以后添加这个小功能。 BTW,越来越发现 Hack 是一种态度,“甭管什么东西,只要让我看一段时间的源码,我就能修改成想要的样子”——这样子写程序才有意思。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Discuz!如何显示用户名字谢谢了,大神帮忙啊

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情