protected WidgetModel PrepareWidgetModel(Widget widget) { var widgetPlugin = _widgetService.LoadWidgetPluginBySystemName(widget.PluginSystemName); if (widgetPlugin == null || !widgetPlugin.PluginDescriptor.Installed) return null; //don't throw an exception. Maybe, plugin widget was deleted. var model = new WidgetModel() { Id = widget.Id, WidgetZoneId = widget.WidgetZoneId, WidgetZoneName = widget.WidgetZone.GetLocalizedEnum(_localizationService, _workContext), PluginFriendlyName = widgetPlugin.PluginDescriptor.FriendlyName, DisplayOrder = widget.DisplayOrder, }; return model; }
public ActionResult WidgetUpdate(WidgetModel model, GridCommand command) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageWidgets)) return AccessDeniedView(); var widget = _widgetService.LoadWidgetBySystemName(model.SystemName); if (widget.IsWidgetActive(_widgetSettings)) { if (!model.IsActive) { //mark as disabled _widgetSettings.ActiveWidgetSystemNames.Remove(widget.PluginDescriptor.SystemName); _settingService.SaveSetting(_widgetSettings); } } else { if (model.IsActive) { //mark as active _widgetSettings.ActiveWidgetSystemNames.Add(widget.PluginDescriptor.SystemName); _settingService.SaveSetting(_widgetSettings); } } var pluginDescriptor = widget.PluginDescriptor; //display order pluginDescriptor.DisplayOrder = model.DisplayOrder; PluginFileParser.SavePluginDescriptionFile(pluginDescriptor); //reset plugin cache _pluginFinder.ReloadPlugins(); return List(command); }