因为我论坛的附件有很多格式,官方的只能显示为一个大问号,于是我搜索到了这篇帖子
http://www.discuz.net/forum.php?mod=viewthread&tid=2242852 (感谢该作者的贡献)
使用上面这篇帖子达到的效果是,如果你的附件后缀对应的图标在后台没有,就会显示为一个红叉叉,不会自动显示为unknown.gif,因为我们不能保证会员上传的所有附件后缀都已经有对应的图标上传,所以就想自己想办法再次修改,没学过php的我花了半天终于搞定了,效果如下:
第一个框上的图标我后台没有上传对应的图标,显示为unknown.gif,我把官方的unknown.gif换成了一个好看点的(非必须,所有图标都在 static\image\filetype下面,下同)
第二个框上的是DZ自带的
第三个框上的就是我自己定义的了
不知道有没有需要的,我只想分享一下我的经验,便于帮到需要的人,谢谢!
===================================================
1、找到 source\function\function_attachment.php文件,复制一份备份起来
2、打开该文件,把第59-63- } elseif($type) {
- $typeid = 1;
- } else {
- $typeid = 0;
- }
复制代码
替换为下面的代码:
- } elseif($type) {
- $RootDir = $_SERVER['DOCUMENT_ROOT'];
- //下面两处.jpg可以自己改为其他格式
- $fileDir = "$RootDir/static/image/filetype/".trim($type).".jpg";
- if(file_exists($fileDir))
- {
- $typeid = 0;
- $attachicons[0] = $type.".jpg";
- }
- else
- {
- $typeid = 1;
- }
- } else {
- $typeid = 1;
- }
复制代码 然后保存该文件并上传到服务器替换原文件就可以了。
这段代码的主要意思是:
当DZ查找要用那个图片作为附件图标的时候,如果在第59行前面找到了,就直接确定了,这些代码不被执行;
如果没有找到,没改之前 typeid就变成了1,也就是第17行的unknown.gif图标,改过了之后就先获得这个附件的后缀,比如后缀为 123,那么就在filetype里面查找有没有 123.jpg (图片格式可以自己改,gif我觉得质量损失太严重,就改成了jpg),如果找到了,就用它,找不到就用unknown.gif(也就是typeid=1),这样就避免了我上面贴的那个帖子会出现红叉叉的问题
因此,如果你需要增加一个自定义的后缀图标只要改好了这个文件之后,在filetype文件夹里面上传你要的附件图标就行,这个图标的命名格式就是 附件后缀.图片格式 如 docx.jpg
如果你想修改DZ自带的图标,一种可以直接上传DZ定义的文件图标覆盖原图标,另一种就是删掉对应行的判断语句,然后上传新的后缀.格式 图标文件到服务器就好了,比如我就把office文件的图标由一个图标变成了 ppt word excel access四种图标,下面是我修改的那个php文件,实在不会改就用我的吧。
用我的需要上传下面这几个office对应的图标到你的后台,要不然office的图标就是默认的unkown.gif了,还有我用的是jpg格式,你不改的话也要确保自定义的图标为JPG格式,自带的gif还可以正常使用。
附件下载:
Discuz! X2 自定义【修改,添加】附件图标.zip
(5.08 KB, 下载次数: 15)
|
上一篇: Discuz X2 超炫作品展示幻灯片DIY下载下一篇: Discuz X2 签名进度条_GBK_UTF8_20110705
|