插件菜單
插件菜單指通過(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"]
}
}
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"]。
站點菜單
如上圖所示,紅框部分的菜單即插件配置出來的站點菜單,根據需要可以包含或者不包含下級菜單。
爲插件添加站點菜單需要對(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
}
}
}
}
}
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:菜單排序數值,數值越小菜單排序越前。
系統菜單
如上圖所示,紅框部分的菜單即插件配置出來的系統菜單,根據需要可以包含或者不包含下級菜單。
系統菜單與站點菜單的不同在于系統菜單不會(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
}
}
}
}
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"]。
内容菜單
如上圖所示,紅框部分的菜單即插件配置出來的内容菜單。
爲插件添加内容菜單需要對(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
}
}
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)如下圖所示: