Archive for the ‘Discuz!’ Category

家园相册flash进行批量上传功能的分析

2011年9月30日

最近在做的一个工具需要有批量图片上传功能,所以就分析了一下家园中flash批量上传功能,以便给自己的模块添加这个功能。
批量上传flash的页面的url是

  1. home.php?mod=spacecp&ac=upload&op=flash&albumid=0

通过URL分析到,我们要找的代码在 home_spacecp.php 中,我们看到在这个文件最后一行,把ac这个参数作为名称包含了一个include文件,ac参数的值是 upload ,所以我们要找的文件是 spacecp_upload.php (更多…)

有关Discuz!升级到X系列后,用户自定义字段数据处理的方法

2011年9月26日

之前的Discuz!升级X系列,并没有对用户自定义字段数据做处理。由于使用用户

自定义字段的网站并不太多,且处理自定义字段有碍于原本的代码框架,所以下

面给出解决方法是自行修改代码,很简单。 (更多…)

Discuz! X2关联链接bug

2011年9月5日

查了下代码,common_extra.js文件,29~387行,这里关联链接的关键字判断有问题,好像只处理了正文文本中第一个<br />之前的内容了,后面的都不做处理了;
relatedid[j] = 1;后,下一个<br />之前的的内容就不处理,因为if条件里进行了!relatedid[j]判断。
举个例子,后台设置关联链接词为:
1、电脑
2、电脑配件
3、笔记本
发帖内容为:
放到范德萨的萨芬电脑fdsalkj
街坊地块垃圾啊是否快乐电脑配件
房间打扫房了笔记本 (更多…)

后台文件校验工具原理

2011年8月31日

最近很多站点打了0817的补丁,出现页面500错误,或这漏出源代码。虽然不都是文件不完整造成的,但也有一部分是这样的。
有些站点修改过文件,或ftp工具上传过程中文件上传的不完整,就出现了这样那样的问题,找不到根源,还以为设置的问题。
如果站点出现所谓的乱码即漏出源码,或者不明原因空白了,第一个应该想到的就是文件校验,这个功能我发现很多人不用。如果站长自己不懂代码,更没改过源码,如果出现上述问题,那就得必须校验文件,因为你没动过,理论上是源文件完整的,如果校验出问题,哪些文件修改过,或丢失,传完整的文件覆盖都能解决问题。
我们看看文件校验工具如何工作的: (更多…)

Discuz!X2伪静态规则简介

2011年8月31日

伪静态在对于站点来说,一是有利于对搜索引擎SEO优化,尤其是站点经过多次调整,部分URL已经失效,再一个可以把对外的URL进行规范化,也利于站点的安全。
Discuz! X2后台 SEO 设置中,只需站长选择要进行拟静态的项目,然后查看对应规则,添加到服务器即可,很方便。但有些站长对默认规则不太满足,还需进行优化,修改。那么,就Discuz! X2的伪静态规则进行一下讲解,本例基于Apache的,其它版本再续。
首先看看Discuz! X2全部项目的拟静态规则,拿虚拟主机举例: (更多…)

Discuz!服务器的CDN问题

2011年8月24日

有不少站都用了CDN方式优化网站访问速度,在缓存的同时,对于一些Discuz!本身需要实时读取数据的应用模块来说,就会出现问题,已知的,有头像上传失败,改不了头像,上传10%后卡在那里,论坛和UCenter通信类的,如果采用节点方式访问,会造成域名读取解析有误。目前暂无解决办法。

Discuz!附件扩展名的问题

2011年8月18日

站长在后台设置附件类型时,有时将字母大写,如png写成PNG,那么程序判断时
$allowext = str_replace(‘ ‘, ”, strtolower($_G[‘forum’][‘attachextensions’]));
做了strtolower(强制小写)处理,那么,当用户上传附件的扩展名为大写时,就会出错了,大家注意下就行。

Discuz!论坛数据库编码从latin1转换到gbk

2011年8月18日

1. 论坛装的比较早了,当时用的是 mysql 4 ,编码为 latin1
2. 由于后来的屡次升级,bbs 版本为 7.0 了,自然也用到了 Ucenter ,编码也是 latin1
3. 现在要装一个 UCHome , 安装的时候提示 Ucenter 编码不一致。请下载 latin1 版本的 UCHome .

想法和尝试如下:

1. 用mysqldump导出了,然后替换DEFAULT CHARSET为 gbk 。
这个方法可行,但这个数据库比较大,替换。。。还是放弃。
2. 打开 PMA ,修改表的整理为 gbk ,也失败了,我记得成功过的。。。。可能记错了,就是能用也不推荐,这样需要修改好多好多的字段,累死。。。
3. 看到bbs 后台 有一个强制字符,天真的选了 utf8 导出,然后做了一个 utf8 的论坛把数据导入,还是乱的,失败。但是奇怪的是 supesite 这样导出完全没有问题
4. 受到上面的启发,发现安照默认导出的sql文件是 ansi 编码的,而我需要的是gbk版本,文件保存格式也是 ansi 的,那么只要在导出的时候把修改一下导出生成 DEFAULT CHARSET 就好了。
by 圣帅

移动帖子时的URL调转

2011年8月12日

Discuz!X2系列去掉了移动帖子后URL跟着跳到对应帖子的页面,这对有些用惯了其它版本的人来说,确实有些不爽,我稍微改了一下。访问论坛

if((in_array('delete', $operations) || in_array('move', $operations)) && !strpos($_SERVER['HTTP_REFERER'], 'search.php?mod=forum')) {
$_G['referer'] = 'forum.php?mod=forumdisplay&fid='.$_G['fid'].(!empty($_G['gp_listextra']) ? '&'.rawurldecode($_G['gp_listextra']) : '');
} else {
$_G['referer'] = $_G['gp_redirect'];
}

 

改成

 

if(in_array('delete', $operations) && !strpos($_SERVER['HTTP_REFERER'], 'search.php?mod=forum')) {
$_G['referer'] = 'forum.php?mod=forumdisplay&fid='.$_G['fid'].(!empty($_G['gp_listextra']) ? '&'.rawurldecode($_G['gp_listextra']) : '');
} elseif(in_array('move', $operations)){
$_G['referer'] = $_G['gp_redirect'];
} else{
$_G['referer'] = $_G['gp_redirect'];
}

随笔

2011年8月10日

工作一年了,有个很不错的同事辞职了,移民新西兰。不错,挺羡慕人家的。前晚大伙在一起吃,谈谈心,聊聊理想。他和我当时来北京的心思完全一样,也有个不安分的心。马上就30出头了,再不出去就来不及了,我曾经也是这个借口。其实只是厌烦了眼前的一切,不愿再面对每天的繁琐事儿。出去总是好事,希望他一切顺利,过上自己理想的生活方式。我呢,接手了他走后留下的一些工作,继续努力,加油!
附一张他的照片。

零风

零风