crx349 发表于 2014-7-29 11:32:07

Discuz! x3.2 添加自定义附件图标方案之一(附件图标问号解决)-案例添加apk显示图标

方案说明:Discuz!x3.2在使用是,对于未知的文件类型,直接显示问号图标,为了让站长自己的文件类型能显示正确图标,特分享以下教材。
适用版本:Discuz!x2.5-x3.2
解决流程:案例 添加apk显示图标
1.将apk图上传到目录:static\image\filetype
保存为apk.png
2.打开文件,路径为:
\source\function\function_attachment.php
3.搜索:
function attachtype($type, $returnval = 'html') {

      static $attachicons = array(
                        1 => 'unknown.gif',
                        2 => 'binary.gif',
                        3 => 'zip.gif',
                        4 => 'rar.gif',
                        5 => 'msoffice.gif',
                        6 => 'text.gif',
                        7 => 'html.gif',
                        8 => 'real.gif',
                        9 => 'av.gif',
                        10 => 'flash.gif',
                        11 => 'image.gif',
                        12 => 'pdf.gif',
                        13 => 'torrent.gif'
                );
改为:
function attachtype($type, $returnval = 'html') {

      static $attachicons = array(
                        1 => 'unknown.gif',
                        2 => 'binary.gif',
                        3 => 'zip.gif',
                        4 => 'rar.gif',
                        5 => 'msoffice.gif',
                        6 => 'text.gif',
                        7 => 'html.gif',
                        8 => 'real.gif',
                        9 => 'av.gif',
                        10 => 'flash.gif',
                        11 => 'image.gif',
                        12 => 'pdf.gif',
                        13 => 'apk.png',
                        14 => 'torrent.gif'
                );
搜索:
if(is_numeric($type)) {
                $typeid = $type;
      } else {
                if(preg_match("/bittorrent|^torrent\t/", $type)) {
                        $typeid = 13;
                } elseif(preg_match("/pdf|^pdf\t/", $type)) {
                        $typeid = 12;
                } elseif(preg_match("/image|^(jpg|gif|png|bmp)\t/", $type)) {
                        $typeid = 11;
                } elseif(preg_match("/flash|^(swf|fla|flv|swi)\t/", $type)) {
                        $typeid = 10;
                } elseif(preg_match("/audio|video|^(wav|mid|mp3|m3u|wma|asf|asx|vqf|mpg|mpeg|avi|wmv)\t/", $type)) {
                        $typeid = 9;
                } elseif(preg_match("/real|^(ra|rm|rv)\t/", $type)) {
                        $typeid = 8;
                } elseif(preg_match("/htm|^(php|js|pl|cgi|asp)\t/", $type)) {
                        $typeid = 7;
                } elseif(preg_match("/text|^(txt|rtf|wri|chm)\t/", $type)) {
                        $typeid = 6;
                } elseif(preg_match("/word|powerpoint|^(doc|ppt)\t/", $type)) {
                        $typeid = 5;
                } elseif(preg_match("/^rar\t/", $type)) {
                        $typeid = 4;
                } elseif(preg_match("/compressed|^(zip|arj|arc|cab|lzh|lha|tar|gz)\t/", $type)) {
                        $typeid = 3;
                } elseif(preg_match("/octet-stream|^(exe|com|bat|dll)\t/", $type)) {
                        $typeid = 2;
                } elseif($type) {
                        $typeid = 1;
                } else {
                        $typeid = 0;
                }
      }改为:
if(is_numeric($type)) {
                $typeid = $type;
      } else {
                if(preg_match("/bittorrent|^torrent\t/", $type)) {
                        $typeid = 14;
                } elseif(preg_match("/apk|^apk\t/", $type)) {
                        $typeid = 13;
                } elseif(preg_match("/pdf|^pdf\t/", $type)) {
                        $typeid = 12;
                } elseif(preg_match("/image|^(jpg|gif|png|bmp)\t/", $type)) {
                        $typeid = 11;
                } elseif(preg_match("/flash|^(swf|fla|flv|swi)\t/", $type)) {
                        $typeid = 10;
                } elseif(preg_match("/audio|video|^(wav|mid|mp3|m3u|wma|asf|asx|vqf|mpg|mpeg|avi|wmv)\t/", $type)) {
                        $typeid = 9;
                } elseif(preg_match("/real|^(ra|rm|rv)\t/", $type)) {
                        $typeid = 8;
                } elseif(preg_match("/htm|^(php|js|pl|cgi|asp)\t/", $type)) {
                        $typeid = 7;
                } elseif(preg_match("/text|^(txt|rtf|wri|chm)\t/", $type)) {
                        $typeid = 6;
                } elseif(preg_match("/word|powerpoint|^(doc|ppt)\t/", $type)) {
                        $typeid = 5;
                } elseif(preg_match("/^rar\t/", $type)) {
                        $typeid = 4;
                } elseif(preg_match("/compressed|^(zip|arj|arc|cab|lzh|lha|tar|gz)\t/", $type)) {
                        $typeid = 3;
                } elseif(preg_match("/octet-stream|^(exe|com|bat|dll)\t/", $type)) {
                        $typeid = 2;
                } elseif($type) {
                        $typeid = 1;
                } else {
                        $typeid = 0;
                }
      }
4.修改完成,覆盖同门文件,登陆后台,更新缓存,上传文件测试哦。
效果如下




页: [1]
查看完整版本: Discuz! x3.2 添加自定义附件图标方案之一(附件图标问号解决)-案例添加apk显示图标