Plugin (inherits BasePlugin and IWidgetPlugin)
public void GetDisplayWidgetRoute(string widgetZone, out string actionName, out string controllerName, out RouteValueDictionary routeValues)
{
actionName = "PublicInfo";
controllerName = "WidgetsAhsenSlider";
routeValues = new RouteValueDictionary()
{
{"Namespaces", "Nop.Plugin.Widgets.AhsenSlider.Controllers"},
{"area", null},
{"widgetZone", widgetZone}
};
}
public IList<string> GetWidgetZones()
{
return new List<string>() { "home_page_slider" };
}
RouteProvider:
public void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute("Plugin.Widgets.AhsenSlider.PublicInfo",
"Plugins/WidgetsAhsenSlider/PublicInfo",
new { controller = "WidgetAhsenSlider", action = "PublicInfo" },
new[] { "Nop.Plugin.Widgets.AhsenSlider.Controllers" }
);
}
Controller:
[ChildActionOnly]
public ActionResult PublicInfo(string widgetZone)
{
List<SliderModel> allModels = this.GetAllSliderModels();
return View(PUBLIC_INFO_VIEW, allModels);
}
View:
View is there.
Home Page:
@Html.Widget("home_page_slider")