- Moved Rules engine code to new Orchard.Conditions module.
- Refactored Layouts and Widgets to use Conditions.
- Moved Widgets element harvester to the Widgets module as a separate feature.
The issue was that the snippets harvester included the Elements_Snippet shape which itself is not a snippet.
This also fixes an issue where it would not find snippets defined in the current theme.
This change makes implementing element editors more intuitive, since they no longer rely on the initial postback from layout editor to the element editor dialog.
The ObjectStore is a simple database table that serves as a robust data transfer mechanism to share element state without the need for the host (content) to be persisted.
We could have used SessionState, but that would have added configuration requirements when hosting in a web farm.
This issue fixes an issue where multiple drivers for the same element type would throw an exception due to the element type being present more than once in the element type repository.
The problem before this change was that the cache manager would cache an empty list of elements when trying to locate a blueprint element without specifying a content item.
The VaryByParam property allows additional control over the cache key.
This allows for more granular control over what gets rendered when.
One scenario that this enables is where one can create an Element Blueprint and use it as a widget via the ElementWrapperPart.
This enables scenarios such as creating blueprints for content part elements, which themselves are 'virtualized' elements based on the ContentPart element.