Info
Version: | 10.3.0.24773 |
Author(s): | Richard J. Cabral |
Last Update: | Friday, June 16, 2023 |
.NET Fiddle: | Create the first Fiddle |
Project Url: | https://constellation4sitecore.com/foundation-datasources/ |
NuGet Url: | https://www.nuget.org/packages/Constellation.Foundation.Datasources |
Install
Install-Package Constellation.Foundation.Datasources
dotnet add package Constellation.Foundation.Datasources
paket add Constellation.Foundation.Datasources
Constellation.Foundation.Datasources Download (Unzip the "nupkg" after downloading)
Dependencies
- Constellation.Foundation.Data(>= 10.0.1.23619)
- Constellation.Foundation.PackageVerification(>= 10.0.1.16481)
Tags
Requires .NET 4.8
Constellation is a collection of utilities for .NET CMS implementers.
The Foundation.Datasources library is an opinionated information architecture for Sitecore.
It includes "base" templates and Item
information rules to enforce the architecture.
Core Architecture Concept:
Web Site Items are one of the following types:
Context Datasource: A "page" Item in Sitecore, has a URL, has presentation, loads a Layout and has placeholders for additional Renderings.
Subcontent: A "page fragment" Item in Sitecore, specifically an Item designed to be used as the DataSource for a Rendering. It is required
for the Rendering to render. Subcontent is optional page content, but is unique to the page it appears on.
Widget: Also a "page fragment" Item in Sitecore, specifically an Item designed to be used as the DataSource for a Rendering. It is required for the Rendering to render.
Widgets are optional page content, but are designed to be shared by multiple pages.
The primary information architecture for this design involves the storage of SubContent vs Widgets. All Pages on a site should get a _subcontent folder beneath them which is where Items of type Subcontent should be stored. This allows for Renderings to specify their Datasource location as "./_subcontent"
Widgets should be stored beneath the /tenant/site node (using Helix methodology) typically in a /widgets folder, possibly broken up by widget type or marketing intentions.
You can use the following Rule Conditions to enforce this Information Architecture:
* ItemIsContextDatasource
* Item IsSubcontentDatasource
* ItemIsWidgetDatasource
* ItemSupportsSubcontent (in some cases Pages should not support subcontent, for example, wildcard pages or pages imported from an external system)
You can use the following Rule Actions to enforce this Information Architecture:
* CreateSubcontentFolder
In general you need a rule like this:
On Item Saved, if the Item Supports Subcontent, Create a Subcontent Folder (if none exists) An example is provided in the attached package.
After setting up this rule, ensure that your Renderings are organized into Widgets and Subcontent with appropriate Datasources established.
Installation:
Add this NuGet package to a Web Application project. After building and deploying, this library will automatically install the Sitecore package containing the necessary rules and templates to support this architecture.