This project is read-only.

Placement Feature Team (1.5)

Topics: Announcements, Core
Mar 15, 2012 at 12:25 AM

This is the thread for the placement feature team, where one can volunteer to do work and discuss design.

Strawman design proposal:

  • admin-based placement
    The difficulty with this feature is that placement should be configurable in principle for all possible shapes in the system. Some shapes we can discover through the shape table provider, some will be emitted through drivers, some in arbitrary code. In early versions of Orchard, placement could be managed through the content type editor. The UI was clumsy, and did not capture scenarios where a part driver emits more than one shape. Essentially, it was operating at the wrong level.
    The new feature should enable matches like the placement files.
    It does not replace placement files, that would still be used by module and theme authors to determine default placement. It does win over placement files though.
    The UI could be as simple as a list of items with shape name, zone, order string, content type match, display type match, url match and a delete button. That would not make it the friendliest UI, but this is just a strawman proposal ;)
    Integration with shape tracing would be neat, because it removes the abstract aspect of the work. You would be able to pick a shape like you do today, and the placement tab, instead of showing you the placement file that was used, would give you the path of the placement used, the relevant placement information it got from that file, and the UI to override it (with matches, see above). 
  • placement into other zones than local content (sidebars, etc.)
    Today, placement is used to dispatch shapes that were built as part of displaying or editing a content item. The zones where you can dispatch those shapes are local zones within the local Content zone that the content item is being rendered into.
    This has two shortcomings.
    The first one is that you can't easily send one of those content shapes into a completely different zone that is not a local zone inside the local Content zone. To fix that, we would add special syntax to send the shape into any zone. Proposal: "MyZone:1" would still work the way it does today, but "/TopLevelZone:1" would send the shape in first position in the top-level zone "TopLevelZone". You would be able to send shapes into deeper zones using "/TopLevelZone/Deeper/AndDeeper:1". When multiple items are rendered in a List shape, an indexer syntax could be used: "/TopLevelZone/SomeListShape[3]/Content/SomeLocalZone:2". These are presented in order of priority. Even just implementing the top-level syntax would be great.
    The second shortcoming is that only shapes that were emitted as part of the rendering of a content item can be dispatched using placement. This has been confusing to many users. Shapes that are added directly to some zone in code are not affected by placement. There may be cases where the shape is created too late to be moved around, but we could attempt to use shape table providers to allow placement to work on any shape, not just content shapes.


Mar 19, 2012 at 11:21 AM

A addendum idea for the admin based placement:

Make it possible to place a driver result in a chosen tab by placement in the backend. Create dynamically tabs because the current management of content items can be come a mess when there are a lof of fields en driver editor templates.

Apr 27, 2012 at 1:30 AM

Please start using for task management on this feature team.


May 9, 2012 at 3:03 AM

Feature Team Leaders, please join us tomorrow at 1PM Pacific Time for a status report at (Lync client required). If you can't join us, please leave us a note here giving status before the meeting.



Jul 18, 2012 at 6:49 PM

Hi Guys,

Can you clarify the following issue that my workmate has posted

It's related to the placement into other zones than local content (sidebars, etc.) feature mentioned in this post.

It's easy to replicate - to move the title part on to the Featured layout zone, in the theme's placement file add:

  <Match Path="/">
    <Place Parts_Title="/Featured:after"/>

With Shape tracing on, we would except to still see the Feature zone with the title part has a child, but instead the Featured zone is replaced, see

Can you clarify what the expected behaviour is?

Many thanks,