插件菜單

插件菜單指通過配置文件對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"]
  }
}
1
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"]。

站點菜單

2

如上(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
          }
        }
      }
    }
  }
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:菜單的(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:菜單排序數值,數值越小菜單排序越前。

系統菜單

2

如上(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
      }
    }
  }
}
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ǐ)看到(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"]。

内容菜單

2

如上(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
  }
}
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)值,點擊後如下圖所示:

2