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!

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!

Add supported_cultures Liquid filter, use TextArea in Markdown Field By default - This week in Orchard (05/07/2024)

Add supported_cultures Liquid filter and use TextArea in Markdown Field by default are the topics for this week. Don't forget that the registration for the Orchard Harvest 2024 conference is still open! Without further ado, let's dive in! Orchard Core updates Add supported_cultures Liquid filter The Culture context variable got new properties for fuller Liquid culture support: DisplayName, NativeName, and TwoLetterISOLanguageName. These are the same as their .NET counterparts. A new filter named supported_cultures was added to allow you to get a list of supported cultures. Let's see a quick example of using this new filter! We have a site set up with the Blog recipe. This recipe defines a Page content type by default with the Flow Part attached. We modified the content definition of this Page content type a little bit by removing the Flow Part and adding a Liquid Part to it. We did it under the Content -> Content Definition -> Content Types option and edited the Page content type. After that, we have to make sure that the Localization feature is enabled, to be able to add multiple supported cultures to our site. We can enable this feature under Configuration -> Features. And if you navigate to Configuration -> Settings -> Localization -> Cultures, you can add as many supported cultures as you want. Now, we can go back and create a new Page content item. As you can see, we utilized the new supported_cultures Liquid filter and printed the names of supported cultures using a list. Use TextArea in Markdown Field By default Before this change, the Markdown Field used a single-line input field by default (named the Standard editor) and offered two different editors: Multi-line with a simple textarea and WYSIWYG with a rich editor. Now, by default, it uses a textarea as the Standard editor, and the separate Multi-line option has been removed. You have nothing to do, fields configured with the Standard or Multi-line editors previously will both continue to work. Note though, that their editors will now be a textarea. To try this out, we simply added a Markdown Field to the predefined Blog Post content type. If you edit this Markdown Field, you may notice that there are two editor types: Standard and Wysiwyg. And if we create a new blog using the Standard editor type, you will get a Multi-line editor. 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. 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! 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!

Dynamic index tables, allow any user to manage two-factor authentication - This week in Orchard (28/06/2024)

Allow any user to manage two-factor authentication, show recipe error instead of throwing an exception, and a demo about Dynamic index tables are the topics for the 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 Allow any user to manage two-factor authentication Two-factor authentication (2FA) is now available for all users. Previously, only users with permission to access the admin area could set up their 2FA methods, although all users could still use 2FA if it was set up by an admin. To enable this change, the method IsRequiredAsync() in both the ITwoFactorAuthenticationHandlerCoordinator and ITwoFactorAuthenticationHandler interfaces has been updated to IsRequiredAsync(IUser user). Summary of changes The feature OrchardCore.Users.EmailConfirmation was removed. This feature was recently added and was enabled by dependency only. Its services have been moved up to the OrchardCore.Users feature since it is a core functional and needed by OrchardCore.Users. Using the 2FA email method now requires email confirmation using the existing email confirmation process. As mentioned, the method IsRequiredAsync() in both the ITwoFactorAuthenticationHandlerCoordinator and ITwoFactorAuthenticationHandler was changed to IsRequiredAsync(IUser user). OK, so, what does it look like in action? First of all, you have to make sure that you have at least one two-factor authentication method enabled. To do that, you have to navigate to Configuration -> Features and enable the regarding features. We enabled two modules: Two-Factor Authenticator App Method: Provides users with a two-factor authentication method through any Authentication App. Two-Factor Email Method: Provides users with a two-factor authentication method through an Email service. Orchard Core provides a third two-factor authentication method through an SMS service but these two will be enough for demonstration. After that, we need to have a user without any special roles. We created a user under Security -> Users, where we used John as the user's name. Make sure that this user is enabled to be able to log in as John. The last thing we have to do is to make sure that the Default Theme is the current site theme because that theme renders the navbar by default and includes the dropdown with the Security-related settings. And as you can see in the screen below, we logged in as John. If you click Security on the dropdown menu that we mentioned earlier, you may notice that John can enable the two-factor authentication by adding one of the below two-factor methods. The SMS is not here, because we have only enabled the App Method and the Email Method features. Show recipe error instead of throwing an exception Currently, when importing a recipe and something goes throw, implementations of IRecipeStepHandler or IRecipeEventHandler will throw exceptions to report errors if something fails to import. In a production environment, the user gets a white page, which leaves them lost on what had happened. This is no longer the recommended approach for error reporting. Now, to handle errors, we have introduced a new property named Errors in the RecipeExecutionContext. This property allows you to log errors instead of throwing exceptions. These errors should be localized and must not contain any sensitive data, as they are visible to the end user. Exceptions are still used for logging additional information, but these are not shown to the end user. Additionally, if an error occurs, a new custom exception, RecipeExecutionException, is thrown. Let's say you want to import a deployment package or import JSON from text. Assume that the JSON contains some errors in both cases. Here, you can see that Orchard Core shows the error to the user so they have feedback instead of dumping an exception or a white page. And the same applies if you want to execute a recipe that contains errors. Demos Dynamic Index Tables When using YesSql index tables, you have to build these index tables using code. This solution provides you with a way to build index tables without the need to write code. Using the admin UI, you can select the content type you want to index and you can add the table columns using a nice UI. You can also use a script to execute to build the column value mapping. Here, you can return how you wanted to be your content item indexed. In the screen below, you can see the index table for the content type called Comic Book. In the Map Script editor, we defined what we should need to return when retrieving the values inside the DisplayText, IssueVolumeNumber, and ReleaseDate columns. After that, if you do a SELECT * query for this index table, you may notice that the table contains the columns defined in the previous step. And it's just the top of everything this feature offers. If you are curious about the details, 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. 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! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 473 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!

Secure Media feature, add a way to hide ContentTypeDefinitionSettings - This week in Orchard (19/04/2024)

Consolidate admin required fields, add a way to hide ContentTypeDefinitionSettings, and a demo about the brand-new Secure Media feature! Let's see the details! Orchard Core updates Consolidate admin required fields Content fields and some parts added to a content type can be set as required, but there is no visualization before submitting changes. The validation error messages for required fields have inconsistent text messages (some contain a dot at the end, some don't, some are using '' for value, and some have explicit value names in the text. Also, validation error messages are included in the validation summary only, and not under the required field, but for example, in TitlePart everything is correct. All error messages should be written in the same format and text, for example: Please add value for '{0}'. At least some CSS class should be added on all required field labels to be able to identify required fields in the content item form and required validation messages should be displayed under each validated field. As you can see in the screen below, the community consolidated the admin required fields by making the following steps: Add star char for all required fields. Add validation message for required input field like in TitlePart. Consolidated color for start and validation error messages. Consolidated error message texts. Removed client validation from inputs because of inconsistent form behavior dependent on the used browser, selected locale, etc. Add a way to hide ContentTypeDefinitionSettings The intention behind this change was to add a configuration to show/hide the creatable, listable, draftable, versionable, and securable flags. We have a new ContentTypeDefinitionDriverOptions class which contains boolean values that you can use to show or hide the creatable, listable, draftable, versionable, and securable options when editing the content definition of a content type on the admin UI. The ContentTypeDefinitionOptions class offers a method for configuring content type definitions to either display or conceal global settings from appearing on the UI. In certain cases, like when creating CustomSettings or CustomUserSettings, these options are useless. So, it would be nice to hide them instead since they do nothing. So, to quickly demonstrate this change, we enabled the Custom User Settings feature under Configuration -> Features. After, we navigated to Content -> Content Definition -> Content Types and created a new content type called UserProfile. We added some fields to it and set the stereotype to CustomUserSettings to be able to use this content type as a custom user setting. As you can see, only the Securable checkbox is here, we can't set the other content type definitions like creatable, listable, etc. And the reason for that is in the Startup.cs file of the OrchardCore.Users module, we set up the boolean values of the ContentTypeDefinitionDriverOptions class where the stereotype is CustomUserSettings. But we haven't touched the value of the ShowSecurable, so it can be kept its true value. Demos Secure Media feature This demo is about the brand-new Secure Media feature for additional control over who can access media files. The key features include: Restricted Access to Media Folders: A view permission is created for the root media folder and each first-level folder within the media root, allowing administrators to restrict access based on user roles. Enhanced Viewing Permissions: Introduces permissions to view one's own media files and/or those of others, expanding upon the existing ManageOwnMedia permission. Consistent Access Rules for Media and Content Items: Media attached to content items will adhere to the ViewContent permission of the respective content item. This alignment ensures consistent access rules between media and content items. Protection for Temporary Attached Media Files: Secures temporary attached media files in a manner similar to personal user files. Improved Management Permissions in Admin: Refines the manage media permissions to allow media management only when viewing permissions are also granted. This prevents users from managing media they cannot view. Additionally, the creation and deletion buttons in the admin interface are disabled for folders that are not accessible post-creation or for special folders like "_Users" and "mediafields". Handling Unauthorized Access: Introduces a middleware that returns a 404 NotFound response for unauthenticated access attempts to secured media files. This approach not only restricts access but also conceals the existence of the file. Configurable Cache-Control for Secured Files: Sets the Cache-Control header of secured files to no-store by default, preventing their caching. This setting is configurable to suit different needs. Bearer Token Authentication for API Access: Enables bearer token authentication for media files, aligning with Orchard Core's API capabilities. This feature is particularly useful for headless CMS scenarios and external application integrations. We will not do a deep dive here but will try to demonstrate some of the mentioned features. First of all, you need to enable the feature itself by heading to Configuration -> Features where you will find the Secure Media feature. After enabling it, let's add a new folder to the root of the media library under Content -> Media Library. We named it secure and placed a file into this library. Now, let's navigate to Security -> Roles, and find a section called Secure Media. By default, everyone can see everything, so nothing will change if you enable the feature. It's currently only using the root folder and the first folder level; this means you can only have one tier of secured media folder. And as you can see here, you can define who can view media content in our newly created folder, called secure. Now let's play a little bit with the permissions and say that Anonymous users and Editor users don't have permission to view media content inside the secure folder. To test this out, we created a new user with the Editor role and logged in with this user. Head to the admin UI of Orchard Core and open up the Media Library. As you can see, this user can't see the folder called secure and can't access the files inside the folder. As always, if you want to see more about this new feature, head to YouTube for a recording! News from the community Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 471 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!