diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ar.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ar.json index 6b608eb8bd..362d596d48 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ar.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ar.json @@ -15,6 +15,7 @@ "CmsKit.Ratings": "التقييمات", "CmsKit.Reactions": "تفاعلات", "CmsKit.Tags": "العلامات", + "CmsKit.MarkedItems": "العناصر المميزة", "CmsKit:0002": "المحتوى موجود بالفعل!", "CmsKit:0003": "الكيان {0} غير قابل للعلامة.", "CmsKit:Blog:0001": "slug المحدد ({Slug}) موجود بالفعل!", diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json index 5719eceb27..877679dd22 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json @@ -15,6 +15,7 @@ "CmsKit.Ratings": "Ratings", "CmsKit.Reactions": "Reactions", "CmsKit.Tags": "Tags", + "CmsKit.MarkedItems": "Marked Items", "CmsKit:0002": "Content already exists!", "CmsKit:0003": "The entity {0} is not taggable.", "CmsKit:Blog:0001": "The given slug ({Slug}) already exists!", diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/DefaultBlogFeatureProvider.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/DefaultBlogFeatureProvider.cs index b24e992cf3..dc74bd5ad6 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/DefaultBlogFeatureProvider.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/DefaultBlogFeatureProvider.cs @@ -16,6 +16,7 @@ public class DefaultBlogFeatureProvider : IDefaultBlogFeatureProvider, ITransien new BlogFeature(blogId, ReactionsFeature.Name), new BlogFeature(blogId, RatingsFeature.Name), new BlogFeature(blogId, TagsFeature.Name), + new BlogFeature(blogId, MarkedItemsFeature.Name), new BlogFeature(blogId, BlogPostScrollIndexFeature.Name), new BlogFeature(blogId, BlogConsts.PreventXssFeatureName) }); diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/Index.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/Index.cshtml index f2c40a647e..da75b92190 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/Index.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/Index.cshtml @@ -14,7 +14,7 @@ @{ const string dummyImageSource = "/cms-kit/dummy-placeholder-320x180.png"; - var isMarkedItemFeatureEnabled = GlobalFeatureManager.Instance.IsEnabled(); + var isMarkedItemFeatureEnabled = GlobalFeatureManager.Instance.IsEnabled() && Model.MarkedItemsFeature?.IsEnabled == true; } @section styles { diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/Index.cshtml.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/Index.cshtml.cs index 4375f93a40..ada15afe51 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/Index.cshtml.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/Index.cshtml.cs @@ -1,9 +1,13 @@ using System; +using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Volo.Abp.Application.Dtos; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Pagination; +using Volo.Abp.GlobalFeatures; +using Volo.CmsKit.Blogs; using Volo.CmsKit.Contents; +using Volo.CmsKit.GlobalFeatures; using Volo.CmsKit.Public.Blogs; using Volo.CmsKit.Users; @@ -35,12 +39,17 @@ public class IndexModel : CmsKitPublicPageModelBase public CmsUserDto SelectedAuthor { get; protected set; } public string FilteredTagName { get; protected set; } + public BlogFeatureDto MarkedItemsFeature { get; private set; } protected IBlogPostPublicAppService BlogPostPublicAppService { get; } + public IBlogFeatureAppService BlogFeatureAppService { get; } - public IndexModel(IBlogPostPublicAppService blogPostPublicAppService) + public IndexModel( + IBlogPostPublicAppService blogPostPublicAppService, + IBlogFeatureAppService blogFeatureAppService) { BlogPostPublicAppService = blogPostPublicAppService; + BlogFeatureAppService = blogFeatureAppService; } public virtual async Task OnGetAsync() @@ -66,6 +75,13 @@ public class IndexModel : CmsKitPublicPageModelBase FilteredTagName = await BlogPostPublicAppService.GetTagNameAsync(TagId.Value); } + if (GlobalFeatureManager.Instance.IsEnabled() && + Blogs.Items.Any()) + { + var blogId = Blogs.Items.First().BlogId; + MarkedItemsFeature = await BlogFeatureAppService.GetOrDefaultAsync(blogId, GlobalFeatures.MarkedItemsFeature.Name); + } + return Page(); } }