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 >

Blazor guide for decoupled CMS, Workflow Trimming Task - This week in Orchard (06/09/2024)

Blazor guide for decoupled CMS, a new Workflow Trimming Task, and our renewed Orchard Dojo website are the topics for this week. You can still cast your votes for the Jean-Thierry Kéchichian Community Award! Only one week left until the Orchard Harvest conference! Let's see the news for this week!

Add option to set CORS exposed headers, add example for adding basic content type filters - This week in Orchard (12/07/2024)

Add SiteSettings extensions for custom settings and to get settings by name, add an example for adding basic content type filters, and add an option to set CORS exposed headers are the topics for this week. Don't forget to join our next Orchard Core Pair Programming session, where we'll build the Orchard Core backend of a Blazor app! Note that the registration for the Orchard Harvest 2024 conference is still open! Without further ado, let's dive in! Orchard Core updates Add SiteSettings extensions for custom settings and to get settings by name New extension methods named GetSettingsAsync<T>() and GetSettingsAsync<T>("") were added to the ISiteService interface. These methods allow you to retrieve specific settings with a single line of code. For example, to get the LoginSettings, you can now use: await _siteService.GetSettingsAsync<LoginSettings>(); Previously, achieving the same result required more code: (await _siteService.GetSiteSettingsAsync()).As<LoginSettings>(); And another new extension method named GetCustomSettingsAsync() was added to the ISiteService interface. This method allows you to retrieve custom settings. For example, to get custom settings of type BlogSettings, you can now use: ContentItem blogSettings = await _siteService.GetCustomSettingsAsync("BlogSettings"); Previously, achieving the same result required more code: var siteSettings = await _siteService.GetSiteSettingsAsync();var blogSettings = siteSettings.As<ContentItem>("BlogSettings"); Add an example for adding basic content type filters Developers may face challenges when attempting to create basic content-type filters. This recurring issue suggests that there might be a gap in the documentation that leaves developers without clear guidance on this relatively straightforward task. Mostly, it was about developers not knowing about this possibility, failing the importance of using WhereInputQueryObjectType, or needing to register IIndexAliasProvider. The solution here is to improve the developer experience and address this problem by enhancing the documentation. The GraphQL queries page in the documentation has been updated with sections focusing on guiding developers through the process of creating these filters step by step. Add option to set CORS exposed headers Currently, in the CORS module, there isn't an option to set Exposed headers. This change adds a field in the Index.cshtml to set which headers should be exposed (similar to other fields for adding origins, headers, etc.), and then in CorsOptionsConfiguration() use configurePolicy.WithExposedHeaders() (this method already exists but isn't used). To try this out quickly, we need to navigate to Configurations -> Features and enable the CORS Configuration feature, which will enable the configuration of CORS settings. Now we will see a new option in the menu under Configuration -> Settings, called CORS. If you hit the Add a policy button, you can configure the policy itself. At the bottom of the page, you will find a new section called Exposed headers where you can configure which headers should be exposed. News from the community Orchard Harvest 2024 Get ready to power up your Orchard skills at Orchard Harvest Conference 2024! Join us on September 12th-13th at the Orleans Hotel and Casino in lively Las Vegas for two days packed with learning, coding, and community fun. What can you expect at Orchard Harvest Conference 2024? Hands-On Workshops: Elevate your coding game with interactive sessions led by industry experts. Insider Insights: Learn best practices, advanced techniques, and real-world insights from qualified developers. Global Connections: Connect with fellow enthusiasts, exchange ideas, and forge meaningful relationships within the Orchard community. Special Perks: Participants get exclusive discounts on accommodations at the Orleans Hotel and Casino. Can't wait until September? Check out recordings from last year's special online Orchard Harvest on our YouTube channel here. Ready to be a part of something extraordinary? Reserve your spot today and take advantage of early-bird pricing at Orchard Harvest Conference 2024. This year's leading themes: Leading up to a v3.0, what will the future Orchard Core look like? What's the role of a CMS nowadays (with the decoupled/headless operating models, and AI development tools) Explore some advanced topics such as Shapes, Placements, Cloud Integrations, Performance, module extensibility, etc. Showcases on implementing Orchard Core in action. Want to support our mission? Become a sponsor! Reach out to us at [email protected] or [email protected] to explore sponsorship opportunities. Secure your spot today and get ready to level up your skills at Orchard Harvest Conference 2024! See you there! Blazor app's backend in Orchard Core with Peter Matthews - Orchard Core Pair Programming by Lombiq We'll have the next session of Orchard Core Pair Programming by Lombiq! In these, we do an hour of pair programming with an Orchard Core community member about a project of theirs. We learn together a lot, share best practices, and write some good code. All this is live, and you can join us with your questions! Here, you can find the previous pair programming sessions, and here, you can find the stream for the upcoming one! See you at 5 PM UTC on the 15th! Peter Matthews joins us again after https://youtube.com/live/IZioflrC1Ho. Previously, we've seen the basics of building a Blazor app that uses Orchard Core as its content backend. Now, we'll look into the actual, real-world production application Peter has built, and go hardcore! Your host and the "navigator" of the pair programming session will be Zoltán Lehóczky from Lombiq. Would you like to be our guest? Just let us know! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 469 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!

Cleanup IContentManager, updated Azure Application Insights module - This week in Orchard (21/06/2024)

Documentation about opening and managing issues, cleanup IContentManager, and the updated Azure Application Insights module for Orchard Core are the topics for this week. You can still apply to speak at Harvest 2024 and share your insights on Orchard Core's future, CMS roles, AI tools, cloud integrations, and more! Let's see the details! Orchard Core updates Issue management documentation, auto-close, and triage comment workflow Now all the bugs and PRs are closed automatically. If there is no activity after 15 days on a PR, we close it but only if the need author feedback is present. So, if we can't merge the PR because we don't have enough information and there is no answer for 15 days then the PR will be closed. But you can reopen it if you have time to answer later. All of the stuff related to opening and managing issues is documented here. You can read about how to open an issue, what happens after you open an issue, or how to manage issues as a core contributor. Cleanup IContentManager The IContentManager interface was modified. The method Task<IEnumerable<ContentItem>> GetAsync(IEnumerable<string> contentItemIds, bool latest = false) was removed. Instead, use the method that accepts VersionOptions by providing either VersionOptions.Latest or VersionOptions.Published will be used by default. Additionally, the GetContentItemByHandleAsync(string handle, bool latest = false) and GetContentItemByIdAsync(string contentItemId, bool latest = false) were removed from IOrchardHelper. Instead, use the method that accepts VersionOptions by providing either VersionOptions.Latest or VersionOptions.Published will be used by default. Lastly, we dropped support for AllVersions option in VersionOptions. Instead, you can use the new GetAllVersionsAsync(string contentItemId) method on IContentManager. News from the community Orchard Harvest 2024 date and location Get ready to power up your Orchard skills at Orchard Harvest Conference 2024! Join us on September 12th-13th at the Orleans Hotel and Casino in lively Las Vegas for two days packed with learning, coding, and community fun. What can you expect at Orchard Harvest Conference 2024? Hands-On Workshops: Elevate your coding game with interactive sessions led by industry experts. Insider Insights: Learn best practices, advanced techniques, and real-world insights from qualified developers. Global Connections: Connect with fellow enthusiasts, exchange ideas, and forge meaningful relationships within the Orchard community. Special Perks: Participants get exclusive discounts on accommodations at the Orleans Hotel and Casino. Can't wait until September? Check out recordings from last year's special online Orchard Harvest on our YouTube channel here. Ready to be a part of something extraordinary? Reserve your spot today and take advantage of early-bird pricing at Orchard Harvest Conference 2024. We also opened the registration form for the speakers: https://forms.office.com/e/fewh7hh20d This year's leading themes: Leading up to a v3.0, what will the future Orchard Core look like? What's the role of a CMS nowadays (with the decoupled/headless operating models, and AI development tools) Explore some advanced topics such as Shapes, Placements, Cloud Integrations, Performance, module extensibility, etc. Showcases on implementing Orchard Core in action. We've extended the sign-up period by another 2 weeks, so if you haven't signed up yet, you can still sign up now! Apply to be a speaker until the 29th of June, midnight Anywhere on Earth! We'll notify you whether your talk is selected for Harvest in 1 or 2 weeks after the application period. The chosen speakers will receive complimentary tickets for the event. Want to support our mission? Become a sponsor! Reach out to us at [email protected] or [email protected] to explore sponsorship opportunities. Secure your spot today and get ready to level up your skills at Orchard Harvest Conference 2024! See you there! Updated Azure Application Insights module for Orchard Core Our Orchard Core module enables easy integration of Azure Application Insights telemetry into Orchard. Just install the module, configure the instrumentation key from a configuration source, and the collected data will start appearing in the Azure Portal. Check out the module's demo here! We have recently updated this module to version 8.1.0, now with Entra ID authentication! Well before the 30 September 2025 deadline when Azure deprecates API keys. Check out the module's details and install it from NuGet here. Do you want to quickly try out this project and see it in action? Check it out in our Open-Source Orchard Core Extensions full Orchard Core solution and also see our other useful Orchard Core-related open-source projects! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 472 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 Notify Specific Users Task, benchmarking documentation - This week in Orchard (14/06/2024)

New Notify Specific Users Tasks and the new Benchmarking documentation are the topics for this week. You can still apply to speak at Harvest 2024 and share your insights on Orchard Core's future, CMS roles, AI tools, cloud integrations, and more! Don't forget to join our next Orchard Core Pair Programming session, where we'll run through using Blazor as a decoupled front end for Orchard Core! Let's see the details! Orchard Core updates Benchmarking documentation There's a new page in the documentation of Orchard Core about benchmarking. To measure how fast Orchard Core is, we employ some benchmarking. Here, you can read some lines about the OrchardCore.Benchmarks project, where we have several benchmarks created with BenchMarkDotNet. You can also read about how to run benchmarks and how to check the performance of Orchard Core using ASP.NET Core Benchmarks. New Notify Specific Users Task In the past, we had a task called Notify User Task. By using this task, you could send a notification to the user who is available in the WorkflowExecutionContext when executing a workflow. Recently, the community modified this Notify User Task and renamed it to Notify Specific Users Task. The goal of this change was to be able to specify a user or a comma-separated list of user names (Liquid is also supported) who will be the recipient of the notification. Let's see how you can use this task in your workflow! First of all, you need to enable the Notifications and the Workflows features, which you can do under Configuration -> Features by using the admin UI of Orchard Core. The Notifications feature is needed because this will provide a way to notify users and to have the Notification Center. Now navigate to the Workflows option where we will create a simple workflow that will send a notification to a user when a Blog Post content item is created. The startup task of this workflow will be the Content Created event, where we filter on the Blog Post content type. The next one will be the Notify Specific Users Task. Here, we typed the AuthorUser text into the User names textbox. We previously created a user with the user name AuthorUser, which means that this user will get the notification. We also provided a subject and a summary. This means we are ready with our workflow, it's time to try it out. To do that, just create a new blog post. We used the admin UI of Orchard Core to do that. To be able to make sure that our workflow is executed successfully, we need to log in with the AuthorUser. To be able to navigate to the Notification Center, we need to click on the little bell icon at the top-right corner of the screen. Here, you can see that we have one unread notification with the subject and the summary that we provided when we constructed our Nofify Specific Users Task. News from the community Orchard Harvest 2024 date and location Get ready to power up your Orchard skills at Orchard Harvest Conference 2024! Join us on September 12th-13th at the Orleans Hotel and Casino in lively Las Vegas for two days packed with learning, coding, and community fun. What can you expect at Orchard Harvest Conference 2024? Hands-On Workshops: Elevate your coding game with interactive sessions led by industry experts. Insider Insights: Learn best practices, advanced techniques, and real-world insights from qualified developers. Global Connections: Connect with fellow enthusiasts, exchange ideas, and forge meaningful relationships within the Orchard community. Special Perks: Participants get exclusive discounts on accommodations at the Orleans Hotel and Casino. Can't wait until September? Check out recordings from last year's special online Orchard Harvest on our YouTube channel here. Ready to be a part of something extraordinary? Reserve your spot today and take advantage of early-bird pricing at Orchard Harvest Conference 2024. We also opened the registration form for the speakers: https://forms.office.com/e/fewh7hh20d This year's leading themes: Leading up to a v3.0, what will the future Orchard Core look like? What's the role of a CMS nowadays (with the decoupled/headless operating models, and AI development tools) Explore some advanced topics such as Shapes, Placements, Cloud Integrations, Performance, module extensibility, etc. Showcases on implementing Orchard Core in action. We've extended the sign-up period by another 2 weeks, so if you haven't signed up yet, you can still sign up now! Apply to be a speaker until the 29th of June, midnight Anywhere on Earth! We'll notify you whether your talk is selected for Harvest in 1 or 2 weeks after the application period. The chosen speakers will receive complimentary tickets for the event. Want to support our mission? Become a sponsor! Reach out to us at [email protected] or [email protected] to explore sponsorship opportunities. Secure your spot today and get ready to level up your skills at Orchard Harvest Conference 2024! See you there! Blazor and Orchard Core with Peter Matthews - Orchard Core Pair Programming by Lombiq We'll have the seventh session of Orchard Core Pair Programming by Lombiq! In these, we do an hour of pair programming with an Orchard Core community member about a project of theirs. We learn together a lot, share best practices, and write some good code. All this is live, and you can join us with your questions! Here, you can find the previous pair programming sessions, and here, you can find the stream for the upcoming one! See you at 5 PM UTC on the 17th! Peter Matthews joins us this time. We'll run through using Blazor (.NET 8) as a decoupled frontend for Orchard Core. From File → New Project to production, with instructions on project setup, and a walkthrough of a fully fleshed-out site. Your host and the "navigator" of the pair programming session will be Zoltán Lehóczky from Lombiq. Would you like to be our guest? Just let us know! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 472 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 Autocomplete to the Stereotype text box, Lucene Search in practice - This week in Orchard (07/06/2024)

Add Autocomplete to the Stereotype text box, add Content Item ApiController.cs endpoints documentation, and a demo about Lucene Search in practice are the topics for this week. Don't forget to join our next Orchard Core Pair Programming session, where we'll continue building a decoupled CMS project! Let's see the details! Orchard Core updates Add Autocomplete to the Stereotype text box Now, the Stereotype is a text box, that is not user-friendly when making changes. For example, you may enter UserCustomSettings instead of CustomUserSettings. The goal here is to have some way to get all the Stereotypes that are currently supported by the system, and then list them, for example, by adding a dropdown menu to the Stereotype text box where you can still type what you want. Let's see this quickly in action! First of all, head to the admin UI of Orchard Core and edit the Content Definition of the predefined Blog Post content type by navigating to Content -> Content Definition -> Content Types (assuming you set up your site using the Blog recipe). Here, find the Stereotype text box and simply click on it. Once you do it, you will find a list showing you all of the stereotypes that are currently available on your site. Adding Content Item ApiController.cs endpoints documentation The OrchardCore.Contents module provides RESTful API endpoints via minimal API featuring endpoints to manage content items. These endpoints allow for operations such as retrieving, creating, updating, and deleting single content item instances. Access to these endpoints requires authentication and appropriate user role permissions. The documentation of the Contents module has been updated by adding Useful modules and libraries Activating the "OpenId Authorization Server" and "OpenId Token Validation" Features, and setting User Roles Contents API Controller Endpoints Demos Lucene Search in practice This is the Brittany All Cases management platform of Bethany built on top of Orchard Core CMS, using the full CMS, not just the framework. In this demo, you can see the search pages, where you can do the obvious search using queries. But you can also filter by different fields and properties on all added fields by marking a field as indexable. You can also do sorting by multiple things. Another feature is the different layout types. There is the normal summary view and the summary small, which is just the title and metadata. There is also a grid display type where you can add different fields that you want to display in the grid. You can also rename and remove the columns. The reason why column renaming is allowed is for the export. You can export all the search results into a CSV containing the renamed columns. And it's just the top of everything this site offers. If you are curious about what you can achieve using Orchard Core, check out this demo video on YouTube for more! News from the community Orchard Harvest 2024 date and location Get ready to power up your Orchard skills at Orchard Harvest Conference 2024! Join us on September 12th-13th at the Orleans Hotel and Casino in lively Las Vegas for two days packed with learning, coding, and community fun. What can you expect at Orchard Harvest Conference 2024? Hands-On Workshops: Elevate your coding game with interactive sessions led by industry experts. Insider Insights: Learn best practices, advanced techniques, and real-world insights from qualified developers. Global Connections: Connect with fellow enthusiasts, exchange ideas, and forge meaningful relationships within the Orchard community. Special Perks: Participants get exclusive discounts on accommodations at the Orleans Hotel and Casino. Can't wait until September? Check out recordings from last year's special online Orchard Harvest on our YouTube channel here. Ready to be a part of something extraordinary? Reserve your spot today and take advantage of early-bird pricing at Orchard Harvest Conference 2024. We also opened the registration form for the speakers: https://forms.office.com/e/fewh7hh20d This year's leading themes: Leading up to a v3.0, what will the future Orchard Core look like? What's the role of a CMS nowadays (with the decoupled/headless operating models, and AI development tools) Explore some advanced topics such as Shapes, Placements, Cloud Integrations, Performance, module extensibility, etc. Showcases on implementing Orchard Core in action. Apply to be a speaker until the 15th of June, midnight Anywhere on Earth! We'll notify you whether your talk is selected for Harvest until the end of June. The chosen speakers will receive complimentary tickets for the event. Want to support our mission? Become a sponsor! Reach out to us at [email protected] or [email protected] to explore sponsorship opportunities. Secure your spot today and get ready to level up your skills at Orchard Harvest Conference 2024! See you there! Continued decoupled Orchard Core CMS for QTA with Hisham Bin Ateya - Orchard Core Pair Programming by Lombiq We'll have the sixth session of Orchard Core Pair Programming by Lombiq! In these, we do an hour of pair programming with an Orchard Core community member about a project of theirs. We learn together a lot, share best practices, and write some good code. All this is live, and you can join us with your questions! Here, you can find the previous pair programming sessions, and here, you can find the stream for the upcoming one! See you at 5 PM UTC on the 11th! Hisham Bin Ateya, a core contributor of Orchard Core, joins us again with a follow-up to the previous stream. We'll see a decoupled CMS project he was building for the Quality Training Academy for Health Training from Saudi Arabia. Your host and the "navigator" of the pair programming session will be Zoltán Lehóczky from Lombiq. Would you like to be our guest? Just let us know! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 472 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 GraphQL support to User Picker Field, add Azure and AWS-specific Image Caches of ImageSharp - This week in Orchard (31/05/2024)

Add Azure and AWS-specific Image Caches of ImageSharp, and adding GraphQL support to the User Picker Field are the topics for this week. And don't forget to join our next Orchard Core Pair Programming session where we'll look into the basics first, how you'd start with decoupled Orchard Core! Let's see the details! Orchard Core updates Add Azure and AWS-specific Image Caches of ImageSharp When caching images resized with ImageSharp, we use PhysicalFileSystemCache. This can cause an IO bottleneck like it happens on Azure App Services. The Microsoft Azure Media and Amazon S3 Media modules have new features for replacing the default PhysicalFileSystemCache of ImageSharp that stores resized images in the local App_Data folder. Instead, you can now use Azure Blob Storage with the Azure Media ImageSharp Image Cache feature (that utilizes AzureBlobStorageImageCache), and AWS S3 with the Amazon Media ImageSharp Image Cache feature (that utilizes AWSS3StorageCache). Depending on your use case, this can provide various advantages. Check out the Azure Media and the Amazon S3 Media docs for details. Add GraphQL support to the User Picker Field You attach a User Picker Field to your content type and want to retrieve the selected user via GraphQL. To try this out, we use a site set up with the Blog recipe and head to the Content -> Content Definition -> Content Types menu to edit the content definition of the predefined Blog Post content type by adding a new User Picker Field to it. For demonstration purposes, we also created a new user on the site using the AuthorUser as the user's name. Now, we can edit the predefined blog post content item and pick the newly created AuthorUser via the recently attached User Picker Field. To try out this newly added GraphQL feature easily, we need to enable the GraphQL feature under Configuration -> Features. After that, you will find the new GraphiQL option under the Configuration menu. Here, we say that we want to retrieve the email, phoneNumber, userId, and userName properties of the user who is attached to our blog post via the User Picker Field. News from the community Orchard Harvest 2024 date and location Get ready to power up your Orchard skills at Orchard Harvest Conference 2024! Join us on September 12th-13th at the Orleans Hotel and Casino in lively Las Vegas for two days packed with learning, coding, and community fun. What can you expect at Orchard Harvest Conference 2024? Hands-On Workshops: Elevate your coding game with interactive sessions led by industry experts. Insider Insights: Learn best practices, advanced techniques, and real-world insights from qualified developers. Global Connections: Connect with fellow enthusiasts, exchange ideas, and forge meaningful relationships within the Orchard community. Special Perks: Participants get exclusive discounts on accommodations at the Orleans Hotel and Casino. Can't wait until September? Check out recordings from last year's special online Orchard Harvest on our YouTube channel here. Ready to be a part of something extraordinary? Reserve your spot today and take advantage of early-bird pricing at Orchard Harvest Conference 2024. We also opened the registration form for the speakers: https://forms.office.com/e/fewh7hh20d This year's leading themes: Leading up to a v3.0, what will the future Orchard Core look like? What's the role of a CMS nowadays (with the decoupled/headless operating models, and AI development tools) Explore some advanced topics such as Shapes, Placements, Cloud Integrations, Performance, module extensibility, etc. Showcases on implementing Orchard Core in action. Apply to be a speaker until the 15th of June, midnight Anywhere on Earth! We'll notify you whether your talk is selected for Harvest until the end of June. The chosen speakers will receive complimentary tickets for the event. Want to support our mission? Become a sponsor! Reach out to us at [email protected] or [email protected] to explore sponsorship opportunities. Secure your spot today and get ready to level up your skills at Orchard Harvest Conference 2024! See you there! Decoupled Orchard Core CMS for QTA with Hisham Bin Ateya - Orchard Core Pair Programming by Lombiq We'll have the fifth session of Orchard Core Pair Programming by Lombiq! In these, we do an hour of pair programming with an Orchard Core community member about a project of theirs. We learn together a lot, share best practices, and write some good code. All this is live, and you can join us with your questions! Here, you can find the previous pair programming sessions, and here, you can find the stream for the upcoming one! See you at 5 PM UTC on the 3rd! Hisham Bin Ateya, a core contributor of Orchard Core, joins us with a decoupled CMS project he built for the Quality Training Academy for Health Training from Saudi Arabia. We'll look into the basics first, how you'd start with decoupled Orchard Core. Next, we'll check out more of it in action: Decoupled CMS using Razor Pages/MVC Modularity We could explore some other features like import content, taxonomies, etc. We'll see! Your host and the "navigator" of the pair programming session will be Zoltán István Lehóczky. Would you like to be our guest? Just let us know! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 470 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 Harvest 2024 date and location, Playwright Testing - This week in Orchard (17/05/2024)

Configure the Token provider from the corresponding provider, release notes about SectionDisplayDriver breaking changes, demo about Playwright Testing, and the registration for the Orchard Harvest 2024 conference is now open! Oh, and don't forget to join our next Orchard Core Pair Programming session! Let's see the details! Orchard Core updates Configure the Token provider from the corresponding provider Enhanced functionality has been implemented, allowing developers to control the expiration time of different tokens, such as those for password reset, email confirmation, and email change, which are sent through the email service. You may change the default values of these options by using the services.Configure<> method. For instance, to change the EmailConfirmationTokenProviderOptions you can add the following code to your project: services.Configure<EmailConfirmationTokenProviderOptions>(options => options.TokenLifespan = TimeSpan.FromDays(7)); Here you can see the EmailConfirmationIdentityOptionsConfigurations class that utilizes the EmailConfirmationTokenProviderOptions. Release notes about SectionDisplayDriver breaking changes In the past, we had a Display Drivers validation issue, which means that the drivers should always return an updated model for displaying proper data even if the model has failed to validate. As you can read in the release notes of the upcoming version, in the upcoming release, the signatures of the UpdateAsync() method within the SectionDisplayDriver base class have undergone modifications. Previously, these signatures accepted the BuildEditorContext parameter. However, with this update, all signatures now require the UpdateEditorContext instead. This alteration necessitates that every driver inheriting from this class adjusts their contexts accordingly. On this screen, you can also see the updated signatures. Demos Playwright Testing The OrchardCoreContrib.Testing repository provides a set of APIs to test the Orchard Core applications. The goal of this repository is to test out the integration with Playwright. Playwright Test was created specifically to accommodate the needs of end-to-end testing. Playwright supports all modern rendering engines including Chromium, WebKit, and Firefox. Test on Windows, Linux, and macOS, locally or on CI, headless or headed with native mobile emulation of Google Chrome for Android and Mobile Safari. If you head to YouTube, you can see a video with some sample tests as well, like how we can open a web page by creating a Playwright instance and choosing the browser, which could be Chromium, Firefox, or Webkit. After that, we must launch the browser to get the instance. Now, we can create a new page and go to this page. Here, we can check the title of the page or the inner HTML, etc. Head to the demo video mentioned to see how you can implement more complex tests using Playwright! News from the community Orchard Harvest 2024 date and location Get ready to power up your Orchard skills at Orchard Harvest Conference 2024! Join us on September 12th-13th at the Orleans Hotel and Casino in lively Las Vegas for two days packed with learning, coding, and community fun. What can you expect at Orchard Harvest Conference 2024? Hands-On Workshops: Elevate your coding game with interactive sessions led by industry experts. Insider Insights: Learn best practices, advanced techniques, and real-world insights from qualified developers. Global Connections: Connect with fellow enthusiasts, exchange ideas, and forge meaningful relationships within the Orchard community. Special Perks: Participants get exclusive discounts on accommodations at the Orleans Hotel and Casino. Can't wait until September? Check out recordings from last year's special online Orchard Harvest on our YouTube channel here. Ready to be a part of something extraordinary? Reserve your spot today and take advantage of early-bird pricing at Orchard Harvest Conference 2024. We also opened the registration form for the speakers: https://forms.office.com/e/fewh7hh20d This year's leading themes: Leading up to a v3.0, what will the future Orchard Core look like? What's the role of a CMS nowadays (with the decoupled/headless operating models, and AI development tools) Explore some advanced topics such as Shapes, Placements, Cloud Integrations, Performance, module extensibility, etc. Showcases on implementing Orchard Core in action. Apply to be a speaker until the 15th of June, midnight Anywhere on Earth! We'll notify you whether your talk is selected for Harvest until the end of June. The chosen speakers will receive complimentary tickets for the event. Want to support our mission? Become a sponsor! Reach out to us at [email protected] or [email protected] to explore sponsorship opportunities. Secure your spot today and get ready to level up your skills at Orchard Harvest Conference 2024! See you there! Building a Content Warning Module with Drew Brasher - Orchard Core Pair Programming by Lombiq We'll have the third session of Orchard Core Pair Programming by Lombiq! In these, we do an hour of pair programming with an Orchard Core community member about a project of theirs. We learn together a lot, share best practices, and write some good code. All this is live, and you can join us with your questions! Here, you can find the previous pair programming sessions, and here, you can find the stream for the upcoming one! See you at 5 PM UTC on the 21st! (On a Tuesday due to Whit Monday in Europe.) This time, Drew Brasher will join us with a Content Warning Module project that she started in this discussion. We'll start with at least a scaffolding of the module, take the following blog post as a guideline, and then build it from there. Your host and the "navigator" of the pair programming session will be Zoltán István Lehóczky. Would you like to be our guest? Just let us know! 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!

Resource Manifest source generator, Orchard Core Pair Programming by Lombiq - This week in Orchard (10/05/2024)

Add extensions to register conditions in the Rules module, add Redis Health Check, demo about the Resource Manifest source generator, and don't forget to join our next Orchard Core Pair Programming session! Let's see the details! Orchard Core updates Add extensions to register conditions in the Rules module Here is a summary of the changes: Added new OrchardCore.Rules.Core project. Added the new AddRule<> extensions in the Core project. Cleaned up the OrchardCore.Rules project by using the new extensions. And it means that now, you can simplify your code by using the newly added extensions to register custom conditions. For example, services.AddRule<HomepageCondition, HomepageConditionEvaluator, HomepageConditionDisplayDriver>(); Add Redis Health Check This new feature provides the Redis health check to report the status of the Redis server if Redis is enabled. The health check endpoint is available at /health/live for each tenant that needs to be checked. More information about health checks in ASP.NET Core can be found here: https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/health-checks Demos Resource Manifest source generator If we look at the ResorceManagementOptionsConfiguration today, it has a lot of resources including styles and scripts, and all are hard-coded. The big problem here is the URLs, a lot of times we find bugs for outdated or wrong CDN URLs. Instead of hard-coding all the resources, this PR's goal is to create a JSON file that contains the references for all the scripts and styles. If we go to the ResorceManagementOptionsConfiguration, you can see the usage of the ResourceManifestGenerator, which will get all the data from the resources.json file and add them to the resources directly. So, in a nutshell, just have a JSON file that contains the references for all the scripts and styles, and the ResourceManifestGenerator will get all the data from that resources.json file and add them to the resources directly. And if you are curious about this concept, head to YouTube for a demo! News from the community Theme development with Zig - Orchard Core Pair Programming by Lombiq Last Monday, we had the very first session of Orchard Core Pair Programming by Lombiq! In these, we do an hour of pair programming with an Orchard Core community member about a project of theirs. We learn together a lot, share best practices, and write some good code. All this is live, and you can join us with your questions! This time, Ermir Pellumbi aka Zig joined us with a theme project. If you missed the session, you can find the recording here. And we will have the next session of Orchard Core pair programming next Monday! Ermir Pellumbi (Zig) joins us with a theme project again. We learn a lot, share best practices, and write good code. Your host and the "navigator" of the pair programming session will be Zoltán Lehóczky from Lombiq. All this is live, you can join us too! Check it out here. Remember: 5 PM UTC on the 13th! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 470 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 HTML support to notification summary; how to change the idle logout time in Orchard Core? - This week in Orchard (03/05/2024)

Add HTML support to the notification summary, implement local storage emulator support for the Amazon S3 Media module, and in our newest Orchard Core Nuggets post, we discover how to change the idle logout time in Orchard Core! Without further ado, let's get started! Orchard Core updates Add HTML support to the notification summary Let's say you need a way to be able to make notifications clickable on the UI. For example, you want to create a notification for when a content is published. When the user clicks on the notification, you want them to get redirected to the published content item. Currently, there is no way of doing that since we use the property Summary as an email subject which can't contain HTML. The INotificationMessage interface was updated to include the addition of a Subject field, which facilitates the rendering of notification titles. Moreover, the existing Summary field has been transitioned to HTML format. This adjustment enables the rendering of HTML notifications in both the navigation bar and the notification center. Consequently, HTML notifications can now be created, affording functionalities such as clickable notifications. Furthermore, the introduction of the NotificationOptions provides configuration capabilities for the notifications module. This structure comprises the following attributes: TotalUnreadNotifications: This property determines the maximum number of unread notifications displayed in the navigation bar, with a default setting of 10. DisableNotificationHtmlBodySanitizer: By default, the HtmlBody of notifications generated from workflows undergoes a sanitization process. However, this property grants the option to bypass this sanitization process. Implement local storage emulator support for the Amazon S3 Media module Following the docs, you can only use the Amazon S3 Media module with a real, online S3 resource. For daily development, especially in a team, using a storage emulator is better though. This is currently an issue only for the Amazon Media Storage feature. With the AWS SDK version we use currently, and due to us using virtual host addressing for buckets (i.e., mybucket.localhost, as opposed to path-style addressing with localhost/mybucket) this wasn't actually possible, so we needed to implement support for it too. If you open up the Orchard Core docs page, you will find a section that helps you configure a local emulator by setting up a ServiceURL. The page also mentions two tools known to work with the mentioned settings. News from the community Orchard Core Nuggets: How to change the idle logout time in Orchard Core In our latest post in the Orchard Core Nuggets series, we discover how we can constrain how long people can remain logged in: If they share a device, especially a public one, then it's better to be on the safe side and automatically log them out after some time of inactivity. Check out the other posts for more such bite-sized Orchard tips, and let us know if you have another question! Theme development with Zig - Orchard Core Pair Programming by Lombiq This is the very first session of Orchard Core Pair Programming by Lombiq! In these, we do an hour of pair programming with an Orchard Core community member about a project of theirs. We learn together a lot, share best practices, and write some good code. All this is live, and you can join us with your questions! This time, Ermir Pellumbi aka Zig will join us with a theme project. Your host and the "navigator" of the pair programming session will be Zoltán Lehóczky from Lombiq. Check it out here: https://youtube.com/watch?v=RdE6Io 5 PM UTC on the 6th! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 470 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!

Azure Email Communication Services, documentation for Full-Text Search for Admin UI - This week in Orchard (28/03/2024)

Add documentation for Full-Text Search for Admin UI, add support for sending emails using Azure Communication Services, and our Open-Source Orchard Core Extensions solution is updated to Orchard Core 1.8.2! Check out our post for the details! Orchard Core updates Add documentation for Full-Text Search for Admin UI Starting with version 1.7, new options have been introduced to enable control over the behavior of the Full-Text Search in the administration user interface for content items. For instance, consider a content type called Product. Currently, when a user performs a search, the default behavior is to check if the search terms are present in the DisplayText column of the ContentItemIndex for the content item. However, what if a user wants to search for a product using its serial number, which is not part of the DisplayText field? Head to the updated section of the documentation of Orchard Core to see how you can achieve this easily! Azure Email Communication Services A new email provider was added to allow you to send emails using Azure Communication Services. Furthermore, the OrchardCore.Email module has undergone a refactoring process with no breaking changes. However, there are compile-time warnings that are recommended to be addressed: Previously, we used the injection of ISmtpService for sending email messages. In this release, it is now necessary to inject IEmailService instead. The SMTP-related services are now part of a new module named OrchardCore.Email.Smtp. To use the SMTP provider for sending emails, enable the OrchardCore.Email.Smtp feature. If you were using the OrchardCore_Email configuration key to set up the SMTP provider for all tenants, please update the configuration key to OrchardCore_Email_Smtp. The OrchardCore_Email key continues to work but will be deprecated in a future release. So, sending emails is provider-based, and now it's really easy to extend. If someone wants to create their provider for email, they can easily implement the IEmailProvider interface and that's all you need to do to add a new provider. If you navigate to the Features page under Configuration and type email, you will see these three features. Now, let's enable all three features, and let's see what will happen! As you can see, the Email settings page under Configuration now contains three tabs:- Providers: here, you can set up the default email sender provider that you want to use.- Azure: settings related to the Azure Provider.- SMTP: settings related to the SMTP Provider. Under the Email Test menu, you can test your providers where the first drop-down, called Provider, contains all of the active features that can be used to send emails. You can read more about these modules in the documentation, where you will find a page for the base Email module, the Azure Email module, and the Email SMTP module. 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.8.2 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 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!