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

Featured tags

IIS
API
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!

Make it possible to add Razor HTML content to the shape as a property, OpenId UI Enhancements - This week in Orchard (23/08/2024)

Make it possible to add Razor HTML content to the shape as a property, OpenId UI Enhancements, and you still have some time to nominate exemplary community members for the Jean-Thierry Kéchichian Community Award. Don't forget that we will have the Orchard Harvest conference in three weeks! Orchard Core updates Make it possible to add Razor HTML content to the shape as a property With this change, you can pass HTML content as shape properties using the <add-property name="propertyName"> child tag helper. The rendered inner HTML will be assigned to the given propertyName. This can be used to easily include complex HTML content in a reusable shape. This is similar to prop-* attributes, but you can also include Razor code as the IHtmlContent property value, which was impossible before. To test this new feature, we will use the Orchard Demo module and go to ~/OrchardCore.Demo/Home/AddProperty. To do that, make sure to reference the OrchardCore.Demo project to your web application. When you are ready, don't forget to enable the feature called Orchard Demo from the admin UI of Orchard Core under Configuration -> Features. Now let's see the code itself! The AddProperty method of the HomeController just simply renders the content of the AddProperty.cshtml file. Here, you can see that we render the EmbedContentInShape shape and pass some properties to it and the properties now can contain HTML content too. As you can see, the property named HtmlContent and OtherContent contains HTML text which is now fully supported. Of course, you can mix and match the different formats, for example, to only use <add-property> when you want to pass HTML content as property. OpenId UI Enhancements There were some changes recently regarding the UI of the Open ID module thanks to Mike Alhayek. You can create Open ID applications under Security -> OpenID Connect -> Management -> Applications. In the Applications list, he sorted the records by application display name. In both Create and Edit views: Moved the field Display Name to be the very first field since that is a UI field. Moved the Client Secret field just below the Client Id. So the order is Display Name, Client Id then Client Secret. Added a way to create a new random client ID and password. Also, a way to copy the values. Localized the Flow phrase. You can create scopes under Security -> OpenID Connect -> Management -> Scopes. Here, he moved the field Display Name to be the very first field since that is a UI field. News from the community Jean-Thierry Kéchichian Community Award 2024 At the end of last year, our good friend, Jean-Thierry Kéchichian, a truly extraordinary member of our community, unexpectedly passed away. To honor him, keep his memory alive, and foremost, inspire people to do good work for the community, we launched an award named after him for exceptional community members. Every year, the community votes on who has done the most for Orchard Core. This can entail activities in the form of e.g., code contributions (including documentation), help under issues and discussion, evangelization outreach, community management, or anything else. However, it needs to be public and tangible. It's your turn to nominate a community member! You will find this discussion in GitHub where you can mention somebody who you think has done most for Orchard Core, with a sentence explaining what they've done. Nominations are open until the 27th at midnight, Anywhere on Earth. After that, we'll vote on the nominees secretly. The winner is then announced at the Orchard Harvest conference on the 12th of September. Orchard Harvest 2024 The full Orchard Harvest program has finally arrived. This year’s program is packed with insightful sessions, engaging panels, and ample opportunities to connect with the Orchard community and to make Orchard Harvest the biggest Orchard Core event of the year. All sessions will be recorded and published on the Orchard YouTube channel after the event, so even if you can't make it live, you can see the sessions. However, being there live will allow you to ask the speakers, meet other community members, and have a lot of fun! All indicated times are local time in Las Vegas. After each session, you'll have a chance to ask questions, and we'll have a short break too. Here is a detailed schedule to help you prepare for the conference. Can't wait until September? Check out recordings from last year's special online Orchard Harvest on this YouTube channel here. Ready to be a part of something extraordinary? Reserve your spot today at Orchard Harvest Conference 2024 and get ready to level up your skills! See you there! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 465 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 setup UX when using a password manager, Jean-Thierry Kéchichian Community Award 2024 - This week in Orchard (16/08/2024)

Improve setup UX when using a password manager, add RemovePart<TPart> extension, and it's time to nominate exemplary community members for the Jean-Thierry Kéchichian Community Award. Let's see the details! Orchard Core updates Improve setup UX when using a password manager During local development, you will want to reuse saved admin credentials. The browser's password manager is helpful here, but the setup screen fails to anticipate this scenario. As you fill in the saved password, the strength bar under the password field doesn't update, and the Finish Setup button won't do anything, as if broken. You have to click into the password field and press a key. This is a minor annoyance, but it's persistent when you work with Orchard Core a lot. The solution here is that from now on, the strength function handles change events too, not just keydown and keyup. Also clicking on the Finish Setup button is triggering it as well, instead of silently failing. Add RemovePart<TPart> extension We have a RemovePart method in the ContentTypeDefinitionBuilder class, which can be used to remove a Content Part from a Content Type. To call that method, you need to pass the name of the Content Part as a string, like RemovePart("BodyPart"). And from now on, the new extension of the RemovePart method accepts the Content Part itself, like RemovePart<BodyPart>(). News from the community Georg von Kries is a new maintainer of Orchard Core Georg von Kries has made more than 100 contributions this year to Orchard Core! We are glad to announce that he is now a new maintainer of the Orchard Core repository with commit rights to this repository. Thanks go to Georg, who has done a lot for Orchard Core! Jean-Thierry Kéchichian Community Award 2024 At the end of last year, our good friend, Jean-Thierry Kéchichian, a truly extraordinary member of our community unexpectedly passed away. To honor him, keep his memory alive, and foremost, inspire people to do good work for the community, we launched an award named after him for exceptional community members. Every year, the community votes on who has done the most for Orchard Core. This can entail activities in the form of e.g., code contributions (including documentation), help under issues and discussion, evangelization outreach, community management, or anything else. However, it needs to be public and tangible. It's your turn to nominate a community member! You will find this discussion in GitHub where you can mention somebody who you think has done most for Orchard Core, with a sentence explaining what they've done. Nominations are open until the 27th at midnight, Anywhere on Earth. After that, we'll vote on the nominees secretly. The winner is then announced at the Orchard Harvest conference on the 12th of September. Orchard Harvest 2024 The full Orchard Harvest program has finally arrived. This year’s program is packed with insightful sessions, engaging panels, and ample opportunities to connect with the Orchard community and to make Orchard Harvest the biggest Orchard Core event of the year. All sessions will be recorded and published on the Orchard YouTube channel after the event, so even if you can't make it live, you can see the sessions. However, being there live will allow you to ask the speakers, meet other community members, and have a lot of fun! All indicated times are local time in Las Vegas. After each session, you'll have a chance to ask questions, and we'll have a short break too. Here is a detailed schedule to help you prepare for the conference. Can't wait until September? Check out recordings from last year's special online Orchard Harvest on this YouTube channel here. Ready to be a part of something extraordinary? Reserve your spot today at Orchard Harvest Conference 2024 and get ready to level up your skills! See you there! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 467 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!

Fix the QueriesDocument and the Queries UI, Lombiq API Client for Orchard Core - This week in Orchard (09/08/2024)

Fix the QueriesDocument and the Queries UI, add new helpful Entity Extensions, and a demo about the Lombiq API Client for Orchard Core are the topics for the week. And don't forget that the discounted price for Orchard Harvest is available only until August 15! Let's see the details! Orchard Core updates Fix the QueriesDocument and the Queries UI Previously, any query type had to inherit from Query and required its own distinct type (e.g., SqlQuery, LuceneQuery, ElasticQuery). However, thanks to this change, creating a custom type for each query type is no longer necessary. This update involved modifications to the IQueryManager and IQuerySource interfaces, as well as the Query class. Additionally, a new project, OrchardCore.Queries.Core, was introduced. A migration process has been implemented to transition existing queries into the new structure, ensuring no impact on existing tenants. Let's see the key changes! Modification of interfaces and classes: Updates were made to the IQueryManager, IQuerySource interface, and Query class to accommodate the new structure. Addition of OrchardCore.Queries.Core: This new project supports the updated query handling mechanism. And how you can implement the IQuerySource interface? We now request implementations of IQuerySource using keyed services. Below is an example of how to register new implementations: services.AddQuerySource<SqlQuerySource>(SqlQuerySource.SourceName); This approach allows for more flexible and modular query handling in Orchard Core. Furthermore, we now have handlers for dealing with queries. To manipulate a query using a handler, implement the IQueryHandler interface. This provides a structured way to extend and customize the behavior of queries within the framework. Add new helpful Entity Extensions This change is about adding the following helpful extensions to the entity: IEntity Alter<TAspect>(this IEntity entity, Action<TAspect> action) bool TryGet<T>(this IEntity entity, out T aspect) The new extensions simplify the following already existing extensions: IEntity Alter<TAspect>(this IEntity entity, string name, Action<TAspect> action) bool TryGet<T>(this IEntity entity, string name, out T aspect) If we check out the code, you can see that from now on, we will not need to pass the name of the settings when updating it, providing the action to apply on the aspect is sufficient. Demos Lombiq API Client for Orchard Core In this demo, we will check out the Lombiq API Client for Orchard Core, a client library for communicating with the Orchard Core web APIs. Currently, it contains an implementation for the tenant and content management APIs and a console application for testing and demonstration. The project requires the Tenants feature, and OpenId features to be enabled and set up. The readme file of this library covers how you can set up the OpenId features but for easy use, enable the Deployment feature and import this recipe as a deployment package. The library contains a simple tester console app for manually testing the features of the Lombiq API Client for Orchard Core. Let's see the Program.cs file of this app! This tester app first sets up a tenant and edits that tenant. The next steps are creating a taxonomy and editing the taxonomy's display text by using API calls. This library with the tester app is included in our Open-Source Orchard Core Extensions full Orchard Core solution. You will find our other useful Orchard Core-related open-source projects there, too. And as always, if you want to see this little tester app in action, head to YouTube for a recording! News from the community Orchard Harvest 2024 Program The full Orchard Harvest program has finally arrived. This year’s program is packed with insightful sessions, engaging panels, and ample opportunities to connect with the Orchard community and to make Orchard Harvest the biggest Orchard Core event of the year. All sessions will be recorded and published on the Orchard YouTube channel after the event, so even if you can't make it live, you can see the sessions. However, being there live will allow you to ask the speakers, meet other community members, and have a lot of fun! All indicated times are local time in Las Vegas. After each session, you'll have a chance to ask questions, and we'll have a short break too. Here is a detailed schedule to help you prepare for the conference. Can't wait until September? Check out recordings from last year's special online Orchard Harvest on this 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. And don't forget that the discounted price is available only until August 15. Secure your spot today and get ready to level up your skills at Orchard Harvest Conference 2024! See you there! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 467 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!

Remove the set as startup task button for non-event Activities, Lombiq Helpful Libraries - Source Generators - This week in Orchard (02/08/2024)

Fix WYSIWYG/Trumbowyg editor colors when the dark theme is enabled, remove the set as startup task button for non-event Activities, and a demo about the Source Generators included in the Lombiq Helpful Libraries are the topics for the week. Let's see the details! Orchard Core updates Fix WYSIWYG/Trumbowyg editor colors when the dark theme is enabled When dark mode is enabled, the Trumbowyg editor modals do not follow the dark theme and instead display in light mode. The foreground color of the WYSIWYG/Trumbowyg editor buttons is almost indistinguishable from the background color when hovered or focused. This inconsistency affects the user experience. The Trumbowyg editor modal should adapt to the active theme and display in dark mode when dark mode is enabled. This change fixes the Trumbowyg editor issues in dark mode by switching to the component's default theme for both light and dark modes. It also keeps a few custom CSS classes to ensure the borders match Orchard's styles. Remove the set as startup task button for non-event Activities You can set Task-type Activities as startup tasks on the workflow canvas. However, this doesn't make sense, since a Task can't start a workflow, only an Event can. The startup task button should only appear for Events. Also, the terminology "startup task" is incorrect as well, since it should say "startup Event". The goal of this fix was to remove the set as startup task button for non-event activities and rename the "Startup task" tooltip to "Startup event". To check this out, make sure that the Workflows feature is enabled under the Configuration -> Features option from the admin UI of Orchard Core. Afterward, you can head to the Workflows option to create a new workflow. We added a Content Created Event and a Notify Specific Users Task to our workflow. As you can see, we managed to set the Content Created Event as the startup event (it has a green background), but we cannot set the Notify Specific Users Task as a startup task because the "startup task" button is not available on the contextual menu of that task. Demos Lombiq Helpful Libraries - Source Generators The Lombiq Helpful Libraries contains various useful libraries that can be handy when developing for .NET, ASP.NET Core, and Orchard Core, to be used for your projects. The topic for this demo is the freshly added Source Generators library, a collection of helpful source generators. We concluded that when you include a vendor resource in Orchard Core, it's a good idea to include the version too, for cache busting. What we did before was manually set the version number of the scripts and styles we wanted to include in the Resource Manifest. We have to maintain this version number in two files; in the package.json and the ResourceManagementOptionsConfiguration class. So, the issue was about maintaining this in two places, and by introducing source generators we can do it in one go. The readme file of the Source Generators library shows you how you can use the ConstantFromJsonGenerator, which is a source generator that creates a constant from a JSON file. As you can see, first of all, you need to have a JSON file in your project and set the Build Action of the JSON file to AdditionalFiles. You need to reference both the Source Generator and the Attributes project and wherever you want to use the JSON file, make sure to have a partial class and add the ConstantFromJsonGenerator attribute to it. Here we tested this with the ResourceManagementOptionsConfiguration file of the Lombiq Vue.js module for Orchard Core. As you can see, the partial ResourceManagementOptionsConfiguration class contains the ConstantFromJson attribute where we defined a constant called VueVersion, provided the file name which is packages.json, and set vue as the property name. This means that we get the value of the vue property from the file called package.json and assign the value of this property to the auto-generated VueVersion string. And as always, if you want to know more about source generators, head to YouTube for a recording! News from the community Orchard Harvest 2024 Program The full Orchard Harvest program has finally arrived. This year’s program is packed with insightful sessions, engaging panels, and ample opportunities to connect with the Orchard community and to make Orchard Harvest the biggest Orchard Core event of the year. All sessions will be recorded and published on the Orchard YouTube channel after the event, so even if you can't make it live, you can see the sessions. However, being there live will allow you to ask the speakers, meet other community members, and have a lot of fun! All indicated times are local time in Las Vegas. After each session, you'll have a chance to ask questions, and we'll have a short break too. Here is a detailed schedule to help you prepare for the conference. Can't wait until September? Check out recordings from last year's special online Orchard Harvest on this 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. Secure your spot today and get ready to level up your skills at Orchard Harvest Conference 2024! See you there! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 466 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 Program, expose Content Fields Indexing via GraphQL for content field filtering - This week in Orchard (26/07/2024)

Fix Liquid script tag does not render custom attributes, and exposing Content Fields Indexing via GraphQL for content field filtering are the topics for this week. The full program of the Orchard Harvest conference, with all the speaker and talk details, is out! Without further ado, let's dive in! Orchard Core updates Fix Liquid script tag does not render custom attributes The following Liquid template line {% script name:"pdf.js", src:"/Vendor/pdfjs/build/pdf.js", type:"module", defer:"defer", at:"head", depends_on:"jQuery" %} renders in <head> as: <script src="/t4h/OrchardCore.Resources/Scripts/jquery.min.js"></script><script src="/Vendor/pdfjs/build/pdf.js"></script> As you can see, the defer and type attributes are missing. The issue was a missing clause in the ScriptTag.cs file. Expose Content Fields Indexing via GraphQL for content field filtering If you want to filter (with where) the value of content fields, you must implement a WhereInputObjectGraphType for it. There's no built-in way to filter content field values from GraphQL. We already have Content Fields Indexing to be able to run SQL queries for field values. The goal of this change is to build on that and expose such SQL indices in GraphQL too. The GraphQL module now allows for filtering content fields, making it easier to query specific content fields using GraphQL. This enhancement relies on having the OrchardCore.ContentFields.Indexing.SQL module enabled. Additionally, the GetAliases method in the IIndexAliasProvider interface is now asynchronous and has been renamed to GetAliasesAsync. Implementations of this interface should be modified by updating the method signature and ensuring they handle asynchronous operations correctly. To see this in action, we need to enable the mentioned Content Fields Indexing (SQL) module under Configuration -> Features. We also enabled the GraphQL feature to have the GraphiQL option under the Configuration menu for easier testing. The following example demonstrates filtering Product content types based on a numeric content field named Amount, which is attached to a content part named Price Part, where the Amount is greater than 10. Note that in our example the Price Part is collapsed with the prevent field name collision option enabled. You can set these if you edit the content part settings of the attached Price Part. As you can see, we have two products where the value of the Amount numeric field is greater than 10. News from the community Orchard Harvest 2024 Program The full Orchard Harvest program has finally arrived. This year’s program is packed with insightful sessions, engaging panels, and ample opportunities to connect with the Orchard community and to make Orchard Harvest the biggest Orchard Core event of the year. All sessions will be recorded and published on the Orchard YouTube channel after the event, so even if you can't make it live, you can see the sessions. However, being there live will allow you to ask the speakers, meet other community members, and have a lot of fun! All indicated times are local time in Las Vegas. After each session, you'll have a chance to ask questions, and we'll have a short break too. Here is a detailed schedule to help you prepare for the conference. Can't wait until September? Check out recordings from last year's special online Orchard Harvest on this 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. Secure your spot today and get ready to level up your skills at Orchard Harvest Conference 2024! See you there! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 467 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting! The recordings of the latest meetings will be uploaded in the first half of August, stay tuned for videos!

Orchard Harvest 2024 Program, Liquid syntax support for Correlate Task - This week in Orchard (19/07/2024)

Add target attribute to Menu, and Liquid syntax support for Correlate Task are the topics for this week. The full program of our Orchard Harvest conference, with all the speaker and talk details, is now out! Without further ado, let's dive in! Orchard Core updates Add target attribute to Menu In some cases, you may need to always open external links in new pages by adding optional target='_blank' to the Menus and AdminMenus. This change allows the user to specify the target property on both the Menus and the AdminMenus. Let's see how you can do that! Here, we have a site set up with the Blog recipe that adds a Main Menu option to the admin UI of Orchard Core. If you click on that and edit one of the Link Menu Items, you will find a new Target textbox, where you can specify the target attribute of the A tag. To be able to check out this for the Admin Menus as well, we need to head to Configuration -> Admin Menus and edit the nodes of the predefined admin menu called Admin menus. Just click Edit near any Link Admin Node and click inside the Target textbox. A context menu will appear that helps you to provide a valid value for the target. Liquid syntax support for Correlate Task The Correlate Task now uses the Monaco editor but only supports Script parsing. It would be nice to have an option to parse Liquid by selecting the syntax of the Correlate Task. This should default to Script parsing to be backward compatible. To check it out in action, we have to make sure that the Workflows feature is enabled under Configuration -> Features. We also enabled the HTTP Workflows Activities feature to be able to demonstrate this new addition to the Correlate Task more easily. After that, we can navigate to the Workflows option and create a new workflow. First of all, the startup event of our workflow will be an HTTP Request Event, which means if we invoke the generated URL, we can easily trigger our workflow. This is followed by a Set Property Task, where we set the value of the test property to "Hello Orchard Core!". And here comes the Correlate Task, where we set the Syntax to Liquid and the Value to {{ Workflow.Properties['test'] }}. And we close our workflow with the HTTP Response Task where we print the value of the CorrelationId in the following way: { "CorrelationId": "{{ Workflow.CorrelationId }}" }. Now it's time to trigger the workflow and see what will happen. As you can see, the CorrelationId property contains the value of our test property which we defined in our Correlate Task using Liquid syntax. News from the community Orchard Harvest 2024 Program The full Orchard Harvest program has finally arrived. This year’s program is packed with insightful sessions, engaging panels, and ample opportunities to connect with the Orchard community and to make Orchard Harvest the biggest Orchard Core event of the year. All sessions will be recorded and published on the Orchard YouTube channel after the event, so even if you can't make it live, you can see the sessions. However, being there live will allow you to ask the speakers, meet other community members, and have a lot of fun! All indicated times are local time in Las Vegas. After each session, you'll have a chance to ask questions, and we'll have a short break too. Here is a detailed schedule to help you prepare for the conference. Can't wait until September? Check out recordings from last year's special online Orchard Harvest on this 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. Secure your spot today and get ready to level up your skills at Orchard Harvest Conference 2024! See you there! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 468 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!

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!