PascalEugster
06/18/2024, 12:34 PMDan
06/18/2024, 1:08 PMPascalEugster
06/18/2024, 1:28 PMDean Leigh
06/18/2024, 3:36 PMdotnet new umbootstrap
https://umbootstrap.com/Dan
06/18/2024, 3:42 PMDean Leigh
06/18/2024, 3:43 PMPascalEugster
06/19/2024, 6:48 AMC#
@using Umbraco.Cms.Core.Models.Blocks
@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage<IEnumerable<BlockGridItem>>
@{
if (Model?.Any() != true)
{
return;
}
}
<div class="umb-block-grid__layout-container">
@foreach (var item in Model)
{
var itemSettings = item.Settings as BlockSettings;
var spaceTop = itemSettings?.SpaceTop ?? 0;
var spaceBottom = itemSettings?.SpaceBottom ?? 0;
var padding = itemSettings?.Padding ?? 0;
<div
class="umb-block-grid__layout-item"
data-content-element-type-alias="@item.Content.ContentType.Alias"
data-content-element-type-key="@item.Content.ContentType.Key"
data-element-udi="@item.ContentUdi"
data-col-span="@item.ColumnSpan"
data-row-span="@item.RowSpan"
style=" --umb-block-grid--item-column-span: @item.ColumnSpan; --umb-block-grid--item-row-span: @item.RowSpan; ">
@{
var partialViewName = "blockgrid/Components/" + item.Content.ContentType.Alias;
try
{
<div class="mt-@(spaceTop) mb-@(spaceBottom) p-@(padding)">
@await Html.PartialAsync(partialViewName, item)
</div>
}
catch (InvalidOperationException)
{
<p>
<strong>Could not render component of type: @(item.Content.ContentType.Alias)</strong>
<br/>
This likely happened because the partial view <em>@partialViewName</em> could not be found.
</p>
}
}
</div>
}
</div>
PascalEugster
06/19/2024, 6:49 AMDean Leigh
06/19/2024, 6:58 AM@await Html.GetBlockGridItemsHtmlAsync(Model)
to @await Html.GetPreviewBlockGridItemsHtmlAsync(Model)
?PascalEugster
06/19/2024, 7:23 AMPascalEugster
06/19/2024, 7:23 AMPascalEugster
06/19/2024, 7:25 AMDean Leigh
06/19/2024, 7:29 AMGetPreviewBlockGridItemsHtmlAsync
) except I have a @foreach (var item in Model)
<div class="@(layout ? "layout-" : "feature-")items d-flex flex-column @(layout ? "gap-0" : "gap-3")">
@foreach (var item in Model)
{
{
var partialViewName = "blockgrid/Components/" + item.Content.ContentType.Alias;
try
{
<!-- START - ITEM -->
@await Html.PartialAsync(partialViewName, item)
<!-- END - ITEM -->
}
catch (InvalidOperationException)
{
<p>
<strong>Could not render component of type: @(item.Content.ContentType.Alias)</strong>
<br />
This likely happened because the partial view <em>@partialViewName</em> could not be found.
</p>
}
}
}
</div>
PascalEugster
06/19/2024, 7:55 AMDean Leigh
06/19/2024, 8:13 AMPascalEugster
06/19/2024, 8:24 AMPascalEugster
06/19/2024, 8:24 AMDean Leigh
06/19/2024, 8:27 AMPascalEugster
06/19/2024, 11:18 AMDean Leigh
06/19/2024, 12:15 PM// Get the layout settings
var hasSettings = Model.Settings != null;
var backgroundColour = hasSettings ? Model.Settings.Value<ColorPickerValueConverter.PickedColor>("layoutSettingsColourPicker") : null;
var colorLabel = backgroundColour?.Label;
var colorShades = hasSettings ? Model.Settings.Value<decimal>("layoutSettingsColourShades") : (decimal?)null;
var colorOpacity = hasSettings ? Model.Settings.Value<decimal>("layoutSettingsColourOpacity") : (decimal?)null;
var backgroundImage = hasSettings ? Model.Settings.Value<Umbraco.Cms.Core.Models.MediaWithCrops>("layoutSettingsBackgroundImagePicker") : null;
https://cdn.discordapp.com/attachments/1252602283733024798/1252959948095225917/image.png?ex=66741d62&is=6672cbe2&hm=7d5ba23499cb9268c45933883010d5f76844d7624c531e1e0a58826160c5ebe3&PascalEugster
06/19/2024, 12:16 PMPascalEugster
06/19/2024, 12:16 PMDean Leigh
06/19/2024, 12:18 PM_Layout_Layouts.cshtml
and all Feature Blocks use _Layout_Features.cshtml
e.g. the RTE Block
@{
Layout = "_Layout_Features.cshtml";
}
@Model.Content.Value("richTextContent")
PascalEugster
06/19/2024, 12:19 PMPascalEugster
06/19/2024, 12:20 PMDean Leigh
06/19/2024, 12:20 PMDean Leigh
06/19/2024, 12:21 PMPascalEugster
06/19/2024, 12:23 PMDean Leigh
06/19/2024, 12:39 PMPascalEugster
06/19/2024, 1:16 PM