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

Featured tags

IIS
API
All tags >

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!

Collapsed fields collision in GraphQL, Building a Content Warning Module - This week in Orchard (24/05/2024)

Add a possibility to open a selected content item in a Content Picker Field in a new tab, and fixing collapsed fields collision in GraphQL are the topics for this week. And don't forget to join our next Orchard Core Pair Programming session where we continue building a Content Warning Module! Let's see the details! Orchard Core updates Collapsed fields collision in GraphQL When you add a Named Part to a Content Type and also check the Collapse checkbox, data is not returned using GraphQL. You can reproduce this issue just by creating a new Content Part and adding at least one Content Field to it. It will be a Named Part, so put a tick into the Reusable checkbox when creating it to allow this part to be attached multiple times. Now, create a new Content Type and add our newly created Content Part as a Named Part. After, we can create a new Content Item based on the new Content Type. And it's time to enable the GraphQL feature by navigating to Configuration -> Features. The GraphiQL option will display under the Configuration menu, where you can query the data. Also, there is an issue when you try to add many parts with the same field names, if those parts are also "collapsed". To solve this problem, you will find a new checkbox if you edit the content definition of the Content Part, which is visible only when the Collapse checkbox is checked. So, you can decide, whether to prevent collisions or not. Add a possibility to open a selected content item in a Content Picker Field in a new tab Let's say that you are using a lot of Content Picker Fields in your solution, and sometimes you lose track of what exactly one item contains versus another one. To know this now, you would need to navigate to the item list of the type, view it, and then navigate back to where you were before. This can be tedious if done a lot of times. It would be nice to be able to open the selected item in a Content Picker Field via having links in the Content Picker Field. This change is about making the rendered title of the selected content item in the content picker clickable which allows to open the selected content item in a separate tab. 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! Continuing a Content Warning Module with Drew Brasher - Orchard Core Pair Programming by Lombiq We'll have the fourth 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 28th! Drew Brasher will join us again with a Content Warning Module project that she started in the previous stream. Here you can find the source code. We implemented a shortcode provider last time; now, we'll develop a content part to display a content warning for a whole content item. 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 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!

User Localization settings, Orchard Harvest survey results - This week in Orchard (15/03/2024)

Updating GraphQL for .NET to the latest version, new User Localization settings, and announcing the results of the Orchard Harvest 2024 survey! Check out our post for the details! Orchard Core updates Update GraphQL for .NET to latest GraphQL for .NET is an implementation of Facebook's GraphQL in .NET. This library is currently on v7.8.0 while Orchard Core used v4.8.0. While this is not hugely old (released in March 2022), it still is, and we were too much behind. This huge update involved many API changes and a lot of work from the contributors. Thanks to them, now you can use the latest version of GraphQL for .NET if you are using the nightly build of Orchard Core! User Localization settings This feature adds the ability to configure the culture per user from the admin UI. It also adds a RequestCultureProvider based on claims. This provider will take precedence over any existing ones allowing to override browser settings and always displaying a unique culture for that user. This is not a User Culture Picker for the front end but a way to set the culture to a preferred one for each user. A User Culture Picker is another RequestCultureProvider with a higher priority than this one. Let's see how it works! First of all, head to Configuration -> Features and enable the User Localization feature. As we mentioned, this feature adds a RequestCultureProvider to retrieve the current user culture from its claims. This feature will set a new user claim with a CultureClaimType named culture. It also has a culture option to fall back to other ASP.NET Request Culture Providers by simply setting the user culture to "Use site's culture" which will also be the selected default value. Now head to Security -> Users and hit Edit near one of the users. You can see the new drop-down here called Default User Culture which contains the cultures which are supported by the site. News from the community Orchard Harvest 2024 survey results For those too young to remember, we had Orchard conferences, called Orchard Harvest. And the conference website was available under orchardharvest.org, but unfortunately, it's not anymore. The last offline was in 2017 in New York. So, having another get-together is very much overdue. If you would like to see or get a feeling of how this looked like before, we have a couple of mood videos on the Orchard YouTube channel, like this one from the first conference. We had the first online Orchard Harvest last year, and it was so great to see that we had 188 sign-ups for the conference! It was an excellent opportunity to share knowledge, talk about development plans and ideas, and foremost, meet the rest of the worldwide community. And of course, we recorded every session, which means they are available on YouTube! Click the link to rewatch all the inspiring talks and discussions! The point is that we should think about organizing the next one, and we at Lombiq can take part in that or provide an organizing role with anybody who wants to take part. We created a survey, and now we have the results! Thank you for your feedback so far regarding Orchard Harvest! We have received a significant number of responses so far which has helped us to get a better idea of the right place and time. As we move forward, we will keep community members informed of the details, and you will also find every detail in this newsletter too! Here you can see the results but if you are interested in a discussion where the community shared their ideas regarding the results, you can watch a video about it on YouTube! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 475 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!

Drop Newtonsoft.Json support, GovTech company case study - This week in Orchard (01/03/2024)

GraphQL query for retrieving current user data and its custom settings, drop Newtonsoft.Json support, and a GovTech company case study are the topics for this week! Without further ado, let's get started! Orchard Core updates GraphQL query for retrieving current user data and its custom settings Getting information about the current user and additionally its custom user settings (aka user profile) was not possible out of the box with GraphQL. A query would be handy for using Orchard Core as a headless CMS with front-end users. This can also allow querying custom user settings (i.e., content types with the CustomUserSettings stereotype). So, from now on, there is a new GraphQL object to export for the current user. It gives you your own information and custom settings if you are authenticated. To try this out, you have to enable the GraphQL feature, and after that, you can use a query which you can see in the screen below by using the GraphiQL Explorer. Drop Newtonsoft.Json Support The utilization of Newtonsoft.Json has been discontinued in both YesSql and OrchardCore. Instead, we have transitioned to utilize System.Text.Json due to its enhanced performance capabilities. To ensure compatibility with System.Text.Json during the serialization or deserialization of objects, you have to undertake some steps. For example, if your custom Document includes a collection with a getter-only property, it is imperative to incorporate a setter or utilize the init modifier to facilitate the assignment of values by System.Text.Json. For instance: public class MediaProfilesDocument : Document{ public Dictionary<string, MediaProfile> MediaProfiles { get; } = new(StringComparer.OrdinalIgnoreCase);} Should be changed to the following instead: public class MediaProfilesDocument : Document{ public Dictionary<string, MediaProfile> MediaProfiles { get; init; } = new(StringComparer.OrdinalIgnoreCase);} You also need to change how you register your custom deployment steps, custom AdminMenu nodes, and any serializable object that contains a polymorphic property (a base type that can contain sub-classes instances). It will be a breaking change once the community releases the 1.9 version of Orchard Core. You can read more about what changes you should make under the release notes of the next release. News from the community Municipal government permit management run on Orchard Core Working in the GovTech space brings its own challenges - but not ones that can't be solved with Orchard Core! A customer of ours runs a permit management platform on Orchard Core too. We help them with consulting, Azure, and development. Head to our site and check out a GovTech company case study! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 476 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 DateTime and TimeSpan Tag Helpers, DiscoverableSterotypes to GraphQLContentOptions - This week in Orchard (23/02/2024)

New DateTime and TimeSpan Tag Helpers and adding DiscoverableSterotypes to GraphQLContentOptions are the topics for this week. Let's check them out in detail! Orchard Core updates New DateTime and TimeSpan Tag Helpers Now, you can use the new DateTime and TimeSpan Tag Helpers. The DateTime Tag Helper has a Utc and a Format attribute. The Utc attribute is a DateTime? and the Format is the format of the datetime. And when it's rendered, it's creating a DateTime shape. You can utilize this Tag Helper like: <datetime utc="@contentItem.ModifiedUtc" format="g" /> The TimeSpan Tag Helper has a Utc attribute, which is a DateTime? and an Origin attribute which is also a nullable DateTime. The Tag Helper will calculate the difference between these two dates using the TimeSpan shape and will give you something like "2 days ago" or "3 minutes ago". You can utilize this Tag Helper like: <timespan utc="@Clock.UtcNow" origin="@contentItem.ModifiedUtc" /> DiscoverableSterotypes to GraphQLContentOptions This is a new option that you can use to set the stereotypes that will be available in the GraphQL queries. When identifying content types for GraphQL exposure, we identify those without a stereotype to provide you with control over the behavior of stereotyped content types. A new option, DiscoverableSterotypes, has been introduced in GraphQLContentOptions. This allows you to specify stereotypes that should be discoverable by default. For instance, if you have several content types stereotyped as ExampleStereotype, you can make them discoverable by incorporating the following code into the startup class: services.Configure<GraphQLContentOptions>(options =>{ options.DiscoverableSterotypes.Add("ExampleStereotype");}); You can read more about configuring contents in the official documentation of Orchard Core. News from the community Orchard Harvest 2024 survey For those too young to remember, we had Orchard conferences, called Orchard Harvest. The conference website was available under orchardharvest.org, but unfortunately, it's not anymore. The last in-person one was in 2017 in New York. So, having another get-together is very much overdue. If you would like to see or get a feeling of how this looked like before, we have a couple of mood videos on the Orchard YouTube channel, like this one from the first conference. The point is that we should think about organizing the next in-person one, and we at Lombiq can take part in that or provide an organizing role with anybody who wants to take part. After last year, the Orchard Harvest Conference will be held again in 2024. Last year, it was held online due to economic reasons. But first, we would like to assess the potential interest and what would be needed. You can fill in the questionnaire here, which should take about 5 minutes. Share your thoughts with us in the survey. We are curious about who we will meet in 2024! :) Work with Lombiq! Do you like developing apps with Orchard Core? Would you like to apply your skills to some of the most challenging Orchard Core apps out there, working with other OC experts? Then come work with us at Lombiq, the biggest Orchard Core team in the world! We've been contributors, supporters, and users of Orchard Core and Orchard 1 for more than a decade (Benedek Farkas and Zoltán Lehóczky, the two founders, for even more), with a huge open-source portfolio. There, you can also check out the code we write, and some of the projects you could take part in. We do a lot. Ready for keywords? Open-source, Orchard Core CMS, .NET software development, ASP.NET Core MVC, distributed team, cloud-first, Microsoft Azure, self-funded R&D, Vue.js, jQuery, Bootstrap, SASS, training, hosting and operations, GitHub Actions, TeamCity, support, SaaS (the only Orchard CMS SaaS, DotNest), Selenium UI testing, xUnit, university courses. And also, greenfield experimental projects like Hastlayer, turning software into computer chips. Write to us at [email protected], and let's talk! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 476 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!