插件菜單

插件菜單指通過(guò)配置文件對(duì)XYCMS後(hòu)台菜單進(jìn)行配置,菜單分爲站點菜單、系統菜單、以及内容菜單。

插件菜單均需要設置權限,超級管理員默認擁有所有插件菜單的權限,站點管理員默認擁有所有插件站點菜單以及内容菜單的權限,普通管理員需要在XYCMS後(hòu)台通過(guò)角色管理對(duì)菜單權限進(jìn)行設置。

菜單權限

爲插件添加菜單權限需要對(duì)插件 package.json 配置文件的 extensions -> permissions 節點進(jìn)行設置,在此,我們以XYCMS 内容相冊插件 (opens new window)的package.json (opens new window)作爲示例說(shuō)明菜單權限的配置:

"permissions": {
  "photos_settings": {
    "text": "圖片上傳設置",
    "type": ["web", "wx"]
  },
  "photos_channels_config": {
    "text": "内容圖片設置",
    "type": ["web", "wx"]
  },
  "photos_content": {
    "text": "内容相冊",
    "type": ["content"]
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  • photos_settings、photos_channels_config、photos_content:權限的唯一标識,可以任意取值,需要确保唯一性。

  • type:權限類型,type 的可取值有 app(代表系統菜單權限)、web(代表站點菜單權限)、wx(代表微信站點菜單權限)、content(代表内容菜單權限),如果不設置,默認 type 的取值爲 ["web","wx"]。

站點菜單

2

如上圖所示,紅框部分的菜單即插件配置出來的站點菜單,根據需要可以包含或者不包含下級菜單。

爲插件添加站點菜單需要對(duì)插件 package.json 配置文件的 extensions -> menus 節點進(jìn)行設置,在此,我們以XYCMS 廣告插件 (opens new window)的package.json (opens new window)作爲示例說(shuō)明站點菜單的配置:

"extensions": {
    "menus": {
      "advertisement_all": {
        "text": "廣告管理",
        "iconClass": "fa fa-mouse-pointer",
        "permissions": [
          "advertisement_add",
          "advertisement_list"
        ],
        "menus": {
          "advertisement_add": {
            "text": "添加廣告",
            "link": "/ss-admin/advertisement/add/",
            "permissions": ["advertisement_add"],
            "order": 1
          },
          "advertisement_list": {
            "text": "廣告列表",
            "link": "/ss-admin/advertisement/list/",
            "permissions": ["advertisement_list"],
            "order": 2
          }
        }
      }
    }
  }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  • advertisement_all:菜單的唯一标識,可以任意取值,需要确保唯一性。
  • text:菜單顯示名稱。
  • iconClass:菜單左側的圖标,可以直接使用Font Awesome (opens new window)或者ionicons (opens new window)對(duì)應的Class類名稱。
  • permissions:菜單對(duì)應的權限集合。
  • menus:下級菜單。
  • link:點擊菜單後(hòu),管理界面(miàn)右側區域的頁面(miàn)鏈接地址。
  • order:菜單排序數值,數值越小菜單排序越前。

系統菜單

2

如上圖所示,紅框部分的菜單即插件配置出來的系統菜單,根據需要可以包含或者不包含下級菜單。

系統菜單與站點菜單的不同在于系統菜單不會(huì)出現在站點管理界面(miàn)中,系統菜單出現的位置需要單獨設置,通常是放置在插件管理主導航下。

爲插件添加系統菜單需要對(duì)插件 package.json 配置文件的 extensions -> menus:MENU_ID:menus 節點進(jìn)行設置(MENU_ID代表系統菜單出現的上級菜單Id,取值可以參考XYCMS的package.json),在此,我們以XYCMS 數據庫管理插件 (opens new window)的package.json (opens new window)作爲示例說(shuō)明系統菜單的配置:

"menus:app_plugins_all:menus": {
  "database_all": {
    "text": "數據庫管理",
    "iconClass": "fa fa-database",
    "type": ["app"],
    "permissions": [
      "database_tables",
      "database_query",
      "database_execute"
    ],
    "menus": {
      "database_tables": {
        "text": "表結構查看器",
        "link": "/ss-admin/database/tables/",
        "permissions": ["database_tables"],
        "order": 1
      },
      "database_query": {
        "text": "SQL語句查詢",
        "link": "/ss-admin/database/query/",
        "permissions": ["database_query"],
        "order": 2
      },
      "database_execute": {
        "text": "執行SQL命令",
        "link": "/ss-admin/database/execute/",
        "permissions": ["database_execute"],
        "order": 3
      }
    }
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

可以看到,系統菜單的配置規則與站點菜單基本一緻,區别在于:

  • menus:app_plugins_all:menus:系統菜單的配置節點,app_plugins_all 用于指定系統主導航的插件管理菜單Id。
  • type:菜單類型,需要設置爲 ["app"],type 的可取值有 app(代表系統菜單)、web(代表站點菜單)、wx(代表微信站點菜單)、content(代表内容菜單),如果不設置,默認 type 的取值爲 ["web","wx"]。

内容菜單

2

如上圖所示,紅框部分的菜單即插件配置出來的内容菜單。

爲插件添加内容菜單需要對(duì)插件 package.json 配置文件的 extensions -> menus 節點進(jìn)行設置,在此,我們以 XYCMS 内容相冊插件 (opens new window)的 package.json (opens new window)作爲示例說(shuō)明内容菜單的配置:

"menus": {
  "photos_all": {
    "text": "内容相冊",
    "iconClass": "ion-images",
    "type": ["web", "wx"],
    "permissions": [
      "photos_settings",
      "photos_channels_config"
    ],
    "menus": {
      "photos_settings": {
        "text": "圖片上傳設置",
        "link": "/ss-admin/photos/settings/",
        "permissions": ["photos_settings"],
        "order": 1
      },
      "photos_channels_config": {
        "text": "内容圖片設置",
        "link": "/ss-admin/plugins/config/?pluginId=xycms.photos",
        "permissions": ["photos_channels_config"],
        "order": 2
      }
    }
  },
  "photos_content": {
    "text": "内容相冊",
    "type": ["content"],
    "link": "/ss-admin/photos/photos/",
    "permissions": ["photos_content"],
    "order": 1
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

以上配置設置了一個站點菜單(photos_all)和一個内容菜單(photos_content),内容菜單的配置規則與站點菜單基本一緻,區别在于:

  • type:菜單類型,需要設置爲 ["content"],type 的可取值有 app(代表系統菜單)、web(代表站點菜單)、wx(代表微信站點菜單)、content(代表内容菜單),如果不設置,默認 type 的取值爲 ["web","wx"]。 由于内容菜單與欄目關聯,需要對(duì)欄目開(kāi)啓或關閉的設置,所以通常包含内容菜單的同時(shí)會(huì)增加一個站點菜單,菜單鏈接指向(xiàng)XYCMS系統自帶的配置界面(miàn),地址爲 /ss-admin/plugins/config/?pluginId=插件Id,其中插件Id爲當前插件 package.json 配置文件中 publisher.name 的值,點擊後(hòu)如下圖所示:

2