Browse Source

Added content fragment vc

pull/13499/head
malik masis 4 years ago
parent
commit
e79f9402d5
  1. 20
      modules/cms-kit/src/Volo.CmsKit.Common.Web/Contents/ContentFragment.cshtml
  2. 26
      modules/cms-kit/src/Volo.CmsKit.Common.Web/Contents/ContentFragmentViewComponent.cs

20
modules/cms-kit/src/Volo.CmsKit.Common.Web/Contents/ContentFragment.cshtml

@ -0,0 +1,20 @@
@using Volo.CmsKit.Web.Contents;
@using System.Dynamic
@using Volo.Abp.Data
@using Volo.CmsKit.Web.Renderers;
@model ContentFragmentViewComponent
@inject IMarkdownToHtmlRenderer MarkdownRenderer
@foreach (var contentFragment in Model.PageDto.ContentFragments)
{
if (contentFragment.Type == "Markdown")
{
@Html.Raw(await MarkdownRenderer.RenderAsync(contentFragment.GetProperty<string>("Content")))
}
else if (contentFragment.Type == "Widget")
{
@await Component.InvokeAsync(contentFragment.GetProperty<string>("Type"), contentFragment.ExtraProperties.ConvertToDynamicObject())
}
}

26
modules/cms-kit/src/Volo.CmsKit.Common.Web/Contents/ContentFragmentViewComponent.cs

@ -0,0 +1,26 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc.UI.Widgets;
using Volo.CmsKit.Contents;
namespace Volo.CmsKit.Web.Contents;
[Widget(
AutoInitialize = true
)]
[ViewComponent(Name = "ContentFragment")]
public class ContentFragmentViewComponent : ViewComponent
{
public PageDto PageDto { get; set; }
public ContentFragmentViewComponent()
{
PageDto = new();
}
public virtual async Task<IViewComponentResult> InvokeAsync(PageDto pageDto)
{
return View("~/Contents/ContentFragment.cshtml", new ContentFragmentViewComponent() { PageDto = pageDto });
}
}
Loading…
Cancel
Save