Contents tagged with Module

You can't base decisions on assumptions. What you can't measure you can't manage. Familiar? Of course, and what you want to do with your software is specifically what's hinted: measure how people use it. Azure Application Insights is a tool for this, being an application telemetry service. Now we created an Orchard module for it for easy integration!

Orchard 1.9 is just around the corner (don’t ask me exactly when it will be out, instead go and help with the remaining high priority bugs), and if you own existing Orchard modules, now is a really good time to test them against the latest 1.x build. You should be mostly fine as the new version doesn’t introduce significant breaking changes (that we know of), but there is one thing that you may have to do nonetheless to build a compatible version of your code.

So you heard about how fancy Owin is, with all of its loosely-coupled thingies? Well, it's now in Orchard: as you may have heard on this week's Community Meeting, you can now write Owin Middlewares in the Orchard-y way. Let's see how!

Advanced Sitemap is currently the only module to provide extensions points for developers who are doing a lot of custom development on their site. The basic use case of a module like this is very straightforward: take all of the content items and list out all of their urls in some sensible way. But what if you have routes that don't necessarily align with urls set in your content items? Entering custom routes in the admin can suffice if there aren't too many, but if you use a lot of custom routing in your MVC controllers, it would be nice to have these urls reflected accurately in the sitemap.

In this series we will be implementing a custom module to see what it takes to implement a Templated Messaging System that leverages not only basic Orchard stuff, but also more advanced APIs such as Rules, Tokens, Messaging, Channels, Site settings and Content Type/Part settings.

This module will enable our users to do the following:

Create and manage Messaging Templates (which will typically be used for email messages) using parser engine specific syntax (which will be Razor by default);

Setup Rules that sends a templated message when one or more events occur;

Use Tokens in the Subject field as well in a field that is part of the SendTemplatedMessage action;

Configure which parser engine to use by default using site scope settings and content type scope settings.

At the end of this tutorial we will not only have a useful module, we will have learned how we can wire things together with the Rules and Tokens modules and have a better understanding of how they work and can be leveraged in other modules.

In this first part, we will start simple by creating the module and implementing a basic Template Management System. We will:

Define a MessageTemplatePart that stores information about a template, such as the template text itself;

Define an EmailTemplate content type that uses the MessageTemplatePart;

Implement an IMessageTemplateService that helps with quering templates.

Learn how to implement import/export for custom parts that reference other content items using the ImportContentContext.GetItemFromSession method.

This quick tip will show how you can write a custom view for a custom controller action in Orchard that does not use the current theme, but that still retains the ability to use shapes, as well as zones, Script and Style helpers.