Our blog contains the activity stream of Orchard Dojo: general news, new resources or tutorials are announced here.

Centralize the Indexing process, Remove Media files for a removed tenant when using Azure Blob Storage - This week in Orchard (20/06/2025)

This time, you can see a demo about centralizing the Indexing process and having a unified UI for managing Indexes and the Search Settings! But first, let's look at our other topics, like removing Media files for a removed tenant when using Azure Blob Storage, and adding RouteEndpoint cache. Don't forget that you can still fill out our Orchard Core Admin UI experience renewal survey to help shape the future of Orchard Core!

Latest tutorials

Featured tags

IIS
API
SMS
SEO
MCP
All tags >

New Catch Workflow Fault Event, interactive mode in the Lombiq UI Testing Toolbox - This week in Orchard (01/09/2023)

New Catch Workflow Fault Event, add additional text info to the Content Picker Field, and a demo about adding an interactive mode to the Lombiq UI Testing Toolbox! Check out our post for the details! Orchard Core updates New Catch Workflow Fault Event If you have the Workflows feature enabled, you can create workflows by clicking on the Workflows option from the admin menu. Here, you can create workflows and add events to your workflows by clicking on the Add Event button. In the list of available events, you will find a new one, called Catch Workflow Fault Event, that triggers and captures exception information when an exception occurs in any other workflow. If you select this event, you will find a text area called Trigger Condition, and the code inside it is automatically generated when you open the editor of the Catch Workflow Fault Event for the first time. Add additional text info to the Content Picker Field Let's play around a little bit with a site that we set up using the Blog recipe. First of all, we want to have an option where users can assign pages to blog posts, like "if you need more info, check out this page, or click here for this related content, and so on.". To do that, we can utilize the Content Picker Field. If we navigate to Content -> Content Definition -> Content Types and hit Edit near the Blog Post content type, we can find the Add Field button. By clicking on it, we can set the display name (let it be Related pages in this case) and select the field type (Content Picker Field). Now we can click the Edit button near our new Related pages Content Picker Field and do the magic here. We set up this field to allow multiple elements to be selected and said that we only want to choose from Page content types when working with this field. But the new stuff is the Title Pattern editor. Here, you can define the pattern used to render the title with Liquid support. Here, you can see that this field renders the Display Text of the content items by default (keeping the current behavior), but you can modify this as you want. This can be a huge help for other users because, for example, using only the display name has become a problem for multilingual sites with pages named "blog" in multiple languages. Here, we modified the pattern to include the display URL too, not just the display text of the content items. And now, the last step is to try this out in action! We will just simply edit the predefined blog post and click on the Related pages Content Picker Field to see what will happen. As you can see, we have two Page content items on our site where we used the sample display name. It's hard to distinguish the content items but by seeing the URL too, we have an idea which Page could be which one. OK, maybe we are not using the best URLs for illustration, but I think you get the point here. :) Demos Interactive mode in the Lombiq UI Testing Toolbox Maybe you have already heard about the Lombiq UI Testing Toolbox, our web UI testing toolbox mostly for Orchard Core applications. Everything you need to do UI testing with Selenium for an Orchard app is here. We wrote about it several times here as well, first when we open-sourced it, when we added some Orchard Core Features tests to it when we added the automated monkey testing feature to it, and when we introduced the Visual verification testing. At the end of last year, we showed you the latest updates about integrating UI testing into Orchard Core and the way you can use WebApplicationFactory or a fake video capture source. This time, we will check out a slightly different topic! Basically, the Orchard Core process and the UI testing process are running together, you can't actually do testing and continue running the web application itself. So, for that, we have a new method called SwitchToInteractiveAsync, which enables the interactive mode for debugging the app while the test is paused. If you run the test, you are able to pause at that point, like hitting a breakpoint when debugging the code. So, sometimes you want to debug the test session, and assuming direct control would be nice. But you can't just drop a breakpoint in the test, since the Orchard Core web app and the test are the same process so it would pause both. The SwitchToInteractiveAsync extension method opens a new tab with info about the interactive mode and, then causes the test thread to wait until you've clicked on the "Continue Test" button in this tab. During that time, you can interact with OC as if it was a normal execution. If you open up the InteractiveModeTests.cs file, you will find a demo of the feature with two tests: SampleTest and EnteringInteractiveModeShouldWait that illustrates how you can use the new SwitchToInteractiveAsync extension method. If you want to know more about this feature, head to YouTube for a recording! News from the community Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 535 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!

Add support for user phone number, SMS support and two-factor authentication using SMS service - This week in Orchard (25/08/2023)

Add support for user phone number; add styling to Pager in TheAdmin theme, and a demo about SMS support and two-factor authentication using SMS service! Check out our post for the details! Orchard Core updates Add support for user phone number Currently, we do not support PhoneNumber in the UserStore, which is supported in the default identity implementation, and it's a nice feature to have if you are implementing an application that requires the user to enter and confirm their cell phone number, similar to the way email verification works. The latter is easy since UserStore implements IUserEmailStore, but when using UserManager.GenerateChangePhoneNumberTokenAsync, the call fails with a NotSupportedException: Store does not implement IUserPhoneNumberStore<TUser> exception. From now on, UserStore implements IUserPhoneNumberStore, updating User accordingly by adding a Phone property. This means a phone number is now supported in the UserStore and the User object. Let's see what the new field looks like in the user's profile! If you navigate to Security -> Users and hit the Add User button, you will find the new Phone Number field there. You may notice a black exclamation icon at the end of the editor, meaning that the phone number for this user is unverified. Add styling to Pager in TheAdmin theme This change is about improving the look and feel of the Pager across the admin UI. New views in TheAdmin theme were added to style the pages at the theme level, no base shapes were altered. The pager looked like this: And after this change, it looks like this: Demos SMS support and two-factor authentication using SMS service In this demo, you can see a brand-new feature for Orchard Core, the SMS module. This module provides you with a way to have SMS services on your site, and then you can do whatever you want with them. There are actually three features around it, and we will check out all. SMS: Provides settings and services to send SMS messages. Two-Factor SMS Method: Provides users a two-factor authentication method through an SMS service. SMS Notifications: Provides a way to send SMS notifications to users. Let's enable all of them, and after that, you will find a new option under Configuration -> Settings, called SMS. Here you can configure your provider. You can choose from Log and Twilio. If you select the Log one, any message that is sent through the SMS provider will be just printed in the log files, like: "A message with the body {body} was set to {phoneNumber}". You can implement your own provider, but by default, we provide you with Twilio. Twilio is probably the most commonly used service. If you select it, you can configure it with the information that is coming from your Twilio account. So, this is the SMS module, and to build more on top of it, here comes the Two-Factor SMS Method feature. If you enable it, you can navigate to the Security settings, and add the new SMS authentication as a new two-factor authentication method. To do that, you have to verify your phone number, and you will get a verification code that you have to apply. The third feature is called SMS Notifications. With this module, you can actually deliver notifications through SMS. If you enable this and you can go to your user profile (Security -> Users), you will see another notification method here which is called SMS Notifications. And if you have the Workflows feature enabled, you can utilize a new task, called Send SMS, meaning you can send SMS messages directly from the workflow. If you want to know more about this feature, head to YouTube for a recording! News from the community Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 520 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!

Improve workflows page load time, Cloudflare CDN and protection for all DotNest sites - This week in Orchard (18/08/2023)

Rename Microsoft Azure Active Directory to Microsoft Entra ID; improve workflows page load time, and announce Cloudflare CDN and protection for all DotNest sites! Let's see the details in our post! Orchard Core updates Rename Microsoft Azure Active Directory to Microsoft Entra ID A few weeks ago, Microsoft announced significant milestones for identity and network access, including the news that Microsoft Azure Active Directory (Azure AD) is becoming Microsoft Entra ID. We have Azure AD integration in Orchard Core, and in order to authenticate users with Azure AD, you must enable and configure the OrchardCore.MicrosoftAuthentication.AzureAD and the OrchardCore.Users.Registration features. You can read more about the details here. So, due to Microsoft's recent rebranding, Azure AD has been renamed to Microsoft Entra ID. This only concerns UI labels and documentation, but technical identifiers remain, so you shouldn't expect anything breaking. Improve workflows page load time It takes several seconds to load the /Admin/Workflows/Types and /Admin/Workflows/Types/{TypeId}/Instances pages when there are a fairly large number (testing size: 500_000) rows in WorkflowIndex. There is a line in WorkflowTypeController that goes through the whole table of WorkflowIndex to then calculate (group by) in the code how many workflows are there per each type. In WorkflowController line 124 with the await query.CountAsync() it is for the same purpose but for only one workflow type, but this uses some additional joins which makes it even slower. You can easily reproduce this by having a fairly large number of finished workflows. Load the workflows page, or the type-specific workflow item list page and see that it takes several seconds to load. This issue has been fixed by removing the counting of each workflow type on the workflows listing page. And on the workflow instances list page changed to only fetch the document table for the workflows that are on the current page. News from the community Cloudflare CDN and protection for all DotNest sites Last week you could read that we published a case study about migrating the content of an old version of an Orchard Core website with a custom theme and modifications in the business logic of the Orchard Core Commerce module to DotNest. You can check out the case study here about how we achieved this with Ik wil een tart, a confectionery in the Netherlands! And now all DotNest sites are protected and sped up by Cloudflare! Head to the DotNest blog and check out the details here! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 505 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!

IClientIpAddressAccessor interface, new Orchard Core site case study - This week in Orchard (11/08/2023)

Add a thumbnail to stereotype filter; IClientIpAddressAccessor an interface for accessing the client IP Address, and check out a case study of a new Orchard Core site using Orchard Core Commerce! Let's get started! Orchard Core updates Add thumbnail to stereotype filter In some cases, we want to create a menu item that would allow the user to manage content items of a specific stereotype. Currently, we only support single content types but not stereotypes. The goal of this change was to add a query parameter stereotype that would allow us to manage only content items that share the same given stereotype. We already mentioned this change a few weeks ago but from now on, this feature is more user-friendly because you can see a thumbnail about this filter inside the available filters list on the Manage Content page. You can reach this list if you click on the Filters icon near the Search textbox and select the Filter syntax from the drop-down menu. Add IClientIpAddressAccessor interface for accessing the client IP Address It can happen that you need to know the IP address of the client. For example, Orchard Core can save the client IP Address when logging events using the Audit Trail feature. From now on, you will see a new IClientIPAddressAccessor interface with a default implementation called DefaultClientIPAddressAccessor, which you can use to easily get the IP address of the client. News from the community Case study of a new Orchard Core site using Orchard Core Commerce DotNest is a SaaS provider that provides hosted Orchard Core and Orchard 1 web applications (think Wordpress.com for Orchard). This basically means that after registration you can create Orchard websites on DotNest without having to worry about hosting or maintenance. Orchard is always kept up-to-date and in good working order for you, you just have to use it. Several custom modules and themes are available for you on all Orchard Core DotNest sites. One of these is the Orchard Core Commerce module, which is the commerce module for the CMS containing features like handling taxation, shopping cart, and checkout. We published a case study about migrating the content of an old version of an Orchard Core website with a custom theme and modifications in the business logic of the Orchard Core Commerce module to DotNest. Check out this case study here to read more about how we achieved this with Ik wil een taart, a confectionery in the Netherlands! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 499 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!

Full-Text Search for Admin UI, Orchard Harvest recordings - This week in Orchard (04/08/2023)

Adding an option to allow the user to change the full-text search behavior in the admin UI, new Helpful Shell Extensions, and announcing that the recordings of the Orchard Harvest Conference 2023 are available on YouTube! Check out our post for the details! Orchard Core updates Full-Text Search for Admin UI Currently, when searching for content we search the DisplayText property. It can happen that we want to search content items for other fields like a stock number or serial number. Currently, the only way to do this is by adding any info we want to search for to the title. This may be acceptable in some cases, but not all cases. From now on, additional options have been introduced to enable control over the behavior of the full-text search in the administration user interface for content items. Check out this documentation for details about how you can do that by implementing the IContentsAdminListFilterProvider interface and registering the custom default term name as a search option by adding it to the ContentsAdminListFilterOptions. Helpful Shell Extensions The goal of this change is to introduce various extensions related to tenant management that the contributors can utilize in the future to improve the code quality of Orchard Core instead of doing the same checks repeatedly. And of course, you can use these extensions in the future in your own custom code as well! We have three new classes (ShellContextExtensions, ShellSettingsExtensions, and ShellStringExtensions) with extension methods that tell you whether the tenant is running or not, whether or not the tenant has one of the provided URL hosts, whether or not the tenant is in use in at least one active scope, and so on. News from the community Orchard Harvest Online Recordings We had the first online Orchard Harvest, and it was great to see that we had 188 sign-ups for the conference! It was an excellent opportunity to share knowledge, talk about development plans and ideas, and foremost, meet the rest of the worldwide community. And of course, we recorded every session, which means they are now available on YouTube! Click the link to rewatch all the inspiring talks and discussions! That was a blast! Thank you again, everyone, for taking part, and thanks to the presenters for their great presentations! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 497 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!

How to migrate an Orchard 1 application to Orchard Core, support login via username or email address for OpenID - This week in Orchard (28/07/2023)

Support login via username or email address for OpenID, Liquid themes shouldn't need Razor support for MVC, and don't forget to take a look at our blog post about how to migrate an Orchard 1 application to Orchard Core! Check out our post for the details! Orchard Core updates Support login via username or email address for OpenID When using the built-in OpenID feature of Orchard Core, you can get an access token by making a POST request to /connect/token endpoint. In the request, you can specify the grant_type, scope, username, password, and client_id. You can use the username in the username parameter, but if you try to use the email address of the user, it won't work. According to this discussion thread, there is a change to not allow the username = email. However, there should be a fallback to authenticate by username or email. So, the goal of this change is to be able to use a username or email to log in. As you can see, now the code utilizes the updated GetUserAsync method, which gets the user by a specified username or email address. Liquid themes shouldn't need Razor support for MVC When developing a theme, you can decide to use Razor or Liquid files. But of course, you can mix Razor and Liquid files if you want. Originally the Blog Theme was only composed of Razor files that the community migrated step by step to Liquid. And we are only using Liquid files for the Agency Theme and the Coming Soon Theme as well. So, these are themes that currently only use Liquid files. And because of that, we can remove the AddRazorSupportForMvc tags from these themes. News from the community How to migrate an Orchard 1 application to Orchard Core You may have heard about the news that we migrated from our old Orchard 1 website to Orchard Core and modernized our site's look. Our new site turned out great, and we are very happy with it. It represents who we are and what we do as a company. We hope you like it too! For our case study on building the renewed Lombiq.com, including migrating it from Orchard 1, check out How We Renewed and Migrated lombiq.com from Orchard 1 to Orchard Core in the Lombiq blog, and check out this announcement in this video. If you are also planning to migrate your Orchard 1 website to Orchard Core, and want to read more details about how you could start to migrate your website and content, search no more, we have published a detailed article on Orchard Dojo with some samples as well about how you could start and enjoy the numerous remarkable benefits by migrating to Orchard Core. Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 491 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!

New Meta Pixel feature, Enhance the two-factor authentication process - This week in Orchard (14/07/2023)

New Meta Pixel feature, in progress indicator for the Attached Media field, and a demo about enhancing the two-factor authentication process and making the UI extensible. Check out our post for the details! Orchard Core updates New Meta Pixel feature We have multiple integrations with Meta. But we do not have a way to enable Meta Pixel like we do for Google Analytics. But what is Meta Pixel? The Meta pixel is a piece of code for your website that lets you measure, optimize and build audiences for your ad campaigns. You can think of this as an analytics tool that allows you to measure the effectiveness of your advertising by understanding the actions people take on your website. So, from now on a new feature called Meta Pixel was added to allow you to easily enable Meta Pixel tracking into your website. Due to Facebook's recent rebranding, all of the Facebook features have been renamed to Meta. This only concerns UI labels and documentation, but technical identifiers remain, so you shouldn't expect anything breaking like classes and project names still say Facebook to prevent breaking change. But how can you use this new feature? First of all, navigate to the admin UI of your site and enable the Meta Pixel feature under Configuration -> Features. This will show you a new option under Configuration -> Settings, called Meta Pixel, where you can provide the Pixel ID found on the Meta Data Sources portal. In progress indicator to the Attached Media field When you add a file to an attached media field, it uploads the file once you select it, but it does not indicate that it is uploading, so if you have a large file like audio or video that takes some time to upload, it looks like it just didn't add the file. This change introduces a progress bar showing you the current progress of the file, that you would like to upload. This PR also fixes an error about messages not showing in this editor, like the "This file exceeds the maximum upload size". To try out this feature, we just simply modified the content definition of the built-in Blog Post content type by adding a new Media Field to it. After we set the editor type of this field to Attached, instead of Standard. Finally, we edited the predefined blog post content item and tried to upload a file utilizing the newly added Media Field. Demos Enhance the two-factor authentication process and make the UI extensible A few weeks ago, we showed you a demo about adding the two-factor authentication feature to Orchard Core. This time we will see some improvements related to the 2FA feature. The first issue was the UI was not extensible, and we only have an authenticator app to use as a 2FA. Sometimes you might not want to use the authenticator app, you might want to authenticate users with other methods like email or SMS. From now on, we have a way to extend the 2FA in a way where we can say I want to enable the app authenticator, I want to enable an email authenticator, but you can implement your own authenticator, whatever the case might be. Let's see this in action! After you set up your site, head to Configuration -> Features and search for the two-factor keyword. This will list 3 features related to 2FA. Two-Factor Authentication Services: Provides Two-factor core services. Two-Factor Authenticator App Method: Provides users with a two-factor authentication method through any Authentication App. Two-Factor Email Method: Provides users with a two-factor authentication method through an Email service. For this demo, we will enable all of these features. Now, let's create another user in the system with the Contributor role for example. When we login with that user, we can navigate to the Security page (which you can reach under the /TwoFactor URL or by clicking on the Security option using the drop-down, which you can see if you click on the user icon on the top-right corner. Here you can see the site says two-factor authentication is not enabled yet, in order to enable it, you have to add a two-factor method. You can allow email authentication by clicking on the Verify Email button. You see this button here because this user hasn't verified their email address yet. If you click on this button you have to request a code, and this user will get a code via email, which they can paste here. After verification, the email address of this user has been confirmed, and the site displays the recovery codes to log in with. If you go back under the same screen under Security, you will see that the email is verified and 2FA is enabled because we have just enabled it. Let's quickly add a second method, which is the authenticator app. If you do that, you will have two authentication methods, and using the Preferred Two-Factor Method drop-down, you can select your preferred method. Let's select the Email one, for example. Now, let's log off and try to log in again to see what will happen. The first thing that you can see here is it's asking to authenticate via email. If for some reason, we don't have access to that email, there is a new option here called Sign in another way. You can also log in with your recovery codes if you have them. If you click on the Sign in another way link, it's prompting me to use the other method, which is the (non-default) app authenticator. The reason why we can use both methods is that we enabled the Two-Factor Authenticator App Method and Two-Factor Email Method features. And as we mentioned, from now on, you can implement your own method (SMS, for example) and can extend the list of the two-factor methods. And that's not nearly all of the improvements! If you want to know more about this feature, head to YouTube for a recording! News from the community Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 474 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!

Google Service improvements, Lombiq Content Editors for Orchard Core - This week in Orchard (07/07/2023)

Fix Google Service dependencies and include Google Analytics and Tag Manager when the user consents. This week's demo is about the new Lombiq Content Editors for the Orchard Core module! Check out our post for the details! Orchard Core updates Fix Google Service dependencies Google Tag Manager (GTM) is a bridge/middle-man service, that would allow you to enable other services like Google Analytics on your website. So, if you have GTM installed on your website, you can use the GTM portal to enable Google Analytics using the Measurement ID. You can also enable Google Analytics without the use of GMT if you want. The two features OrchardCore.Google.TagManager and OrchardCore.Google.Analytics should not depend on each other as one should enable either. If you enable the Google Tag Manager feature by navigating to Configuration -> Features, you will find a new option under Configuration -> Settings. It is called Google Tag Manager, where you can specify the container ID defined in your Google Tag Manager account. Include Google Analytics and Tag Manager when the user consents And while we are talking about Google-related services, let's check out another improvement regarding Google-related services! The Google Analytics feature always includes the Google Analytics tracking script in GoogleAnalyticsFilter. Instead, it should only include this if the user gave consent to tracking otherwise, it's a legal risk under GDPR for EU companies. Potentially something similar for websites run by other entities around the world too. Fortunately, the built-in ASP.NET Core feature can be used for this, just by adding the below check to GoogleAnalyticsFilter. Demos Lombiq Content Editors for Orchard Core This time we will check out the Lombiq Content Editors for Orchard Core module. This feature was originally built for Orchard 1 a couple of years ago, and it contained a lot of interesting features for advanced content editing, including async editors, which we will focus on today. It was a closed-source module of Lombiq, and this is the rewritten version of that for Orchard Core. As we mentioned, the primary feature of this module is the Async Editor feature, which we already used when we built the License Request form for Smithsonian Folkways Recordings. We wrote a blog post about how we upgraded that site to Orchard Core, and you can also check out a demo video of the app and our experiences developing it here. So, the Async Editor feature of this module provides an infrastructure for creating editors that can load and save content asynchronously. The editor can optionally render multiple pages where each page can load and save data independently. To demonstrate this feature, we will utilize our Open-Source Orchard Core Extensions solution that contains most of Lombiq's open-source Orchard modules and themes, as well as related utilities and libraries. Last week we mentioned that this solution has been updated to the latest and greatest 1.6 Orchard Core version. If you clone this repository and set up your site using the TEST: Lombiq's Open-Source Orchard Core Extensions recipe, the Lombiq Content Editors - Samples feature will be enabled by default which - of course - contains samples for Lombiq Content Editors. Meaning that if you click on the Employee (admin) option from the Content Editors Samples drop-down menu after your site has been set up, you will be redirected to the admin UI of Orchard Core, where you will see an editor of the Employee content item. To be more precise, this is the first editor group (PersonalDetails) of this content item. If you fill out the first group and click Save and Next, it will post the form to the API and won't reload the page. The backend will validate the form, and then if everything goes right, it will show you the HTML code of the next editor group and load it to the editor. Once you click on the Submit button on the second editor group, the editor will publish the content item. You can see the editor groups with a nice name (Personal Details, Employment Details), which provides some pagination to you as well, so you can go back and forth by clicking on these. And of course, you can utilize the async editors on the front end as well, and a good example of that is the License Request form for Smithsonian Folkways Recordings that we have just mentioned. If you would like to know more about this feature, check out this video on YouTube where you can see some code as well. And don't forget to check out the samples module too, where you can find the code of the previously mentioned editor with tons of comments about how you can utilize this async editor in your own Orchard Core site! News from the community Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 471 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!

Add stereotype as a filter for the contents UI, Updated Lombiq's Open-Source Orchard Core Extensions - This week in Orchard (30/06/2023)

Add stereotype as a filter for the contents UI, fix OpenID Configuration initialization and our Open-Source Orchard Core Extensions solution is updated to Orchard Core 1.6! Check out our post for the details! Orchard Core updates Add stereotype as a filter for the contents UI In some cases, we want to create a menu item that would allow the user to manage content items of a specific stereotype. Currently, we only support single content the type but not the stereotype. The goal of this change was to add a query parameter stereotype that would allow us to manage only content items that share the same given stereotype. To try this out, we have to have some content where the stereotype is defined. We will go the lazy way and edit the existing content definitions of the built-in content types defined by the Blog recipe. We can do that under Content -> Content Definition -> Content Types. We edited the definition of the Blog and the Article content type and set the stereotype value to Test. Now to be able to filter all the content items with the Test stereotype, let's navigate to Content -> Content Items and add the following query string to the URL: stereotype=Test, so the full URL in our case will be the following https://localhost:44300/Admin/Contents/ContentItems?stereotype=Test&admin=-327987887 And as you can see, Orchard Core shows us the content items of the content types where we set the stereotype to "Test". You can read more about this feature in the release notes of the 1.7 release of Orchard Core. Fix OpenId Configuration initialization When using the OpenId Server feature along with OpenId Validation and using a custom Authority value, the following exception was thrown: InvalidOperationException: The issuer attached to the static configuration must be the same as the one configured in the validation options. You can reproduce the issue by following these steps: Enable the OpenId Server and the Validation features. Set a new value in the Authority settings in server settings. The site becomes useless, and you'll get the above exception. And as you can see, the fix for this issue is quite interesting. But why would it work by applying these changes? Well, it's due to the fact the issuer comes from potentially multiple places: - The issuer configured in the validation options (options.Issuer).- The issuer attached to a static configuration (options.Configuration.Issuer).- The issuer attached to a dynamic configuration, retrieved using OIDC discovery (accessed via options.ConfigurationManager). Recent versions of OpenIddict use options.Issuer as the source of truth and now require that the issuer attached to a static configuration - which is the case when you target a "local" server - match the global value, options.Issuer. News from the community Updated Lombiq's Open-Source Orchard Core Extensions This is an Orchard Core Visual Studio solution that contains most of Lombiq's open-source Orchard modules and themes, as well as related utilities and libraries. Please keep in mind that only those extensions included that use the latest released version of Orchard (i.e., the very cutting-edge ones depending on a nightly build are not yet here). And now, this solution has been updated to the latest and greatest 1.6 Orchard Core version. Check them out here, and install them from NuGet or from the source! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 468 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!

FeatureEventHandler base class, settings to create robots.txt file from site settings - This week in Orchard (23/06/2023)

Checking ListContent permission instead of IsListable in the Admin Menu, new FeatureEventHandler base class, demo about new settings to create robots.txt file from site settings, and announcing our brand new Lombiq.com site! Check out our post for the details! Orchard Core updates Check ListContent permission instead of IsListable in the Admin Menu Currently, if you want to add a content type to an admin menu, the content type would have to be listable in order to be visible. Sometimes, we want to show a content type item on the admin menu even when it is not listable. The Admin UI does not care if the content type is listable or not. All it checks for is whether the user has permission to ListContent. The logic in the admin menu should be the same as the UI. And you can easily try this out if the Admin Menu feature is enabled on your site under Configuration -> Features. But if you set up your site using the Blog recipe, you will get a predefined admin menu which you can configure from under Configuration -> Admin Menus. Here, click the Edit Nodes button near the predefined admin menu and select the Add Node button after. This will show you a modal window with the available Admin Nodes. Let's select the Content Types one, which will add a link for each one of the selected content types. And this Create Node page now will list all of the content types defined by the Blog recipe (because we logged in with the admin user), not just the ones, which are listable. FeatureEventHandler base class This addition is about adding a new FeatureEventHandler base class which implements the IFeatureEventHandler interface. The goal here was to not have to define all methods when implementing IFeatureEventHandler as we already have with ModularTenantEvents and IModularTenantEvents. This PR also applies this change to the current implementations, like for the MediaTokenSettingsUpdater and for the RoleUpdater. Demos Settings to create robots.txt file from site settings One of the challenges that we had was that the only way we can expose the robots.txt for the tenants is by placing the robots.txt file on the file system of each site or globally. There was no easy way to modify that file per tenant. This feature is about adding an ability to drive the content of the robots.txt file through settings by using a middleware allowing website owners to easily define the directives for search engine crawlers and other web robots accessing their site. Now it's time to try this one out! Let's use the nightly build packages of Orchard Core and set up your site using the Blog recipe, for example. Now, head to Configuration -> Features and enable the SEO module, which provides SEO meta-features. After that, you will see a new option under Configuration -> Settings, called SEO. If you navigate to this page, you will see some things set by default, which is to add a rule to allow web robots and then add a rule to disallow web robots to the admin routes. And those are on by default if you do not have a robots.txt file. In the Additional rules editor, you can specify your custom rules. If you have special rules, you can define them here. Now if we check out the content of the robots.txt file, we can simply navigate to https://localhost:44300/robots.txt, because we only have the default tenant right now. But of course, if we would create a tenant called the agency, you will be able to check out the content of the robots.txt file for that tenant as well under https://localhost:44300/agency/robots.txt, for example. And as you can see, the file is generated based on our settings. However, people might already be using the robots.txt file. So, we can't really override what they have. So, if they have this file in the file system and the Static File Provider feature is enabled, we're going to take that file and ignore our settings. Because otherwise, this would be a breaking change. Another thing is the added rules for the sitemaps. If you go to the Features page, enable the Sitemaps feature, and navigate back to the SEO settings page, you will see a checkbox here called Include all sitemaps. What this does is it checks all the sitemaps that you might have; if any exist, it will automatically include them. And that's not all of it! If you would like to know more about this feature, check out the documentation and head to YouTube for a recording! News from the community Renewed Lombiq.com website We launched our website when we started Lombiq, no less than 10 years ago. It was simple, clean, and functional, but it didn’t age well with upcoming trends and looks of modern websites. But now we can showcase our expertise and services in a more modern and user-friendly way. To reach our goal, we migrated from our old Orchard 1 website to Orchard Core and modernized our site's look. Our new site turned out great, and we are very happy with it. It represents who we are and what we do as a company. We hope you like it too! For our case study on building the renewed Lombiq.com, including migrating it from Orchard 1, check out "How We Renewed and Migrated lombiq.com from Orchard 1 to Orchard Core" in the Lombiq blog. And we also added our site to Show Orchard, which is an Orchard CMS showcase, displaying Orchard CMS (including Orchard 1 and Orchard Core) powered sites from around the web. If you are interested in more websites using Orchard and Orchard Core, don't forget to visit Show Orchard. Show Orchard is a website for showing representative Orchard CMS (and now Orchard Core) websites all around the internet. Ryan Drew Burnett started it, but since he doesn't work with Orchard anymore, as announced earlier, it is now maintained by our team at Lombiq Technologies. Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 467 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!