插件菜單
插件菜單指通過配置文件對XYCMS後台菜單進行配置,菜單分爲(wéi / wèi)站點菜單、系統菜單、以(yǐ)及内容菜單。
插件菜單均需要(yào / yāo)設置權限,超級管理員默認擁有所有插件菜單的(de)權限,站點管理員默認擁有所有插件站點菜單以(yǐ)及内容菜單的(de)權限,普通管理員需要(yào / yāo)在(zài)XYCMS後台通過角色管理對菜單權限進行設置。
菜單權限
爲(wéi / wèi)插件添加菜單權限需要(yào / yāo)對插件 package.json 配置文件的(de) extensions -> permissions 節點進行設置,在(zài)此,我們以(yǐ)XYCMS 内容相冊插件 (opens new window)的(de)package.json (opens new window)作爲(wéi / wèi)示例說(shuō)明菜單權限的(de)配置:
"permissions": {
"photos_settings": {
"text": "圖片上(shàng)傳設置",
"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:權限的(de)唯一(yī / yì /yí)标識,可以(yǐ)任意取值,需要(yào / yāo)确保唯一(yī / yì /yí)性。
type:權限類型,type 的(de)可取值有 app(代表系統菜單權限)、web(代表站點菜單權限)、wx(代表微信站點菜單權限)、content(代表内容菜單權限),如果不(bù)設置,默認 type 的(de)取值爲(wéi / wèi) ["web","wx"]。
站點菜單
如上(shàng)圖所示,紅框部分的(de)菜單即插件配置出(chū)來(lái)的(de)站點菜單,根據需要(yào / yāo)可以(yǐ)包含或者不(bù)包含下級菜單。
爲(wéi / wèi)插件添加站點菜單需要(yào / yāo)對插件 package.json 配置文件的(de) extensions -> menus 節點進行設置,在(zài)此,我們以(yǐ)XYCMS 廣告插件 (opens new window)的(de)package.json (opens new window)作爲(wéi / wèi)示例說(shuō)明站點菜單的(de)配置:
"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:菜單的(de)唯一(yī / yì /yí)标識,可以(yǐ)任意取值,需要(yào / yāo)确保唯一(yī / yì /yí)性。
- text:菜單顯示名稱。
- iconClass:菜單左側的(de)圖标,可以(yǐ)直接使用Font Awesome (opens new window)或者ionicons (opens new window)對應的(de)Class類名稱。
- permissions:菜單對應的(de)權限集合。
- menus:下級菜單。
- link:點擊菜單後,管理界面右側區域的(de)頁面鏈接地(dì / de)址。
- order:菜單排序數值,數值越小菜單排序越前。
系統菜單
如上(shàng)圖所示,紅框部分的(de)菜單即插件配置出(chū)來(lái)的(de)系統菜單,根據需要(yào / yāo)可以(yǐ)包含或者不(bù)包含下級菜單。
系統菜單與站點菜單的(de)不(bù)同在(zài)于(yú)系統菜單不(bù)會出(chū)現在(zài)站點管理界面中,系統菜單出(chū)現的(de)位置需要(yào / yāo)單獨設置,通常是(shì)放置在(zài)插件管理主導航下。
爲(wéi / wèi)插件添加系統菜單需要(yào / yāo)對插件 package.json 配置文件的(de) extensions -> menus:MENU_ID:menus 節點進行設置(MENU_ID代表系統菜單出(chū)現的(de)上(shàng)級菜單Id,取值可以(yǐ)參考XYCMS的(de)package.json),在(zài)此,我們以(yǐ)XYCMS 數據庫管理插件 (opens new window)的(de)package.json (opens new window)作爲(wéi / wèi)示例說(shuō)明系統菜單的(de)配置:
"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
可以(yǐ)看到(dào),系統菜單的(de)配置規則與站點菜單基本一(yī / yì /yí)緻,區别在(zài)于(yú):
- menus:app_plugins_all:menus:系統菜單的(de)配置節點,app_plugins_all 用于(yú)指定系統主導航的(de)插件管理菜單Id。
- type:菜單類型,需要(yào / yāo)設置爲(wéi / wèi) ["app"],type 的(de)可取值有 app(代表系統菜單)、web(代表站點菜單)、wx(代表微信站點菜單)、content(代表内容菜單),如果不(bù)設置,默認 type 的(de)取值爲(wéi / wèi) ["web","wx"]。
内容菜單
如上(shàng)圖所示,紅框部分的(de)菜單即插件配置出(chū)來(lái)的(de)内容菜單。
爲(wéi / wèi)插件添加内容菜單需要(yào / yāo)對插件 package.json 配置文件的(de) extensions -> menus 節點進行設置,在(zài)此,我們以(yǐ) XYCMS 内容相冊插件 (opens new window)的(de) package.json (opens new window)作爲(wéi / wèi)示例說(shuō)明内容菜單的(de)配置:
"menus": {
"photos_all": {
"text": "内容相冊",
"iconClass": "ion-images",
"type": ["web", "wx"],
"permissions": [
"photos_settings",
"photos_channels_config"
],
"menus": {
"photos_settings": {
"text": "圖片上(shàng)傳設置",
"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
以(yǐ)上(shàng)配置設置了(le/liǎo)一(yī / yì /yí)個(gè)站點菜單(photos_all)和(hé / huò)一(yī / yì /yí)個(gè)内容菜單(photos_content),内容菜單的(de)配置規則與站點菜單基本一(yī / yì /yí)緻,區别在(zài)于(yú):
- type:菜單類型,需要(yào / yāo)設置爲(wéi / wèi) ["content"],type 的(de)可取值有 app(代表系統菜單)、web(代表站點菜單)、wx(代表微信站點菜單)、content(代表内容菜單),如果不(bù)設置,默認 type 的(de)取值爲(wéi / wèi) ["web","wx"]。 由于(yú)内容菜單與欄目關聯,需要(yào / yāo)對欄目開啓或關閉的(de)設置,所以(yǐ)通常包含内容菜單的(de)同時(shí)會增加一(yī / yì /yí)個(gè)站點菜單,菜單鏈接指向XYCMS系統自帶的(de)配置界面,地(dì / de)址爲(wéi / wèi) /ss-admin/plugins/config/?pluginId=插件Id,其中插件Id爲(wéi / wèi)當前插件 package.json 配置文件中 publisher.name 的(de)值,點擊後如下圖所示: