success('获取成功', $data); } // 查看 public function index() { $params['page'] = $this->request->param('page', 1); $params['limit'] = $this->request->param('limit', 10); $params['category_id'] = $this->request->param('category_id', 0); $url = Config::get('plugin.apiUrl') . '/plugins/index'; $data = json_decode(Http::get($url, $params), true)['data']; $installed = Config::get('plugin.installed'); foreach ($data['data'] as $k => $datum) { if ($installed && in_array($datum['alias'], $installed)) { $data['data'][$k]['installed'] = 1; $pluginInfo = PluginsServiceFacade::getPluginInfo($datum['alias']); if (isset($pluginInfo['version'])) { $version = $pluginInfo['version']; } else { $version = '1.0.0'; } $data['data'][$k]['version'] = $version; } else { $data['data'][$k]['installed'] = 2; } } return $this->success('获取成功', $data); } // 离线安装 - 所有的离线安装都是覆盖安装 public function offLineInstall() { if (PluginsServiceFacade::offLineInstall()) { return $this->success('安装成功'); } else { return $this->error(PluginsServiceFacade::getError()); } } // 卸载 public function uninstall() { $plugin = $this->request->param('plugin'); $info = PluginsServiceFacade::getPluginInfo($plugin); if (PluginsServiceFacade::unInstall($plugin)) { $pluginConf = Config::get('plugin'); foreach($pluginConf['installed'] as $k=>$installed){ if($installed === $plugin) unset($pluginConf['installed'][$k]); } $pluginConf['installed'] = array_unique($pluginConf['installed']); sort($pluginConf['installed']); if(isset($info['is_editor']) && $info['is_editor']){ foreach($pluginConf['installedEditor'] as $k=>$installedEditor){ if($installedEditor === $plugin) unset($pluginConf['installedEditor'][$k]); } $pluginConf['installedEditor'] = array_unique($pluginConf['installedEditor']); sort($pluginConf['installedEditor']); // 如果根目录下有相应的html文件,将文件内容进行替换 $htmlFile = root_path() . 'public/admin/' . $plugin . '.html'; if(is_file($htmlFile)){ file_put_contents($htmlFile, '

请先到插件市场安装' . $plugin . '编辑器。

注意:安装或卸载编辑器后,需要清空浏览器缓存才能生效

'); } } return $this->success($plugin . '插件卸载成功', [ 'pluginConf' => $pluginConf, 'info' => $info ]); } else { return $this->error(PluginsServiceFacade::getError()); } } // 安装 public function install() { $plugin = $this->request->param('plugin'); $laytpGwToken = $this->request->param('laytpGwToken'); if (PluginsServiceFacade::install($plugin, $laytpGwToken)) { // 如果是文件存储,插件安装信息,刚安装完成马上要取出来,取出来的不会是最新的文件内容 $pluginConf = Config::get('plugin'); $pluginConf['installed'][] = $plugin; $pluginConf['installed'] = array_unique($pluginConf['installed']); sort($pluginConf['installed']); $info = PluginsServiceFacade::getPluginInfo($plugin); if(isset($info['is_editor']) && $info['is_editor']){ $pluginConf['installedEditor'][] = $plugin; $pluginConf['installedEditor'] = array_unique($pluginConf['installedEditor']); sort($pluginConf['installedEditor']); } return $this->success($plugin . '插件安装成功', [ 'pluginConf' => $pluginConf ]); } else { $error = PluginsServiceFacade::getError(); return $this->error($error['msg'], $error['code']); } } }