You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
abp/docs/en/Modules/Cms-Kit/Menus.md

88 lines
2.3 KiB

# CMS Kit: Pages
CMS Kit Menu system allows to manage public menus dynamically.
## The User Interface
### Menu items
CMS Kit module admin side adds the following items to the main menu, under the *CMS* menu item:
* **Menus**: Menu management page.
`CmsKitAdminMenus` class has the constants for the menu item names.
### Menus
#### Menu Management
Menus page is used to manage dynamic public menus in the system.
![cms-kit-menus-page](../../images/cmskit-module-menus-page.png)
Created menus will be visible on public site.
![cms-kit-public-menus](../../images//cmskit-module-menus-public.png)
# Internals
## Domain Layer
#### Aggregates
This module follows the [Entity Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Entities) guide.
##### Menus
- `MenuItem` (aggregate root): A Menu Item presents a single node at menu tree.
#### Repositories
This module follows the [Repository Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Repositories) guide.
Following custom repositories are defined for this feature:
- `IMenuItemRepository`
#### Domain services
This module follows the [Domain Services Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Domain-Services) guide.
##### Menu Item Manager
`MenuItemManager` is used to perform some operations for the `MenuItemManager` aggregate root.
### Application layer
#### Application services
- `MenuItemAdminAppService` (implements `IMenuItemAdminAppService`): Implements the management operations of menu system.
- `MenuItemPublicAppService` (implements `IMenuItemPublicAppService`): Implements the public use cases of menu system.
### Database providers
#### Common
##### Table / collection prefix & schema
All tables/collections use the `Cms` prefix by default. Set static properties on the `CmsKitDbProperties` class if you need to change the table prefix or set a schema name (if supported by your database provider).
##### Connection string
This module uses `CmsKit` for the connection string name. If you don't define a connection string with this name, it fallbacks to the `Default` connection string.
See the [connection strings](https://docs.abp.io/en/abp/latest/Connection-Strings) documentation for details.
#### Entity Framework Core
##### Tables
- CmsMenuItems
#### MongoDB
##### Collections
- CmsMenuItems