VERSION 10.0 is compiled for Sitecore 10.0 use and will not work on earlier versions.
Requires Sitecore 10.0
Requires .NET 4.8
Constellation is a collection of utilities for .NET CMS implementers.
The Foundation.Data namespace contains an Item extension class that allows the developer to:
- Get an Item's ancestor based on Template
- Test an Item's Template inheritance
- Retrieve an Item's children based on a specific Template
- Retrieve the URL for the Item using the currently active LinkManager configuration.
- Determine if the Item is in the Context Site.
- Find or create an Item's child given a name and a Template ID.
Install-Package Constellation.Foundation.Data -Version 10.0.0.22111
dotnet add package Constellation.Foundation.Data --version 10.0.0.22111
<PackageReference Include="Constellation.Foundation.Data" Version="10.0.0.22111" />
paket add Constellation.Foundation.Data --version 10.0.0.22111
Updated Sitecore references to 10.0 minimum.
- Sitecore.Kernel (>= 10.0.0)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on Constellation.Foundation.Data:
VERSION 10.0 is compiled for Sitecore 10.0 use and will not work on earlier versions. Requires Sitecore 10.0 Requires .NET 4.8 Constellation is a collection of utilities for .NET CMS implementers. The Foundation.ModelMapping library is inspired by AutoMapper and is designed to provide a quick, non-ORM method of mapping Sitecore Items to ViewModels. String properties on your ViewModel will be mapped to FieldRendered values from fields with the same names. Integer and DateTime property types can also be handled automatically, although you will not get page editor support for these types. There are a number of Attributes that you can assign to your ViewModel's properties to change the behavior of the Mapper. Usage: var modelMapper = (IModelMapper)ServiceLocator.ServiceProvider.GetService(typeof(IModelMapper)); // Dependency Injection of an IModelMapper is supported TModel viewModel = modelMapper.MapItemToNew<TModel>(sourceItem); Or: TModel viewmodel = item.MapToNew<TModel>(); Or: modelMapper.MapTo(item, model); When using Item or ItemList extensions for mapping, the context IModelMapper is requested from the ServiceLocator, so any moc objects you use for testing are supported with these extension methods. Constraints: - Your ViewModel must have a public, parameterless constructor. - Only Writable, Public Instance properties will be mapped. - Within Sitecore, your field names can be human-legible. ModelMapper will attempt to convert the field name to a valid Property name. Simpler names work best. You can use the Field's Display Name for better human legibility and keep the Field's actual name closer to a legit C# entity name. - ViewModel properties can be: - - Strings - - HtmlStrings (recommended for RichText and FieldRenderer) - - Integers - - Decimals - - DateTimes - - Other ViewModels (recommended for DropLink, DropTree) - - ICollection Generics of other ViewModels (recommended for Multilist, Treelist) - - ModelMapping.Model.ImageModel (for Image Fields, gives access to all field properties and permits generating different kinds of image URLs on the View.) - - ModelMapping.Model.GeneralLinkModel (for General Link fields, gives access to all field properties through a single object.) - - Random Plain Old Classes as long as they are Where T: class, new() The following Model properties are mapped to Item properties rather than Item fields: - ID - Maps to the Item.ID - Make sure you use Sitecore.Data.ID as the property type. - Name - Maps to the Item.Name - DisplayName - Maps to Item.DisplayName - Url - Should be a string, not a Uri. Causes the current context LinkManager to generate a Url for the Item. - Parent - Maps to the ViewModel you provide based on the Item.Parent. Support for XML Field Attributes - ImageField.Alt - use Model.FieldNameAlt - ImageField.Height - use Model.FieldNameHeight - GeneralLink.Target - use Model.FieldNameTarget - etc. Support for LinkField.TargetItem - use Model.FieldNameTargetItem and supply a class with public properties and a parameterless constructor. Support for MultilistField.GetItems - use Model.FieldName and supply a generic ICollection<T> where "T" is new() and has properties you can map. Extensible! See the Constellation.Foundation.ModelMapping.config file to change the way Fields are processed.
VERSION 10.0 is compiled for Sitecore 10.0 use and will not work on earlier versions. Requires Sitecore 10.0 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.
Compatible with Sitecore 10.0 Requires Sitecore 10.0 Requires .NET Framework 4.8 Constellation is a collection of utilities for .NET CMS implementers. The Feature.ItemSorting library solves the frequently occurring problem of managing a collection of Items that users will not organize themselves, but which they expect to be organized. Examples include Events in an Event Calendar, Press Releases, and Employee Bios. Users want them sorted by date and dictionary order, but Sitecore offers little help beyond Subitems Sorting. Additionally, after a few dozen Items, users expect these entries to be grouped into folders. Enter this library! This library features two simple Rule Actions: - MoveToAlphabeticalFolder - MoveToDateFolder Included in /Installation-Packages/ is a Sitecore Package with the appropriate Rule definitions. The package should self-install after being deployed to your environment. Rule Actions: Move Item to Alphabetical Folder - Allows you to specify the template of the folder to use for creating the alphabetical folders. Move Item to Date Folder - Allows you to specify the template of the folder to use for creating the date folders. Requires you to specify the Field on the Item being processed that should be used for categorization. Requires you to specify the depth of the associated folder tree. Options are /Year/, /Year/Month/, /Year/Month/Day/ In all cases, the "root" of the classification folders is the first encountered Ancestor that is not of the specified folder type. Usage Details 1. Create your "list" page that will serve as the root of the classification. In our example we'll use "News" 2. For the Insert Options of your "list" page, include the ability to insert an Item of the type that requires classification. In our example, we'll use "Press Release" (Note that Press Release must have a date field to use for classification. In our example we'll use the custom field "Release Date". You can use "__Updated" or "__Created" too.) 3. Create a new Item Saved rule that specifies when an Item is of Template "Press Release" it should be moved to a Date Folder. Set the appropriate parameters. 4. Enjoy!
THIS IS AN EXPERIMENTAL LIBRARY - DO NOT PUBLISH AI-GENERATED ALT TEXT WITHOUT HUMAN REVIEW. This library can perform the following: - Using AI, "read" the image and provide a sentence description of what it portrays. - Using AI, "read" the image and provide series of tags that describe what it portrays. - Using AI, perform OCR on the image and, if the image has embedded text, extract the text to a string value. REQUIRED You must have a subscription to Azure Cognitive Services for Computer Vision. You will need both a Subscription Key and an endpoint URL to use this library. Support for other AI services are not implemented, but you can see where the extension would occur. INSTALLATION Install this package using NuGet. Copy and rename /App_Config/Verndale.CognitiveImageTagging.config.example Remove the "example" suffix. Supply appropriate Azure Cognitive service connection details within the config file. Don't forget to review the Sitecore Feature config file in App_Config/Include/Feature for details on how to activate this library. In the supplied config example, you will see confidence levels for captions and embedded text. These are set to reasonable defaults, but be aware the AI can be quirky and unreliable. This tool should be used prime the pump on image descriptions but should not be used unsupervised. USE Once configured, Images will receive AI-based Alt text when they are uploaded. To add Alt text to existing images, navigate to the image in the media library. The Media tab within the content editor will have new buttons that allow you to retrieve ALT text from AI for the selected Media Item. ALT text will be used in the following order If the image contains text, the text will be written to the Image's Alt field. If the AI returns a high-confidence Caption, that caption will be written to the Image's Alt field. Any descriptive tags returned by the AI will be written to the Image's Alt field in comma-delimited fashion. Keep in mind that AI for image descriptions is relatively experimental. Your descriptive results will depend on image the image. Celebrities tend to get tagged reliably, close-ups, abstract, or heavily filtered photos tend to have less reliable or extermely generic results. DO NOT TRUST AI TO SUPPLY YOU WITH ALT TEXT WITHOUT HUMAN REVIEW. Generated alt text may contain inaccurate descriptions or tags that could be construed as misleading or offensive. Use at your own risk! Do not publish any AI generated content without human review.
This package is not used by any popular GitHub repositories.