public static function get_plugins(&$conf, $force = 0) { // 缓存结果 static $plugins = array(); if (!empty($plugins) && !$force) { return $plugins; } if (empty($conf['plugin_path'])) { return array(); } $path = $conf['plugin_path']; if (!is_dir($path)) { return array(); } $settingfile = $conf['upload_path'] . 'plugin.json'; $setting = is_file($settingfile) ? (array) core::json_decode(file_get_contents($settingfile)) : array(); $arr = self::get_paths($path); foreach ($arr as $v) { $conffile = $path . $v . '/conf.php'; $pconf = is_file($conffile) ? (array) (include $conffile) : array(); !isset($pconf['enable']) && ($pconf['enable'] = isset($setting[$v]['enable']) ? $setting[$v]['enable'] : 0); !isset($pconf['installed']) && ($pconf['installed'] = isset($setting[$v]['installed']) ? $setting[$v]['installed'] : 0); !isset($pconf['pluginid']) && ($pconf['pluginid'] = isset($setting[$v]['pluginid']) ? $setting[$v]['pluginid'] : 0); !isset($pconf['rank']) && ($pconf['rank'] = isset($setting[$v]['rank']) ? $setting[$v]['rank'] : 100); // 按照正序排序 $plugins[$v] = $pconf; } //第二次根据 rank 排序 misc::arrlist_multisort($plugins, 'rank'); return $plugins; }