Proposal for new extension method ContentElement.OfType, improved documentation of Orchard Core, UI changes and a demo about how to use Pulumi to programmatically create cloud resources and deploy your Orchard Core application! And finally, let's see the breaking news about the next Harvest!
Orchard Core updates
Make alerts dismissable in TheAdmin theme
Now you can click on a little x at the right-top corner of the alert to close it. Note that this improvement is for the TheAdmin theme.
Proposal for new extension method ContentElement.OfType
You can iterate over all the properties (let's say parts) of a content item and if this part matches the type you want, then it will let you know. This is a little helper to find the part in the content item or a field in a content part if you know the type that you want. And if there are many of them you will get all of them. For this, you can use the
OfType extension method in the
ContentExtensions.cs file of the
Let's say you would like to get all of the attached PricePart of a content item. In this case, you could do something like this:
foreach (var pricePart in contentItem.OfType<PricePart>())
Upgrade blob storage library
Upgrading blob storage to use the Azure.Storage.Blobs REST API Client v12 because the v11 client has been identified as not thread-safe, and advice from the Azure team is to upgrade to the v12 library.
DataProtection continues to use the old library as it has not been upgraded yet but references it transitively, so we don't need to keep a reference to it.
Behavior with regard to directories changes with the REST API Client, so to find directories we now need to enumerate the
IAsyncEnumerable with a prefix to see if files exist in the hierarchy.
Add create a custom admin theme guide
Orchard Core documentation has a new guide explaining how you can add and enable a custom admin theme that uses the TheAdmin as a base theme.
Rename ContentField display driver files to resemble class names and conform to conventions
Notice that the naming of the DisplayDriver files in
OrchardCore.ContentFields was inconsistent and in most cases did not reflect the name of the class within. For example, the
HtmlFieldDriver is renamed to
HtmlFieldDisplayDriver and the
TextFieldDriver is renamed to
Rename GetContentItemIdByAliasAsync into GetContentItemIdByHandleAsync
There are methods called
GetContentItemIdByAliasAsync and these expect a string that is an alias. It can be an alias, but it can also be a slug, an ID or whatever you want. It's like get something by a little name. Based on the prefix of the little name we can find the item. Now these methods have a new name called
And the previous methods are now marked as obsolete, so, if you are using these methods, next time you will get a warning message when you build the source code.
Validate LinkField URL
The validator in the LinkField didn't allow you to use anchor links within the URL input. Now it has been fixed and it's accepting a URL with an anchor. Head to the
LinkFieldDisplayDriver.cs and check the code of the
Add missing Sender SMTP field and add Author expression editor for the EmailTask
Based on the specs, we should be able to set the From and the Sender fields. Today we only ask for From and actually copy it to the Sender. We were missing the Sender field for the SMTP message that we want to send. The sender is optional, it is useful when the email author is different than the email submitter. From now you can use this field when sending an email.
And if you are using the Email Task when building your workflow, now there is the expression editor for the From and Sender properties on the task. If you haven't provided the value of the author (in the From field), the value of the Sender field will be used.
Sort dropdown widgets alphabetically
When having to insert widgets in the FlowPart content editor, the list of all widgets is displayed according to creation date which gets quite messy with a lot of widgets. An easy solution, for now, would be to simply sort the name of the widgets alphabetically to give it some easy structure. So, from now when we list the widgets in the Forms and the Widgets List UI, it's alphabetically ordered.
There is new documentation explaining how to use BagPart in Orchard Core. Here you can also find samples about how to do templating both with Razor and Liquid and what are the available alternates that you can use when working with BagPart.
Using Pulumi with Orchard Core
By using Pulumi you can programmatically create cloud resources in Azure, AWS, Google Cloud or Kubernetes. In this video, you could see that how does it work in the context of an Orchard Core application, but of course, it works for any website that you want to deploy. It supports the notion of infrastructure as code, that allows you to define your infrastructure literally as code. This is very powerful, because that allows you to create for example your Azure App Service or even a Kubernetes cluster programmatically, so you don't have to do it manually.
If you are interested in this demo, don't forget to watch the YouTube video about it!
News from the community
Breaking news about the next Harvest
Based on the ongoing events the best would be to cancel Harvest. Right now there are so many unknowns about the evolution and the spread of the virus. Maybe London will be blocked, maybe Washington will be blocked, we don't know. And by asking about 50 people from everywhere around the world to meet in a closed basement for three days could not be the best idea for know in terms of health. So, Harvest will be postponed until things are settling down. This is the safest choice right now and also the most secure in terms of organization.
Orchard Dojo Newsletter
Now we have 121 subscribers of the Lombiq's Orchard Dojo Newsletter! We have started this newsletter to inform the community around Orchard with the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post published to Orchard Dojo, including This week in Orchard of course.
Do you know of other Orchard enthusiasts who you think would like to read our weekly articles? Tell them to subscribe here!