discuz论坛安装以后显示不完整是什么原因呢?

discuz论坛安装以后显示不完整是什么原因呢?,第1张

1有可能是浏览器设置的问题,用其他浏览器或者其他电脑试试

2有可能是部分安装文件的权限的问题,linux下拷贝安装文件的时候记得保留解压后的安装包下的各文件的初始权限,可以该用户组到 web服务器用户名下

重新安装可以解决。

首先Apache+PHP+MySQL环境的配置,这里就不在赘述了,主要讲解如何配置discuz,先下载discuz安装包,可以到comsenz官网下载,下载得到安装包,解压成文件夹,打开文件夹,看到有一个upload的文件夹,将里面的文件剪切到外面来,然后将upload文件夹删掉,然后启动Apache服务器(前提是你已经搭建好了Apache+PHP+MySQL)的环境,这里讲的是环境已经搭建好的,不然discuz在本地是跑不起来的。默认选择全新安装,如果你以前没有安装过discuz其他版本的话,然后下一步,填写好相关数据库信息,下一步,正在安装,稍等片刻,点击“您的论坛已完成安装,点此访问”,进去就是论坛首页了,证明discuz安装成功。

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条评论

发表评论

提供最优质的资源集合

立即查看 了解详情