This course will show you how to build a custom Orchard module, from the initial creation of the module all the way through publishing it to the Orchard Gallery. Along the way we'll learn a lot of concepts and techniques for Orchard module development. The topic of our module will be Movies. By the end of the course, we'll be able to enter, edit and view Movie content items in Orchard. We'll also be able to enter Actors with a many-to-many relationship to movies. And we'll implement some advanced features like importing movies from an external service, and automatically displaying similar movies to the user based on a Lucene search.
Introduction and Getting Started Hello and welcome to the Advanced Orchard course on Pluralsight. My name is Keven Kuebler. You can see my Twitter handle if you'd like to contact me that way. In this first module we're going to do a quick introduction and cover the topics that we'll be talking about in this course. And then we'll look at how to get prepared and set up for doing Orchard development. So outline for the first module begins with just a quick review of what Orchard is. This course definitely assumes some basic familiarity with Orchard at least at the level of having seen it and having configured a Website with Orchard as a user of the product. It does not however assume any prior experience with writing your own modules in Orchard so we'll talk about what this course will cover from that perspective. Then we'll talk about and demonstrate the module and Website that we're going to build throughout the remainder of this course. And from there we'll move on to how to get setup for Orchard development including how to get to source code a brief look at how the code is organized in Visual Studio.
Creating a Module Hi, this is Kevin Kuebler again for Pluralsight and we're going to continue our look at customizing orchard here in the second module of the advanced orchard course. In this modular, we're going to see how to create a new orchard modular, and we're going to begin writing the code you did for the orchard movie site by creating something called a migration. We'll start by talking about what kind of project an orchard module is, and then look at how we create a new one from scratch. Then we'll actually create our new movie's module in order to get started. Once we have the modular created, we'll talk about what a migration is. And then write our first code for the module by using the migration to define the movie content type. As part of defining the movie content type, we're going to talk about auto route which is a new feature in orchard 1. 4, which changes how orchard handles the URL slugs for content items.
Creating a Custom Content Part Hi. And welcome back to the advanced orchard course here on Pluralsight. Once again, my name is Kevin Kuebler. And, on this module, we're going to continue building out the orchard movie site by defining a custom content part for movies. We're going to start by defining the model for the movie content part. When I say "model, " I mean we're going to create the classes which represent a movie part in our orchard module. Once we have the model defined, we'll see how to create the database table for storing the movie part data by using the migrations class that we saw before. Then, after we have the model and database set up, we'll introduce the concepts of drivers and handlers. These are two important classes to understand when exposing your own content types and parts in orchard because they allow your code to integrate into orchard's content management infrastructure. Specifically, with the driver, we'll see how it allows our part to be edited in the dashboard the same way as any other part that we've already seen. And we'll see how it allows our part to expose shapes for displaying on the front end on the site. Then we're going to further enhance our movie part by integrating some functionality from a third-party module. We're gonna use the taxonomies module, a popular module in orchard gallery in order to categorize the movies in our site according to their genre. We'll do this by adding the field that the taxonomies module provides to our movie part. And we'll configure all of the settings for this field with the migration. Last, we're gonna look at another extension point in orchard which will allow us to automatically run some code at the time our module is enabled. Since we're going to allow movies to be categorized by genre, it would be nice to automatically create the genre taxonomy when the movie's module is enabled. So we'll do that and this will lead us to another important concept: The ability to create content programmatically in orchard. This module is going to involve a lot of code and demo so let's jump right into it and start creating our model.
Customizing Layout and Connecting to an External Service Hi. Welcome back to the Advanced Orchard course here on Pluralsight. I'm Kevin Kuebler, and in this module, we're going to move our Orchard Movie site a lot closer to the final form that I previewed at the beginning of the course. The two main changes we're going to make involve some customizations to the layout of our movies and then adding the movie import feature that I demonstrated in module 1. We'll start by adding a new theme from the Orchard gallery to fresh up the overall look of the site. Then we're going to look at how we can override shapes in our module in a technique for altering the main layout of the movie content items. This is going to include defining our own resource manifest with our own style sheet resource. After we make our styling and layout changes, we're going to talk about and demonstrate a new feature in Orchard 1. 4 called Projector. This will let us build the main movie listing page on the site. Then we're going to implement a major new feature for our movies module; the ability to connect to an external service for our movie lookup and import feature. As part of this, we'll see how to integrate our or custom settings screen in the Orchard dashboard. And then we'll actually implement the code necessary to create movie content items from an external data source. Finally, we'll see how we can tie into Orchard's permission system in order to allow users of our module to control access to the movie import feature. We're going to cover a lot of ground again in this module so let's get started.
Finishing Touches Hi welcome back to the Advanced Orchard course here on Pluralsight. My name is Kevin Kuebler and in this module of the course we're going to use some advance techniques to put the finishing touches on our Pluralsight. movies module. We'll start by seeing how to return multiple shapes from the content part driver when displaying the movie part. Once we have an additional shape being displayed for the movie part, we'll look at a key extension point in Orchard called the shape table provider which among other things allows us to declare shape alternates. Then we'll look at how you can return shapes directly from a controller instead of a driver and we'll use that to build the AJAX filtering feature for the actor's list in the dashboard. And finally we'll learn how to take advantage of the Lucene indexing service included with Orchard. Using that and some more advance shape paneling techniques, we'll implement the similar movies feature that I demonstrated at the beginning of the course and with that, we'll say that our movies module is ready to share with the world. So I'll demonstrate how to package and deploy the module to the Orchard gallery so that others can use it in their own Orchard sites.