Wholething.FallbackTextProperty
0.1.6
See the version list below for details.
dotnet add package Wholething.FallbackTextProperty --version 0.1.6
NuGet\Install-Package Wholething.FallbackTextProperty -Version 0.1.6
<PackageReference Include="Wholething.FallbackTextProperty" Version="0.1.6" />
paket add Wholething.FallbackTextProperty --version 0.1.6
#r "nuget: Wholething.FallbackTextProperty, 0.1.6"
// Install Wholething.FallbackTextProperty as a Cake Addin #addin nuget:?package=Wholething.FallbackTextProperty&version=0.1.6 // Install Wholething.FallbackTextProperty as a Cake Tool #tool nuget:?package=Wholething.FallbackTextProperty&version=0.1.6
Wholething Fallback Text Property
This Umbraco package provides two custom text property editors that allow developers to enter "fallback value", rendered from a Mustache template. The fallback can be built from other node properties and properties of other specific nodes in the content tree.
The included example project uses the default Umbraco starter-kit and there are minimal changes.
Team
This property editor is a collaboration between Harry Gordon and Wholething (Dean Leigh and Ault Nathanielsz).
Installation
You can find the package on NuGet: https://www.nuget.org/packages/Wholething.FallbackTextProperty/0.1.6
Configuration and editor experience
When you configure a "Textstring with Fallback" or "Textarea with Fallback" property you must configure a Mustache template to generate the fallback value.
In the example we use the following template: {{1104:heroHeader}} - {{pageTitle}} - Bar
. In this case pageTitle
refers to the nodes own property, 1104:heroHeader
refers to the site home node's property heroHeader
and the rest is literal. The result can be seen below:
Implementation
The implementation is fairly straight-forward and involves the following:
- The property editor builds a dictionary of node properties and their values and does the same for any other nodes mentioned in the template.
- The property editor renders the fallback template but does not store that in the field value (to avoid "caching" depedent values).
- There is a value converter that returns either the entered value or renders the fallback value.
Limitations
There are a few notable limitations:
- The fallback template can only handle simple properties. For example referring to other fallback properties in a fallback template wouldn't work.
- The fallback template rendering does not currently use live values, just whatever is in the model when the editor is loaded.
- Referring to other nodes in the template by node ID is not ideal, it's a suitable proof of concept but we'd like to look at other ways (for example, by name, doc type or URL).
Learn more about Target Frameworks and .NET Standard.
-
- Handlebars.Net (>= 2.0.4)
- UmbracoCms (>= 8.0.0 && < 9.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.