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

Featured tags

IIS
API
SMS
SEO
All tags >

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!

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!