其他分享
首页 > 其他分享> > nopcommerce笔记:后台菜单中添加新菜单项

nopcommerce笔记:后台菜单中添加新菜单项

作者:互联网

1、修改数据表PermissionRecord
首先需要在数据表PermissionRecord 中添加新的记录;
后台页面会根据该数据表中的记录进行显示,供管理员为不同的角色进行访问配置。

2、修改文件sitemap.config
 sitemap.config位于Presentation\Nop.Admin\下;
根据自己需要,可以在对应目录下添加所需项。

<siteMapNode title="Catalog"nopResource="Admin.Catalog"PermissionNames="ManageProducts,ManageCategories,ManageManufacturers,ManageProductReviews,ManageProductTags,ManageCheckTickets,ManageProductPromote,ManageAttributes"ImageUrl="~/Administration/Content/images/ico-catalog.png"
>

           <siteMapNode title="Categories"nopResource="Admin.Catalog.Categories"PermissionNames="ManageCategories" >

               <siteMapNode title="List" nopResource="Admin.Common.List"controller="Category" action="List"/>

               <siteMapNode title="Tree view"nopResource="Admin.Common.Treeview" controller="Category"action="Tree"/>

           </siteMapNode>

           <siteMapNode title="Manufacturers" nopResource="Admin.Catalog.Manufacturers"PermissionNames="ManageManufacturers"controller="Manufacturer" action="List"/>

           <siteMapNode title="Products"nopResource="Admin.Catalog.Products"PermissionNames="ManageProducts,ManageProductReviews,ManageProductTags,ManageCheckTickets,ManageProductPromote">

             <siteMapNode title="Manage products"nopResource="Admin.Catalog.Products.Manage"PermissionNames="ManageProducts" controller="Product"action="List"/>

                                 <siteMapNode title="Bulk edit products"nopResource="Admin.Catalog.BulkEdit"PermissionNames="ManageProducts" controller="Product"action="BulkEdit"/>

             <siteMapNode title="Product reviews"nopResource="Admin.Catalog.ProductReviews"PermissionNames="ManageProductReviews" controller="ProductReview"action="List"/>

             <siteMapNode title="Product tags"nopResource="Admin.Catalog.ProductTags"PermissionNames="ManageProductTags" controller="Product"action="ProductTags"/>

             <siteMapNode title="Product Promote" nopResource="门票推广"PermissionNames="ManageProductPromote" controller="Product"action="ManageProductPromote"/>

             <siteMapNode title="Low stock report"nopResource="Admin.Catalog.LowStockReport"PermissionNames="ManageProducts" controller="Product"action="LowStockReport"/>

           </siteMapNode>

           <siteMapNode title="Attributes"nopResource="Admin.Catalog.Attributes"PermissionNames="ManageAttributes">

             <siteMapNode title="Products attributes"nopResource="Admin.Catalog.Attributes.ProductAttributes"controller="ProductAttribute" action="List"/>

             <siteMapNode title="Specification attributes"nopResource="Admin.Catalog.Attributes.SpecificationAttributes"controller="SpecificationAttribute" action="List"/>

             <siteMapNode title="Checkout attributes"nopResource="Admin.Catalog.Attributes.CheckoutAttributes"controller="CheckoutAttribute" action="List"/>

           </siteMapNode>

       </siteMapNode> 
比如我添加了 ManageProductPromote对应的菜单项。
注意:有三个地方用到了ManageProductPromote 。
还得注意此处的action:ManageProductPromot.必须得有相应的action与其对应。在ProductController中需要有对应的函数ManageProductPromot,该函数有相应的视图文件,其命名一般得写为ManageProductPromot.cshtml。对于从ManageProductPromot中有事件处理时,返回到另一个函数中。如果视图中使用了list来显示数据,则在cshtml文件中绑定数据的地方设置:

.DataBinding(dataBinding=> dataBinding.Ajax().Select("ManageProductPromotBinding", "Product"))

3、修改文件StandardPermissionProvider.cs
该文件位于Nop.Services\Security\下;
首先需要定义:
public static readonly PermissionRecord ManageProductPromot = newPermissionRecord { Name = "Admin area. Manage Product Promot",SystemName = "ManageProductPromot", Category = "Catalog"}; 
然后在函数public virtualIEnumerable<DefaultPermissionRecord> GetDefaultPermissions()中将ManageProductPromot  添加到对应的角色中。一般管理员中必须添加,其他角色可在此添加,也可在后台管理时添加。

到此,后台产品目录下就会出现门票推广的菜单。
接下来就需要根据需求对该菜单对应的页面进行设计。

标签:菜单,PermissionRecord,数据表,添加,nopcommerce,后台,菜单项,ManageProductPromot,对应
来源: https://www.cnblogs.com/Alex80/p/15813094.html