public ActionResult Configure(ConfigurationModel model) { if (!this._permissionService.Authorize(StandardPermissionProvider.ManagePlugins)) { return(RedirectToAction("AccessDenied", "Security", new { pageUrl = Microsoft.AspNetCore.Http.Extensions.UriHelper.GetDisplayUrl(Request) })); } var activeStoreScopeConfiguration = this.GetActiveStoreScopeConfiguration(_storeService, _workContext); ProductCommentsSetting settings = this._settingService.LoadSetting <ProductCommentsSetting>(activeStoreScopeConfiguration); settings.EnablePlugin = model.EnablePlugin; settings.ProductCommentsMustBeApproved = model.ProductCommentsMustBeApproved; settings.AllowAnonymousUsersToCommentProduct = model.AllowAnonymousUsersToCommentProduct; this._settingService.SaveSettingOverridablePerStore(settings, t => t.EnablePlugin, model.EnablePlugin_OverrideForStore, activeStoreScopeConfiguration, false); this._settingService.SaveSettingOverridablePerStore(settings, t => t.ProductCommentsMustBeApproved, model.ProductCommentsMustBeApproved_OverrideForStore, activeStoreScopeConfiguration, false); this._settingService.SaveSettingOverridablePerStore(settings, t => t.AllowAnonymousUsersToCommentProduct, model.AllowAnonymousUsersToCommentProduct_OverrideForStore, activeStoreScopeConfiguration, false); this._settingService.ClearCache(); this.SuccessNotification(this._localizationService.GetResource("Admin.Configuration.Updated"), true); return(base.RedirectToAction("Configure")); }
public ActionResult Configure() { if (!this._permissionService.Authorize(StandardPermissionProvider.ManagePlugins)) { return(RedirectToAction("AccessDenied", "Security", new { pageUrl = Microsoft.AspNetCore.Http.Extensions.UriHelper.GetDisplayUrl(Request) })); } var activeStoreScopeConfiguration = this.GetActiveStoreScopeConfiguration(_storeService, _workContext); ProductCommentsSetting settings = this._settingService.LoadSetting <ProductCommentsSetting>(activeStoreScopeConfiguration); ConfigurationModel model = new ConfigurationModel { EnablePlugin = settings.EnablePlugin, ProductCommentsMustBeApproved = settings.ProductCommentsMustBeApproved, AllowAnonymousUsersToCommentProduct = settings.AllowAnonymousUsersToCommentProduct }; if (activeStoreScopeConfiguration > 0) { model.EnablePlugin_OverrideForStore = this._settingService.SettingExists(settings, t => t.EnablePlugin, activeStoreScopeConfiguration); model.ProductCommentsMustBeApproved_OverrideForStore = this._settingService.SettingExists(settings, t => t.ProductCommentsMustBeApproved, activeStoreScopeConfiguration); model.AllowAnonymousUsersToCommentProduct_OverrideForStore = this._settingService.SettingExists(settings, t => t.AllowAnonymousUsersToCommentProduct, activeStoreScopeConfiguration); } return(base.View("~/Plugins/Resanehlab.ProductComments/Views/Admin/Configure.cshtml", model)); }
public ProductCommentsController(IPermissionService permissionService, IProductService productService, IProductCommentService productCommentService, IWorkContext workContext, ProductCommentsSetting productCommentsSetting, ILocalizationService localizationService, IDateTimeHelper dateTimeHelper, IStoreContext storeContext, CustomerSettings customerSettings, ICustomerService customerService, IUrlRecordService urlRecordService, IProductCommentModelFactory productCommentModelFactory) { this._permissionService = permissionService; this._productService = productService; this._productCommentService = productCommentService; this._workContext = workContext; this._productCommentsSetting = productCommentsSetting; this._localizationService = localizationService; this._dateTimeHelper = dateTimeHelper; this._storeContext = storeContext; this._customerSettings = customerSettings; this._customerService = customerService; this._urlRecordService = urlRecordService; this._productCommentModelFactory = productCommentModelFactory; }
public ActionResult Configure() { if (!this._permissionService.Authorize(StandardPermissionProvider.ManagePlugins)) { return(new HttpUnauthorizedResult()); } int activeStoreScopeConfiguration = this.GetActiveStoreScopeConfiguration(this._storeService, this._workContext); ProductCommentsSetting settings = this._settingService.LoadSetting <ProductCommentsSetting>(activeStoreScopeConfiguration); ConfigurationModel model = new ConfigurationModel { EnablePlugin = settings.EnablePlugin, ProductCommentsMustBeApproved = settings.ProductCommentsMustBeApproved, AllowAnonymousUsersToCommentProduct = settings.AllowAnonymousUsersToCommentProduct }; if (activeStoreScopeConfiguration > 0) { model.EnablePlugin_OverrideForStore = this._settingService.SettingExists(settings, t => t.EnablePlugin, activeStoreScopeConfiguration); model.ProductCommentsMustBeApproved_OverrideForStore = this._settingService.SettingExists(settings, t => t.ProductCommentsMustBeApproved, activeStoreScopeConfiguration); model.AllowAnonymousUsersToCommentProduct_OverrideForStore = this._settingService.SettingExists(settings, t => t.AllowAnonymousUsersToCommentProduct, activeStoreScopeConfiguration); } return(base.View("~/Plugins/Resanehlab.ProductComments/Views/Admin/Configure.cshtml", model)); }
public ActionResult Configure(ConfigurationModel model) { if (!this._permissionService.Authorize(StandardPermissionProvider.ManagePlugins)) { return(new HttpUnauthorizedResult()); } int activeStoreScopeConfiguration = this.GetActiveStoreScopeConfiguration(this._storeService, this._workContext); ProductCommentsSetting settings = this._settingService.LoadSetting <ProductCommentsSetting>(activeStoreScopeConfiguration); settings.EnablePlugin = model.EnablePlugin; settings.ProductCommentsMustBeApproved = model.ProductCommentsMustBeApproved; settings.AllowAnonymousUsersToCommentProduct = model.AllowAnonymousUsersToCommentProduct; if (model.EnablePlugin_OverrideForStore || activeStoreScopeConfiguration == 0) { _settingService.SaveSetting(settings, x => x.EnablePlugin, activeStoreScopeConfiguration, false); } if (model.EnablePlugin_OverrideForStore || activeStoreScopeConfiguration == 0) { _settingService.SaveSetting(settings, x => x.ProductCommentsMustBeApproved, activeStoreScopeConfiguration, false); } if (model.EnablePlugin_OverrideForStore || activeStoreScopeConfiguration == 0) { _settingService.SaveSetting(settings, x => x.AllowAnonymousUsersToCommentProduct, activeStoreScopeConfiguration, false); } this._settingService.ClearCache(); this.SuccessNotification(this._localizationService.GetResource("Admin.Configuration.Updated"), true); return(base.RedirectToAction("Configure")); }
public ProductCommentsViewComponents(IProductService productService, IProductCommentService productCommentService, IWorkContext workContext, ProductCommentsSetting productCommentsSetting, IProductCommentModelFactory productCommentModelFactory, ILocalizationService localizationService) { this._productService = productService; this._productCommentService = productCommentService; this._workContext = workContext; this._productCommentsSetting = productCommentsSetting; this._productCommentModelFactory = productCommentModelFactory; this._localizationService = localizationService; }
public override void Install() { try { #region Settings ProductCommentsSetting productCommentsSetting = new ProductCommentsSetting() { EnablePlugin = true, ProductCommentsMustBeApproved = true, AllowAnonymousUsersToCommentProduct = true }; this._settingService.SaveSetting(productCommentsSetting); _widgetSettings.ActiveWidgetSystemNames.Add("Resanehlab.ProductComments"); _settingService.SaveSetting(_widgetSettings); #endregion #region Localization Resources _localizationService.AddOrUpdatePluginLocaleResource("Comments.SeeAfterApproving", "Your question will be shown after admin approval.", null); _localizationService.AddOrUpdatePluginLocaleResource("Comments.SuccessfullyAdded", "Your question has been saved successfully.", null); _localizationService.AddOrUpdatePluginLocaleResource( "Comments.OnlyRegisteredUsersCanWriteComments", "Only registered customers can insert questions.", null); _localizationService.AddOrUpdatePluginLocaleResource("Comments.Helpfulness.OnlyRegistered", "Only registered customers can rate questions.", null); _localizationService.AddOrUpdatePluginLocaleResource("Comments.Helpfulness.YourOwnComment", "You can't rate your own questions.", null); _localizationService.AddOrUpdatePluginLocaleResource("Comments.Helpfulness.SuccessfullyVoted", "Your rate has been submited.", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ResanehlabProductComments.Fields.Enable.Plugin", "Active", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ResanehlabProductComments.Fields.ProductCommentsMustBeApproved", "Questions must be approved by the admin.", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ResanehlabProductComments.Fields.AllowAnonymousUsersToCommentProduct", "Guest customers can ask question.", null); _localizationService.AddOrUpdatePluginLocaleResource("Comments.Fields.CommentText", "Question", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ProductComments", "Product Q&A Plugin", null); _localizationService.AddOrUpdatePluginLocaleResource("Resanehlab.Plugin.Products.ProductComments.Configuration", "Settings", null); _localizationService.AddOrUpdatePluginLocaleResource("Comments.Write", "Ask your questions", null); _localizationService.AddOrUpdatePluginLocaleResource("Comments.Helpfulness.WasHelpful?", "Is this helpful?", null); _localizationService.AddOrUpdatePluginLocaleResource("Comments.SubmitButton", "Asking question", null); _localizationService.AddOrUpdatePluginLocaleResource("Comments.ExistingComments", "Asked questions", null); _localizationService.AddOrUpdatePluginLocaleResource("Comments.From", "From", null); _localizationService.AddOrUpdatePluginLocaleResource("Comments.Date", "Date", null); _localizationService.AddOrUpdatePluginLocaleResource("Comments.Fields.CommentText.Required", "Text is required", null); _localizationService.AddOrUpdatePluginLocaleResource("Resanehlab.Plugin.Products.ProductComments", "Product Q&A Plugin", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ResanehlabProductComments.List.SearchCommentText", "Question text", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ResanehlabProductComments.List.SearchIsApprovedId", "Approved", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ResanehlabProductComments.List.SearchVisitedId", "Reviewed", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ProductComments.Comments", "Questions", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ResanehlabProductComments.List.SearchIsApproved.All", "All", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ResanehlabProductComments.List.SearchIsApproved.ApprovedOnly", "Only approved", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ResanehlabProductComments.List.SearchIsApproved.NotApprovedOnly", "Only not approved", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ResanehlabProductComments.List.SearchVisited.All", "All", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ResanehlabProductComments.List.SearchVisited.VisitedOnly", "Only reviewed", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ResanehlabProductComments.List.SearchVisited.NotVisitedOnly", "Only not reviewed", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ResanehlabProductComments.Fields.CommentText", "Question text", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ResanehlabProductComments.Fields.ReplyText", "Reply", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ResanehlabProductComments.Fields.IsApproved", "Approved", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ResanehlabProductComments.Fields.Visited", "Reviewed", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ResanehlabProductComments.Fields.CreatedOn", "Creation date", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ResanehlabProductComments.Comments.Updated", "The question has been updated successfully.", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ResanehlabProductComments.Comments.Deleted", "The question has been deleted successfully.", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ProductComments.EditCommentDetails", "Edit question", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ProductComments.BackToList", "Back to question list", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ProductComments.Info", "Info", null); _localizationService.AddOrUpdatePluginLocaleResource("Resanehlab.Plugin.Products.ProductComments.ManageComments", "Manage questions", null); _localizationService.AddOrUpdatePluginLocaleResource("Comment.Reply", "Reply", null); _localizationService.AddOrUpdatePluginLocaleResource("Resanehlab.Plugin.Products.ProductComments.Admin.ClickToConfigure", "In order to configure this plugin click here or go to Plugins => Product Q&A plugin => Settings.", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ResanehlabProductComments.List.SearchProductName", "Product name", null); _localizationService.AddOrUpdatePluginLocaleResource("Admin.Plugin.ResanehlabProductComments.Fields.ProductName", "Product name", null); #endregion this._objectContext.Install(); base.Install(); } catch (Exception exception) { throw new NopException(exception.Message); } }