This project is read-only.

Layouts, Widgets, UX...

Topics: Customizing Orchard, General
Jul 13, 2012 at 5:50 AM
Edited Jul 13, 2012 at 5:50 AM

I've been following the Orchard project for over a year now, watching it grow.  I really like the emphasis on flexibility and keeping the core of the product as small as possible.

I'd like to use Orchard for an upcoming project (probably won't start for another year), but I have some concerns about how much custom work I would need to invest to build the site I'm envisioning.  My background is SharePoint development, so I tend to think of concepts as they exist in SharePoint, and I'm still not very clear on how drivers, parts, shapes, zones, pages, widgets,, themes etc. all work together, so please bear with me.

My content editors will not be very technical, and I don't want content editing to fall on a single person that knows how to navigate Orchard.

1.) Is it possible for a content editor to edit a page "in-place" rather than going to a separate UI that shows each field in the content type?  That is, can the edit controls be displayed in a layout similar to the end-user view of the page, rather than each field on a separate line?

2.) Is it possible to provide different layouts for a specific content type, so content editors can choose the layout that makes sense?  Is there a way to restrict which content types and/or layouts can be used in specific areas of the site?  For instance, if I created a content type to represent a person on the executive board of the organization, I would only want items of that content type to be created under an "executive board" area of the site and nowhere else.  If I add a blog to the site (is that possible?) I would not want an item of my executive board member content type to be added in the blog.

3.) Can widgets be added to a page by editing a page and selecting a widget from a gallary, and also can you move widgets around in a drag-n-drop fashion?  I'm thinking of web parts in SharePoint here, where the web part only exists on one specific page and you manage web parts on a page by editing that page.  It seems in Orchard to manage widgets you go to a central management page and specify rules for displaying widgets.  That will not work for my non-technical content editors.

4.) Just wanting to confirm this, as I think I saw this implemented somewhere: can I use a list behind the scenes to drive the content shown on a page?  I want to use the list to store simple information that's easy to edit (for instance, a list of endorsed candidates--name, picture, race/position, campaign website, etc.), but I want to display the info on a page so I can add style and formatting for end-users.  In this case I don't want to have a page per candidate, rather I would want one page that displays all the items from the list with custom formatting.  End-users should only have access to the page and should not be able to browse the underlying list.  Is there a better way to implement something like this?

I know this was long, but I really appreciate your help!

Jul 13, 2012 at 10:36 AM
  1. More or less yes. Inline editing is a new feature under development (pretty impressive at the time though).
  2. I'm a bit confused about this requirement, but that could be simply because of the different concepts in Orchard. Could you give more examples? With permissions you can finely restrict who can do what.
  3. Widget drag-drop is not currently implemented, although an anticipated feature. Indeed, widgets are managed from a central UI. There you can add layers; layers contain widgets, and in turn layers can have specific rules about when they should be active. Particularly you can restrict layers to be active for specific pages only.
    Widgets are thus not bound to a content item; if you want such a functionality, you could try my Content Widgets module.
  4. Since 1.4 the Projector module provides highly customizable listing for content items. That means, there should be individual content items (e.g. candidates) that are editable separately and those can be contained by a list made with Projector.
    If by "End-users should only have access to the page and should not be able to browse the underlying list." you mean that the list items shouldn't be accessed individually, just listed together, the this is possible. You may know that content items have display types; the default type where everything is displayed on the frontend is called "Detail". Probably the most simple solution would be to setup a Projector query that displays all the items in "Detail" mode: thus items aren't clickable, all their (public) data is shown in the list
Jul 17, 2012 at 2:56 AM

Thanks.  I downloaded and installed 1.5rc (last version I had actually tried was pre-V1.0).

I like how you can create one or more blogs and those blog post pages are separated from the rest of the site.  I haven't seen how that's implemented yet, but it seems like one option for creating a hierarchy in the site.  I still need to check out the Advanced Menu module and your Content Widgets module.

BTW - what happened to the like gray edit links in the top right corner of each part of the content?  The tutorials for 1.4 show the links and say to use them, but I don't see them in 1.5rc?

Jul 17, 2012 at 7:35 AM

For the edit links: You need to enable Content Control Wrapper for that (and optionally Widget Control Wrapper too)

Jul 17, 2012 at 9:08 AM

Formerly I'd advocate the excellent menu module from Piotr, but with the new navigation module of 1.5 it will become obsolate.