At the latest Orchard Podcast Sébastien showed the current status of the brand-new Taxonomies module for Orchard Core!
On Orchard Core
Added logger parameter in occms template
From now you have the choice to use Serilog or NLog or nothing as the logger component when you create a new CMS project from the template. Check the readme.md file of the OrchardCore.Logging.Serilog module and the README.MD file of the Templates folder.
For instance to generate an Orchard Cms Web Application with Serilog, you just need to use the following command:
dotnet new occms --logger serilog
Having a UI when running setup recipes
Last week there was a demo about how you can execute recipes from the Dashboard. Now that feature is merged to dev branch, so now it's a good opportunity to try out that feature!
Discussion about displaying the content items in the dashboard
The community has a discussion about how to render content items in Orchard Core. Displaying the content items in a list instead of summaries is also a way or maybe Orchard Core could have both views for listing the content items. Matias Molleja also providing several ways to display the published-draft labels in the list view.
And here is a gif about the possible ways of how to list draft/published items and how to publish and unpublish content items in the list view.
Abstracts out deployment execution to allow for extensibility
You can run a recipe on a separate Orchard instance on another server. So, you can link two servers and the client can send a POST request to the remote machine. Then you can upload content to the different machine, like production from the staging.
Till now, it was taking the zip file, and looking for the recipe.json and running it.
Now you can add any other implementation to an interface and you can look for any other files, not just the recipe.json when doing a deployment, so, its extensible now. The branch that contains this code is still open, so further development will come to this feature.
Sébastien showed us the current state of the OrchardCore.Taxonomies module. He created the migration for Taxonomy content type, that has a title and an alias. The TaxonomyContentHandler welds the TaxonomyPart to the Taxonomy type whenever the taxonomy is initiated. When updating a taxonomy, the handler adds a BagPart to taxonomy with the Term content type.
Now when you enable the Taxonomies module, it will create a new type called Taxonomy. Taxonomy is a standard content type with a title and an alias as we mentioned before.
You can create a new Taxonomy under the New menu item of the Orchard Core dashboard. The difference here with Orchard 1.x is it's like any other content type, it's not a specific one.
When creating a new Taxonomy, you can specify the name of the Term Content Type; you can use for instance Article, then it will be a list of articles.
After you have created the taxonomy, you have the option to add a new content item of the term content type here. You can do that, because when we edit a taxonomy, we add a BagPart to it and we give the setting to the BagPart by saying I have a Bag of a given type the taxonomy's made of.
The taxonomy content item contains all the terms.
The BagPart is a flatlist, so, the second advantage of using BagPart is you can easily create trees of terms. If you have a Color content type that is used in a taxonomy, you can easily add a BagPart to your Color content type. Therefore, your Color can have a bag of colors and then your taxonomy will be hierarchical.
Now you can add a Taxonomy Field to your part and can select your Taxonomy. And here comes the big issue: how will Orchard know what hierarchy does it need to render? Because we have only content items with BagParts without any code that could tell Orchard to look for a hierarchy.
If you are interested in the Taxonomies demo, check out the recording from here and if you are interested in the possible solutions of how to render the hierarchy of the terms, don't forget to watch the end of the podcast!
You can also watch the whole recording of the latest Orchard meeting!