diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Contents/Helper.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Contents/Helper.cs new file mode 100644 index 0000000000..3d653e2351 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Contents/Helper.cs @@ -0,0 +1,23 @@ +using System.Collections.Generic; +using System.Dynamic; + +namespace Volo.CmsKit.Web.Contents; + +public static class Helper +{ + public static dynamic ConvertToDynamicObject(this Dictionary dict) + { + var eo = new ExpandoObject(); + var eoColl = (ICollection>)eo; + + foreach (var kvp in dict) + { + eoColl.Add(kvp); + } + + dynamic eoDynamic = eo; + + return eoDynamic; + } +} + diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/BlogPost.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/BlogPost.cshtml index b7ead0592a..f104551911 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/BlogPost.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/BlogPost.cshtml @@ -12,6 +12,8 @@ @using Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Tags @using Volo.CmsKit.Public.Web.Renderers @using Volo.Abp.AspNetCore.Mvc.UI.Packages.HighlightJs +@using Volo.CmsKit.Contents +@using Volo.CmsKit.Web.Contents; @inherits CmsKitPublicPageBase @@ -26,57 +28,57 @@ } @section styles{ - @if (isScrollIndexEnabled) - { - - - - } + @if (isScrollIndexEnabled) + { + + + + } - - + + } -@section scripts{ + @section scripts{ @if (isScrollIndexEnabled) { - - + + } - - + + } -
-
- - - - -
-

@Model.BlogPost.Title

-

- - @@@Model.BlogPost.Author?.UserName - - @Model.BlogPost.CreationTime -

- @foreach (var contentFragment in Model.BlogPost.ContentFragments) +
+
+ + + + +
+

@Model.BlogPost.Title

+

+ + @@@Model.BlogPost.Author?.UserName + + @Model.BlogPost.CreationTime +

+ @foreach (var contentFragment in Model.BlogPost.ContentFragments) { - if (contentFragment.Type == "Markdown") //TODO: Constant + if (contentFragment.Type == ContentConsts.Markdown) { @Html.Raw(await MarkdownRenderer.RenderAsync(contentFragment.GetProperty("Content"))) } - else if (contentFragment.Type == "Widget") //TODO: Constant + else if (contentFragment.Type == ContentConsts.Widget) { - @await Component.InvokeAsync(contentFragment.GetProperty("Type"), ConvertToDynamicObject(contentFragment.ExtraProperties)) + @await Component.InvokeAsync(contentFragment.GetProperty("Type"), contentFragment.ExtraProperties.ConvertToDynamicObject()) } }

@@ -85,18 +87,18 @@ @L["LastModification"].Value : @Model.BlogPost.LastModificationTime }

-
+
@if (GlobalFeatureManager.Instance.IsEnabled()) { if (Model.TagsFeature?.IsEnabled == true) { @await Component.InvokeAsync(typeof(TagViewComponent), new - { - entityType = Volo.CmsKit.Blogs.BlogPostConsts.EntityType, - entityId = Model.BlogPost.Id.ToString(), - urlFormat = $"/blogs/{Model.BlogSlug}?tagId={{TagId}}" - }) + { + entityType = Volo.CmsKit.Blogs.BlogPostConsts.EntityType, + entityId = Model.BlogPost.Id.ToString(), + urlFormat = $"/blogs/{Model.BlogSlug}?tagId={{TagId}}" + }) } }
@@ -109,10 +111,10 @@ if (Model.ReactionsFeature?.IsEnabled == true) { @await Component.InvokeAsync(typeof(ReactionSelectionViewComponent), new - { - entityType = Volo.CmsKit.Blogs.BlogPostConsts.EntityType, - entityId = Model.BlogPost.Id.ToString() - }) + { + entityType = Volo.CmsKit.Blogs.BlogPostConsts.EntityType, + entityId = Model.BlogPost.Id.ToString() + }) } } @@ -122,10 +124,10 @@ if (Model.RatingsFeature?.IsEnabled == true) { @await Component.InvokeAsync(typeof(RatingViewComponent), new - { - entityType = Volo.CmsKit.Blogs.BlogPostConsts.EntityType, - entityId = Model.BlogPost.Id.ToString() - }) + { + entityType = Volo.CmsKit.Blogs.BlogPostConsts.EntityType, + entityId = Model.BlogPost.Id.ToString() + }) } } @@ -164,21 +166,4 @@ entityId = Model.BlogPost.Id.ToString() }) } -} - -@{ - dynamic ConvertToDynamicObject(Dictionary dict) - { - var eo = new ExpandoObject(); - var eoColl = (ICollection>)eo; - - foreach (var kvp in dict) - { - eoColl.Add(kvp); - } - - dynamic eoDynamic = eo; - - return eoDynamic; - } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Pages/Index.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Pages/Index.cshtml index 498569c222..17045c4575 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Pages/Index.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Pages/Index.cshtml @@ -7,6 +7,8 @@ @using Volo.Abp.Data @using Volo.Abp.AspNetCore.Mvc.UI.Packages.HighlightJs; @using Volo.Abp.AspNetCore.Mvc.UI.Widgets; +@using Volo.CmsKit.Web.Contents; + @inject IMarkdownToHtmlRenderer MarkdownRenderer @@ -33,31 +35,15 @@ @foreach (ContentFragment contentFragment in Model.PageDto.ContentFragments) { - if (contentFragment.Type == "Markdown") //TODO: Constant + if (contentFragment.Type == ContentConsts.Markdown) { @Html.Raw(await MarkdownRenderer.RenderAsync(contentFragment.GetProperty("Content"))) } - else if (contentFragment.Type == "Widget") //TODO: Constant + else if (contentFragment.Type == ContentConsts.Widget) { - @await Component.InvokeAsync(contentFragment.GetProperty("Type"), ConvertToDynamicObject(contentFragment.ExtraProperties)) + @await Component.InvokeAsync(contentFragment.GetProperty("Type"), contentFragment.ExtraProperties.ConvertToDynamicObject()) } }
-@{ - dynamic ConvertToDynamicObject(Dictionary dict) - { - var eo = new ExpandoObject(); - var eoColl = (ICollection>)eo; - - foreach (var kvp in dict) - { - eoColl.Add(kvp); - } - - dynamic eoDynamic = eo; - - return eoDynamic; - } -} \ No newline at end of file