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 >

Upgrade the Default Theme to use Bootstrap 5.3.2, migrating an Orchard 1 DotNest site to Orchard Core - This week in Orchard (03/11/2023)

Upgrading the Default Theme to use Bootstrap 5.3.2, adding placeholder for Taxonomy Part and Taxonomy Field Settings, and a case study about migrating an Orchard 1 DotNest site to Orchard Core! Check out our post for the details! Orchard Core updates Upgrade the Default Theme to use Bootstrap 5.3.2 Last week we mentioned that the admin theme of Orchard Core has been upgraded to use Bootstrap 5.3.2. Now the Default Theme also utilizes this version of Bootstrap, and the same improvements are applied here as for the admin theme. Now, you can use the same Bootstrap version for a front-end theme and a back-end theme. It also affects performance because from now on you don't have to worry about loading or caching two different libraries. The front-end theme now also has a theme toggler, so you can easily switch between a light theme and a dark theme, and if you want to implement your color, you can add your theme and use that for the admin and the front-end theme, as well. In this case, we set up our site with the Software as a Service recipe because the default Site theme here is the TheTheme. As you can see in the GIF, both the back-end and the front-end theme have three modes, and you can easily switch between them. Add placeholder for Taxonomy Part and Taxonomy Field Settings When adding a new Taxonomy, the Term Content Type dropdown by default selected the very first content type that is available in the menu because there is no placeholder. This happens because we do not have an option with no value. By default, we should have a placeholder so that the user knows that they need to select a value. Also, the Term Content Type should be a required field, and the Title Part should be required by default. Also, in the TaxonomyFieldSettings, we have the same missing-placeholder problem. And now these issues have been fixed. Here, we have a site set up with the Blog recipe. We edited the definition with the Blog Post content type and added a Taxonomy Field to it. When we hit Edit near our newly added Taxonomy Field, you can see the Select a Taxonomy placeholder in the dropdown. And if you create a new Taxonomy content item, you can see another placeholder in the Term Content Type dropdown. News from the community Show Orchard case study: Migrating an Orchard 1 DotNest site to Orchard Core Maybe you have already heard about Show Orchard. Show Orchard is a website for showing representative Orchard CMS (and now Orchard Core) websites all around the internet. It was started by Ryan Drew Burnett, but since he doesn't work with Orchard anymore, as announced earlier, it is now maintained by our team at Lombiq Technologies. If we add a new website to Show Orchard, we always announce it in the This week in Orchard series. Like we just did a few weeks ago when we added the website of Property Brokers, which is New Zealand's largest regional real estate agency. Though the Show Orchard website is simplistic in its design, migrating data and re-implementing various elements presented its own set of challenges. Nonetheless, we are pleased to announce that the site is now seamlessly operating on DotNest Core. Our next step is to transition all of our remaining DotNest sites to Core as well. If you're considering migrating your Orchard 1 website to DotNest Core, this is an excellent time. Should you have any questions or encounter challenges, don’t hesitate to reach out to us. We're always ready to bring our expertise to your unique project needs. Get in touch with us today, and let's start making your Orchard Core website even better! And don't forget to check out our case study about the details of the migration! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 485 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!

Upgrade to Bootstrap 5.3.2, periodic Orchard Core Workshops - This week in Orchard (27/10/2023)

Upgrading the Admin theme to use Bootstrap 5.3.2, displaying the Orchard Core logo in the HTML head in Admin branding, and a discussion about having Orchard Core Workshops again! Check out our post for the details! Orchard Core updates Upgrade to Bootstrap 5.3.2 Orchard Core is now using Bootstrap 5.3.2, which is a major upgrade because the previously used version of Bootstrap was Bootstrap 4. Most of the assets of the Admin theme were reinvented to make them compliant with Bootstrap for many reasons. One of them is the maintainability because we don't have a lot of overrides so we tried to code along instead of going against Bootstrap. If the next version of Bootstrap is released, it will be easy to update Orchard Core to use that version. This version of Bootstrap supports themes. There is support for dark and light themes; you can also add any other theme you might want. If you want to add a blue theme, you can achieve that using Bootstrap 5.3.2. Previously we used to have our own dark mode and default theme. So, those now are supported by Bootstrap. Because of this reason, one of the breaking changes is we no longer use the phrases: theme, dark theme (from the Bootstrap perspective). It is now called dark and light. And by default, we use auto. What auto does, is it automatically honors your preferences. This means that if you are using a dark theme on your phone, your Orchard Core website will load dark by default. Another improvement is separating Bootstrap from the Admin theme assets. Before the admin.scss used to include Bootstrap within it. And also, admin.js used to include Bootstrap within it. It means we complied them together, and we shipped them that way. With the new layout, we separated the two. The admin.scss or the admin.js are much lighter files but they are loaded after we load Bootstrap. The benefit of that is our code is completely independent of Bootstrap. If you open up the source code of Orchard Core and check the files inside the TheAdmin theme, you will notice one main file under the Assets/scss folder, called index.scss. Here we import some main stuff and the necessary components. At the end of the file, you can see that we are including the light and the dark themes. If you need to add your custom theme, you can include it as we included the dark theme for example. If you check out the _index.scss file of the dark theme (under the scss/themes/dark folder,) you can see how we utilize the color-mode function to create a scope for the dark theme. And only do these overrides and make these changes when it's dark. You can do the same thing for your theme. Displaying the Orchard Core logo in the HTML head in Admin branding By default, the Orchard Core logo and site name are displayed in the top navbar in the admin theme. In this change, the favicon is surrounded by zone "HeadMeta" to put it in the HTML head. The documentation is also updated to reflect this change. News from the community Periodic Orchard Core Workshops As you may remember we had a couple of workshops before in 2020. They were about various aspects of Orchard Core, including the built-in modules or the most important part of the built-in modules and how to use them, theme development, module development, deploying to Azure, etc. We think that those workshops were very useful for the community and we should do that often or at least periodically, like twice a year. Just have this as an easily accessible way of getting a bit of personalized Orchard Core training. Because we have tutorials and videos, so, currently if you want to learn on your own, you can do that from those or the code. If you want personalized training, you can get in touch with any community member or Lombiq and get one. But kind of in between, there is nothing, there are no open courses, classroom-kind courses that you can just sign up and be there with multiple people. If you are interested, jump into this GitHub discussion and tell us your opinion about this idea! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 489 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!

Orchard Core 1.7.1 and Orchard Core 1.7.2 - This week in Orchard (20/10/2023)

Orchard Core 1.7.1 and Orchard Core 1.7.2 have been released to address some issues of the 1.7.0 release. In our current post, we will check out everything that you should know about the latest release of Orchard Core! Check out our post for the details! Orchard Core updates Fix workflow page list issue when using PostgreSQL When a new Orchard Core 1.7 application using PostgreSQL is started, the Workflow page (/Admin/Workflows/Types) gives an error when opening. This error happened after upgrading a 1.6 project using PostgreSQL to 1.7. If you did a clean installation via the Orchard Core repo, you encountered this error again when using PostgreSQL. If you are using SQLite, this problem does not occur. The issue was in the following query that caused problems with PostgreSQL: "SELECT DISTINCT WorkflowTypeId FROM \"WorkflowIndex\"" After the fix, the query looks like the following: "SELECT DISTINCT \"WorkflowIndex\".\"WorkflowTypeId\" FROM \"WorkflowIndex\"" Set index length limit for MySQL Multiple exceptions were thrown when you started a new MySQL-based instance of Orchard Core 1.7, and of course, the expected behavior is to start the application successfully without any exception. The issue was the following. An index entry in MySQL can't contain more than 3072 bytes. With the current default utf8nb4 collation, this accounts for 768 chars. This means that all the fields that make up an index entry can't go over that, but only in MySQL. MySQL has a custom syntax to define the prefix size of an index, meaning the amount of data to use for each field. For instance, we can limit the Alias field size in the index with CREATE INDEX ... (DocumentId, Alias(50), ...), and then it would only take the first 50 chars even if the content is bigger. This way, we can have limits on the content itself, MaxAliasSize, but a distinct max size for the index. And we wouldn't need to constrain the field size to the index size for MySQL. In YesSql the columns names are injected as-is in the SQL Query:https://github.com/sebastienros/yessql/blob/c0771eb555c67bf419859016cb3563a3540fe7c7/src/YesSql.Core/Sql/BaseComandInterpreter.cs#L233 So, if we change the current migration to something like this, this would work as long as the sum of these constraints is less than 767 chars. SchemaBuilder.AlterIndexTable<AliasPartIndex>(table => table .CreateIndex( "IDX_AliasPartIndex_DocumentId", "DocumentId", "Alias(123)", "ContentItemId", "Published", "Latest")); News from the community Orchard Core 1.7.1 and Orchard Core 1.7.2 Orchard Core 1.7.2 was released a few days after the 1.7.1 one to address some issues of the 1.7.0 release. If you open up nuget.org and search for the OrchardCore.Application.Cms.Targets package, you will find the newest released version of Orchard Core! Upgrade your solution to 1.7.2 now! Feel free to drop on the dedicated Gitter chat or use the Discussions on GitHub and ask questions! Let's just quickly list the fixes that have been addressed in the latest release. If you click on each, you will be redirected to the related This week in Orchard post, where you can find more details about them. Position the modal over the navbar Two alerts are displayed in admin settings to reload the current tenant Add a fallback function to crypto.randomUUID Fix workflow page list issue when using PostgreSQL (current post) Set index length limit for MySQL (current post) 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!

Add a fallback function to crypto.randomUUID, Property Brokers is using Orchard Core - This week in Orchard (13/10/2023)

Add IsViewOrPageResult extension, add a fallback function to crypto.randomUUID; and the brand-new Orchard Core site of Property Brokers! Check out our post for the details! Orchard Core updates Add IsViewOrPageResult extension In the filters, we need to inject stuff only if the request is in full view. And in Orchard Core, we need to do this check a lot. To decide whether the rendering result is a full view, you can use the newly added IsViewOrPageResult extension. Add a fallback function to crypto.randomUUID The issue here was the crypto.randomUUID function is only available in the HTTPS context, not in HTTP. In HTTP, you get the following error in the console: crypto.randomUUID is not a function. We use this method to upload images to the Media Library. In an HTTP context, if you access the Media Library and upload a file, nothing happens, and you will get the mentioned error in the console. There is a website called HTTP Forever, which does not use HTTPS. If you visit this site and type the crypto.randomUUID() in the console, you will get an error saying it's not a function. But if you visit a site that uses HTTPS, like Lombiq.com, and type the same in the console, you will get a result. So, the crypto exists on HTTP, but the randomUUID function is not. Of course, shipping a website that is not HTTPS is maybe not a good idea but if you have a preview/staging environment where you don't want to maintain SSL certificates and so on, you may use HTTP. After this fix, if you host your Orchard Core site in HTTP, you will be able to call this function and upload files to the Media Library. News from the community A new website using Orchard Core: Property Brokers Property Brokers is New Zealand's largest regional real estate agency. Check out this brand-new, amazing-looking Orchard Core site here! 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. It was started by Ryan Drew Burnett, 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 493 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!

Position the modal over the navbar, updated Lombiq's Open-Source Orchard Core Extensions - This week in Orchard (06/10/2023)

Position the modal over the navbar, fixing that two alerts are displayed in admin settings to reload the current tenant, and our Open-Source Orchard Core Extensions solution is updated to Orchard Core 1.7! Check out our post for the details! Orchard Core updates Position the modal over the navbar In the admin UI of Orchard Core, we are using Bootstrap modals to add dialogs for lightboxes, user notifications, or other Orchard Core-specific content, like adding deployment steps to your deployment plan. We had a UI issue regarding the modals, meaning whenever there is a large modal, the modal shows up under the top navbar. When a modal is open, it shows the most visible. It is fixed, and now, the modal is displaying before the navbar. Two alerts are displayed in admin settings to reload the current tenant Some pages in Orchard Core (like /Admin/Settings/email, /Admin/Settings/localization, /Admin/Settings/SecurityHeader, which pages contain settings that will reload your current tenant if you hit Save) display two identical warning alerts: The current tenant will be reloaded when the settings are saved. The problem is happening because the Settings_Wrapper__General wrapper is always injected for all settings regardless of the group ID, but we should only apply the wrapper when the group is "general". Here you can see that there's a new IsGeneralGroup method in the DefaultSiteSettingsDisplayDriver that checks whether the current group ID equals "general". News from the community Updated Lombiq's Open-Source Orchard Core Extensions This Orchard Core Visual Studio solution 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.7 Orchard Core version. Check them out here, and install them from NuGet or from the source! Bug reports, feature requests, comments, questions, and code contributions are warmly welcome, please do so via GitHub issues and pull requests. Please adhere to our open-source guidelines while doing so. Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 498 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 media file settings for allowed file types, Lombiq’s Journey with WTW’s Client Portal - This week in Orchard (29/09/2023)

Make UserMenu and LoginMenu extensible to using drivers, add media file settings for allowed file types, and a blog post about Lombiq’s Journey with WTW’s Client Portal! Let's see the details in our post! Orchard Core updates Make UserMenu and LoginMenu extensible to using drivers Currently, there is no easy way to extend or inject items in UserMenu and LoginMenu. This is because all items in there are hard coded. If you remember, a few weeks ago we talked about the User Display Name and the User Avatar features, and in the recording, Mike Alhayek showed how difficult it is to change the UserMenu or LoginMenu shapes. The suggestion was to make these shapes extensible. From now on, to inject new menu items in either the LoginMenu or UserMenu you can implement and register an implementation of DisplayDriver<UserMenu>. The Detail display type is used to create the front-end menu, whereas the DetailAdmin is used to create the admin menu. Here you can see screenshots from TheTheme theme and from TheAdmin theme. As you can see, every menu item has its own shape which makes extending the items of these menus way more flexible. Add media file settings for allowed file types Currently, when using Media Field, there is no way to restrict which file types can be used. Any extension that is uploaded can be selected. This works great for the most part. But what if you want to allow specific types? For example, creating a slide show of some sort. You should not be able to select non-image files for a slide show. Having a way to specify image extensions will help in this case. And here comes the new settings! Here, you can see that we have a content type called Slide Show Item. This content type has a Media Field attached, called Pictures. If you edit the Pictures Media field, you have a way to set the allowed media types (image types for our case) by using the image types checkbox which helps you to select all the file extensions with the "image" type. With the help of this friendly UI, you can easily say that you only allow users to upload images using the Pictures Media Field. Note the list of the extensions here comes from existing MediaOptions. News from the community Lombiq’s Journey with WTW’s Client Portal WTW is a multinational company providing services, such as insurance brokerage, risk management, and human resources consulting. Recently we implemented a specialized Orchard Core Client Portal for them. It was an exciting project, and we delivered it on time. While the final steps on the rest of the architecture are being completed, the whole portal is gradually being rolled out to users during the summer of 2023. If you are interested in the details, check out this case study for more! 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!

Extending ISetupEventHandler with new events, your DotNest site (almost) never goes down - This week in Orchard (22/09/2023)

Extending ISetupEventHandler with new events, do not specify placement position in the content field/part display drivers, and a blog post about the reliability of your DotNest sites! Let's see the details in our post! Orchard Core updates Extending ISetupEventHandler with new events We have an ISetupEventHandler interface in Orchard with a method called Setup. When there is a setup on a new tenant, we call this method. Now this method is marked as an obsolete one and will be removed in future releases. If you rebuild your Orchard Core solution in the future, it will tell you to use the new SetupAsync instead. If you have an implementation of this interface, it will still work because the newly added FailedAsync and SucceededAsync methods have default implementations. It means you don't need an abstract base class. Do not specify placement position in the content field/part display drivers Content elements or fields can be attached to a content type. Their UI placement should follow the subsequent guidelines. So, if the first step defines a position, we use that position and look no further. DisplayDriver. A placement is defined on the UI using the OrchardCore.Placements. The placements.json file. Default Position in the content type. Otherwise, it should fall back to the physical placement of the object in the content definition. For this logic to work as expected, the ContentPartDisplayDriver or the ContentFieldDisplayDriver should define a placement location by default, but not a placement position. This way, we can allow to change the order using Steps 2-5 as needed. In the following drivers, we seem to be defining a placement position that prevents the user from being able to change that position at all. FacebookPluginPartDisplayDriver BagPartDisplayDriver FlowPartDisplayDriver HtmlBodyPartDisplayDriver LiquidPartDisplayDriver MarkdownBodyPartDisplayDriver TaxonomyPartDisplayDriver TitlePartDisplayDriver For example, today if you use HtmlBodyPart, there is no easy way to change its placement because the HtmlBodyPartDisplayDriver defines a position 5. Meaning if you have a placement in the driver, there is no easy way to override it from the UI. If we leave these positions, blank it will fall back to the user settings. News from the community Your DotNest site (almost) never goes down Orchard Core and Orchard 1.x sites you host on DotNest almost never go down, with 99.99% availability in the last 3 months. Check out the details in our latest blog post here. If you haven't done it already and want to host your sites on the hugely reliable DotNest, create your site here! We also guarantee reliability in our Terms of Service. 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!

Support more searchable file types in Elasticsearch, having a community manager - This week in Orchard (15/09/2023)

Add support for multiple media files in Elasticsearch and support more searchable file types in Elasticsearch! Let's see the details in our post and jump into a discussion about having a community manager! Orchard Core updates Add support for multiple media files in Elasticsearch We support searching PDF files in Elasticsearch. We do this by reading the text of the PDF file found in Media Field and saving the text from the PDF file into a custom index in Elasticsearch. This is great, because now anytime a user searches for a text found in the PDF file, we return the content items where the PDF belongs. The problem is that we only store the text of the first attached PDF file, not all of it. The solution is when trying to index a Text/String-based field, we should add all the values to the same index key. This will allow the content of multiple files to be indexed as expected. Support more searchable file types in Elasticsearch And while we are talking about improving Elasticsearch, here comes another goodie again by Mike Alhayek! Until this improvement, we only supported searching in PDF files in Elasticsearch, but we should be able to search .doc, .docx, .txt, .rtf, .ppt, .pptx. We can easily use Open XML SDK to add this support. The Open XML SDK provides tools for working with Office Word, Excel, and PowerPoint documents. If you navigate to Configuration -> Features, you will find a new feature called Media Indexing, which extends the media indexing capability to also encompass searching within files with the following extensions .txt, .md, .docx, and .pptx. If you check the files under the Indexing folder of the OrchardCore.Media library, you will find three new ones called PresentationDocumentMediaFileTextProvider, TextMediaFileTextProvider, and WordDocumentMediaFileTextProvider allowing you to index the content of the mentioned file types. News from the community Having a community manager The community had a discussion last week about having a community manager. There is no person in the Orchard world who would pretty much deal with marketing and design for Orchard, like doing that for a product. Things that a marketing manager or a product owner or something like that does for a paid product. Orchard Core is not like that but for open-source projects and communities, a community manager is the person who does such things. Get the word out, and evangelize Orchard, not just in word-of-mouth but in a systematic way. Make marketing in general and shepherd the project, so it follows the requirements and the needs of the community, and the manager responds to what happens in the world and does things that developers don't really like to do. Let's have this discussion in detail! Do you agree, do you have people you think would be suitable? What do you think about this? Chime into the following discussion and tell us your opinion! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 521 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!

Orchard Core 1.7, customizable user display name and avatar - This week in Orchard (08/09/2023)

We are thrilled to announce that Orchard Core 1.7 is now available! Check out this post to know everything about the latest release of Orchard Core. In the upcoming weeks, we will check out the newest features and additions of Orchard Core 1.7. Let's get started! Orchard Core updates Add GraphQL types to the SEO module The SEO module of Orchard Core provides Search Engine Optimization (SEO) features: Meta description, keywords, robots, and custom meta tags Canonical URL Open Graph metadata Twitter Card Tags Google schema If you enable the SEO module, you can attach the SeoMeta Part to your content type that allows SEO meta descriptions to be applied to a content item. Let's enable this module and attach the SeoMeta Part to our sample Blog Post content type! Now, if we edit the predefined blog post, we will have a SEO tab, where we can provide the SEO-related settings. The issue was all the Seo meta fields should appear in the GraphiQL interface and be queriable. To test out this fix, we have to navigate to Configuration -> GraphiQL and run a query where we want to check out the SEO meta-related fields. Here you can see that we printed the page title, the canonical URL, and the meta description too. Fix the admin UI sort When you import many contents with the same ModifiedUtc, the pager logic will not work correctly and some items will be skipped when trying to paginate. With this fix, we add a sort by ID after the sorted value to ensure no records are skipped due to the identical value. Demos Customizable user display name and avatar We wanted a way to be able to change how the user name is displayed because the user name itself is too technical. We really don't have a way to change the displayed user name, so the CrestApps.Components.Users NuGet package contains a feature called User Display Name, that provides a way to change how the user name is displayed. The other feature of this package, User Avatar, provides a way to display an avatar for each user. Let's add this package to our Orchard site and enable both features under the Configuration -> Features screen! Now if you head to Security -> Users and edit a user, you will find a way to upload an avatar. If you do that and hit Save, you can see your avatar in the top-right corner and in the content items list if you navigate to Content -> Content Items. The other feature is about changing the whole name. First of all, let's navigate to Configuration -> Settings -> User Display Name! Here you can change how you want the name to be displayed using the Display Name Format select list. Here we specified the First Middle and Lastname format but you can say that you want to use a custom format (if the predefined ones are not suitable for your needs) and use Liquid to define your own format. We also say that you have to specify the first name and the last name for every user (if you edit a user, these values will be required) but the middle name is optional. We will not need the display name text box on the user editor, we will generate it using the display name format. If we edit an existing user, we will have the First Name, Middle Name, and Last Name text boxes. If we enter some values inside, you will see that the format of the user name has been changed in the top-right corner (and in the content items list if you navigate to Content -> Content Items) based on the format we have just set up earlier. If you would like to know more about these features along with some technical details and more goodies, head to YouTube for a recording! News from the community Orchard Core 1.7 The community recently released the latest 1.7 version of Orchard Core with several new features and additions! There's a new SMS and SMS Notifications module that provides a way to send SMS messages and notifications to users using SMS services. And by utilizing the new two-factor SMS Method feature, you can also transmit a two-factor authentication code to the user via SMS. And yes, this means that starting with version 1.7, Orchard Core is shipped with everything you need to secure your app with two-factor authentication. The Lucene and Elasticsearch features are capable of searching within PDF files because PDF files are indexed by default. As an enhancement, we added a new feature called Media Indexing which extends the media indexing capability to also encompass searching within files with the following extensions .txt, .md, .docx, and .pptx. And we have a lot more to cover! Here are all the details of the release. Orchard Core is available as a NuGet package which you can easily add to your ASP.NET Core solution. Here’s how you can get started with Orchard Core. Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 547 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 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!