[转]NopCommerce How to add a menu item into the administration area from a plugin

本文转自:http://docs.nopcommerce.com/display/nc/How+to+code+my+own+shipping+rate+computation+method

Go to start of metadata

 
        

In nopCommerce, administration menu is build from the Sitemap.Configuration file which is located in Nop.Admin folder.

To do the same, you can use following sample code which you need to add in your plugins’ cs file. First, implement IAdminMenuPlugin intereface in your plugin main class. Then,

?
public void ManageSiteMap(SiteMapNode rootNode)
{
     var menuItem = new SiteMapNode()
     {
         SystemName = "YourCustomSystemName" ,
         Title = "Plugin Title" ,
         ControllerName = "ControllerName" ,
         ActionName = "List" ,
         Visible = true ,
         RouteValues = new RouteValueDictionary() { { "area" , null } },
     };
     var pluginNode = rootNode.ChildNodes.FirstOrDefault(x => x.SystemName == "Third party plugins" );
     if (pluginNode != null )
         pluginNode.ChildNodes.Add(menuItem);
     else
         rootNode.ChildNodes.Add(menuItem);
}

You can also put any security (ACL) logic to this method. For example, validate whether current customer has "Manage plugins" permission.

 

In version 2.00-3.50 you should do it the following way:

?
public bool Authenticate()
     {
         return true ;
     }
  
  public  SiteMapNode BuildMenuItem() // SiteMapNode is Class in Nop.Web.Framework.Menu
     {
         var menuItemBuilder = new SiteMapNode()
        
             Title = "Title For Menu item" ,   // Title for your Custom Menu Item
             Url = "Path of action link" , // Path of the action link
             Visible = true ,
             RouteValues = new RouteValueDictionary() { { "Area" , "Admin" } }
         };
  
      var SubMenuItem = new SiteMapNode()   // add child Custom menu
         {
             Title =  "Title For Menu Chile menu item" , //   Title for your Sub Menu item
             ControllerName = "Your Controller Name" , // Your controller Name
             ActionName = "Configure" , // Action Name
             Visible = true ,
             RouteValues = new RouteValueDictionary() { { "Area" , "Admin" } },
         };
         menuItemBuilder.ChildNodes.Add(SubMenuItem);
  
  
         return menuItemBuilder;
         
     }

 

In the above code, you can find comments where you need to replace values depending on your requirements. Moreover, the above code also explains how you can add a child menu items inside main menu.

 

转载于:https://www.cnblogs.com/freeliver54/p/6226258.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值