xiunoBBS后台插件排序方法--启用的排前面

码农天地 -
xiunoBBS后台插件排序方法--启用的排前面
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

特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

php介绍

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

Tags 标签

bbsphp

扩展阅读

加个好友,技术交流

1628738909466805.jpg