This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
package controllers
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"github.com/phachon/mm-wiki/app/models"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type PluginController struct {
|
||||
BaseController
|
||||
}
|
||||
|
||||
func (this *PluginController) List() {
|
||||
|
||||
page, _ := this.GetInt("page", 1)
|
||||
keyword := strings.TrimSpace(this.GetString("keyword", ""))
|
||||
number, _ := this.GetRangeInt("number", 20, 10, 100)
|
||||
limit := (page - 1) * number
|
||||
|
||||
var err error
|
||||
var count int64
|
||||
var plugins []map[string]string
|
||||
if keyword != "" {
|
||||
count, err = models.PluginModel.CountPluginsByKeyword(keyword)
|
||||
plugins, err = models.PluginModel.GetPluginsByKeywordAndLimit(keyword, limit, number)
|
||||
} else {
|
||||
count, err = models.PluginModel.CountPlugins()
|
||||
plugins, err = models.PluginModel.GetPluginsByLimit(limit, number)
|
||||
}
|
||||
if err != nil {
|
||||
this.ErrorLog("获取插件列表失败: " + err.Error())
|
||||
this.ViewError("获取插件列表失败", "/system/main/index")
|
||||
}
|
||||
|
||||
this.Data["plugins"] = plugins
|
||||
this.Data["keyword"] = keyword
|
||||
this.SetPaginator(number, count)
|
||||
this.viewLayout("plugin/list", "plugin")
|
||||
}
|
||||
|
||||
func (this *PluginController) Config() {
|
||||
|
||||
pluginId := this.GetString("plugin_id", "")
|
||||
if pluginId == "" {
|
||||
this.ViewError("参数错误", "/system/plugin/list")
|
||||
}
|
||||
|
||||
plugin, err := models.PluginModel.GetPluginByPluginId(pluginId)
|
||||
if err != nil {
|
||||
this.ErrorLog("查找插件错误:" + err.Error())
|
||||
this.ViewError("查找插件错误", "/system/plugin/list")
|
||||
}
|
||||
if len(plugin) == 0 {
|
||||
this.ViewError("插件不存在", "/system/plugin/list")
|
||||
}
|
||||
pluginKey, ok := plugin["plugin_key"]
|
||||
if !ok || pluginKey == "" {
|
||||
this.ViewError("插件数据不完整 Key 不存在", "/system/plugin/list")
|
||||
}
|
||||
configValue := make(map[string]string)
|
||||
configValueStr, ok := plugin["conf_value"]
|
||||
if ok && configValueStr != "" {
|
||||
json.Unmarshal([]byte(configValueStr), &configValue)
|
||||
}
|
||||
// 根据不同的插件,显示不同的配置页面
|
||||
this.Data["plugin_config"] = configValue
|
||||
this.Data["plugin"] = plugin
|
||||
this.viewLayout("plugin/"+pluginKey, "plugin")
|
||||
}
|
||||
|
||||
func (this *PluginController) ConfigModify() {
|
||||
|
||||
pluginId := this.GetString("plugin_id", "")
|
||||
confValue := this.GetString("conf_value", "")
|
||||
if pluginId == "" {
|
||||
this.jsonError("参数错误")
|
||||
}
|
||||
if confValue == "" {
|
||||
this.jsonError("配置参数为空")
|
||||
}
|
||||
|
||||
plugin, err := models.PluginModel.GetPluginByPluginId(pluginId)
|
||||
if err != nil {
|
||||
this.ErrorLog("查找插件错误:" + err.Error())
|
||||
this.jsonError("查找插件错误")
|
||||
}
|
||||
if len(plugin) == 0 {
|
||||
this.jsonError("插件不存在")
|
||||
}
|
||||
|
||||
// 更新插件
|
||||
_, err = models.PluginModel.UpdateConfValueByPluginId(pluginId, confValue)
|
||||
if err != nil {
|
||||
this.ErrorLog("修改插件配置错误:" + err.Error())
|
||||
this.jsonError("修改插件配置失败")
|
||||
}
|
||||
this.jsonSuccess("修改插件配置成功", nil, "/system/plugin/list")
|
||||
}
|
||||
Reference in New Issue
Block a user