Adding Sitefinity-like controls on a Page

Topics: Customizing Orchard, General
Jul 31, 2012 at 4:15 PM

Relatively new to Orchard Development, so forgive me if this has been asked and answered.  First off, as a developer I am liking Orchard immensely.  It seems to be great for well-defined Content Types, it's extensible/modular, and so many more great things.

I am tasked with creating a CMS for our client that has the ability for them to arbitrarily add blocks of content of various types to pages.  Something like what you can do with Sitefinity where you can drag and drop controls into zones on a page.  Adding an HTML block, then an image gallery, then some other control.  Ignoring the whole drag and drop UI for a moment, I am trying to figure out how this can be done in Orchard.

Let's say for example they have a Content Type of Article, one Article might have just a Body Content Part, while another might have a Body Content Part, followed by a Tabbed Panel Content Part, and another Article might have a Body Content Part, followed by an inline Image Gallery, then another Body Content Part.  This just illustrates 3 examples out of possible hundreds.  The issue is that I desire the Content Parts to be chosen at time of content authoring.  The CMS user is not a developer, so I need to make this process as easy as I can for them.

I hesitate to add a new Content Type for each of these cases since that would be a two step process and would lead to many one-off Content Types ("Article with Body", "Article with Body and Tabbed Panel", "Article with Body then Gallery then Body", etc), especially if there are hundreds of possible combinations.

Am I missing a basic concept or can anyone provide direction on how I can make this possible?

Coordinator
Jul 31, 2012 at 5:09 PM

Being able to do that when authoring goes well beyond the design goals we had in Orchard for content authoring so far. I don't think there is currently a module on the gallery enabling it either. So you'd have to either build your own module to do something like that, use another CMS, or explain to your customer how they can do that (more painfully) using layers and widgets, or custom content types and placement.