Chinaunix首页 | 论坛 | 博客
  • 博客访问: 308465
  • 博文数量: 65
  • 博客积分: 2570
  • 博客等级: 少校
  • 技术积分: 730
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 14:04
个人简介

苦逼房奴一枚

文章分类

全部博文(65)

文章存档

2017年(19)

2016年(5)

2013年(6)

2012年(1)

2011年(3)

2009年(5)

2008年(26)

我的朋友

分类: LINUX

2009-11-23 13:04:21

文章为转载,转载地址
 
 

首先,打开 include/global.func.php ,在里面添加下面的一个函数:

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/newreply.inc.php ,找到

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/newthread.inc.php ,找到:

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 A.author=B.nickname WHERE A.authorid=B.uid AND B.nickname!='';
 
阅读(5619) | 评论(0) | 转发(0) |
0

上一篇:NFS文档

下一篇:android文件系统分析

给主人留下些什么吧!~~