Ejemplo n.º 1
0
        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"));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
 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;
 }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        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"));
        }
Ejemplo n.º 6
0
 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;
 }
Ejemplo n.º 7
0
        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);
            }
        }