ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-01-17 13:31:39  阅读:155  来源: 互联网

标签:菜单 PermissionRecord 数据表 添加 nopcommerce 后台 菜单项 ManageProductPromot 对应


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有