xiunoBBS 后台插件排序方法–启用的排前面
資深大佬 : xinyana 1
xiunoBBS 后台插件默认是按照
插件路径排序,也可以理解为按照插件作者(英文缩写)排序
但是后台看起来就有点乱,找自己启用的插件要翻老半天
先上排序后的效果,有没有变清爽: 
排序方法
这个效果功能懒得开发成插件,而且几乎为必备修改,直接改源码
将文件/model/plugin.func.php第 53 行的plugin_init()函数修改为以下代码,同时增加函数array_sort()即可,完整代码如下:
// 在安装、卸载插件的时候,需要先初始化 function plugin_init() { global $plugin_srcfiles, $plugin_paths, $plugins, $official_plugins; $plugin_paths = glob(APP_PATH.'plugin/*', GLOB_ONLYDIR); if(is_array($plugin_paths)) { foreach($plugin_paths as $path) { $dir = file_name($path); $conffile = $path."/conf.json"; if(!is_file($conffile)) continue; $arr = xn_json_decode(file_get_contents($conffile)); if(empty($arr)) continue; $plugins[$dir] = $arr; // 额外的信息 $plugins[$dir]['hooks'] = array(); $hookpaths = glob(APP_PATH."plugin/$dir/hook/*.*"); // path if(is_array($hookpaths)) { foreach($hookpaths as $hookpath) { $hookname = file_name($hookpath); $plugins[$dir]['hooks'][$hookname] = $hookpath; } } // 本地 + 线上数据 $plugins[$dir] = plugin_read_by_dir($dir); } //插件排序,依赖于自定义函数 array_sort() $plugins = array_sort($plugins,'installed','desc'); $plugins = array_sort($plugins,'enable','desc'); } } //二维数组排序 function array_sort($arr,$keys,$type='asc'){ $keysvalue = $new_array = array(); foreach ($arr as $k=>$v){ $keysvalue[$k] = $v[$keys]; } if($type == 'asc'){ asort($keysvalue); }else{ arsort($keysvalue); } reset($keysvalue); foreach ($keysvalue as $k=>$v){ $new_array[$k] = $arr[$k]; } return $new_array; }
转发自: https://www.gezhong.vip/thread-29.htm
大佬有話說 (0)