Recent Posts and Articles
- 00:00 - Agenda.
- 01:18 - Status.
- 06:42 - Triaging new issues for 1.9.3/1.10: #6396, #6395, #6361, #6360, #6406, #6403, #6390, #6345.
- 21:30 - Discussion on a new default theme to replace TheThemeMachine (see #6391).
- 52:15 - Orchard 2 status: Fixed a security issue with notification cookies, CheckMarkModelBinder added ("✓" = true, "✗" = false), Orchard.List module ported over, FindPlacementDelegate for more comprehensive code, ZoneTagHelper added, optimized implementation of RazorPage, Zones are now tagless by default (instead of overriding Zone.cshtml to only render its content). Sébastien will demo the content tree (improved Admin navigation) next week.
How to use GUID-type properties in your records?
- 00:00 - Status. Fixed #6329 and #6328 (Orchard.Resources), #5722, #5943. Todo for Orchard 1.10 release: #6366 (missing view for EditProperties in Workflows), #6345 (module updates not working anymore).
- 17:40 - Orchard Gallery is now open-source! You can set up your own Gallery with the dedicated recipe included in the module. It uses a Bootstrap-based theme called the TheBootstrapMachine with overrides in TheGalleryMachine.
- 26:08 - Orchard 2 status: ContentDefinition, ContentManagement and DisplayManagement work in progress.
- 49:55 - Demo by Siyamand: Using ReactJS with Orchard.
- 00:00 - Agenda.
- 01:37 - Status.
- 13:26 - Pre-release of 1.10 and 1.9.3.
- 17:00 - Feature roadmap for the next release has been updated.
- 21:16 - Discussion on a new default/base theme for the frontend (~TheThemeMachine2). Optinally skinnable for using it out of the box.
- 32:48 - Discussion about the Contributor Code of Conduct published by the .NET Foundation and it's adoption to Orchard.
- 41:52 - Demo by Szymon - the new Admin theme! It may be adopted to Orchard 2 as well.
This post explains how to use parameterized snippets with Orchard.Layouts, and is taken from a little book I'm writing on the Orchard.Layouts module.
- 00:00 - Agenda.
- 02:16 - Status: merged PRs, bugfixes. Azure AD integration incoming!
- 10:19 - Demo by Lombiq - Lombiq.Fields open-source module. Contains the MoneyField (using Money.NET) and the MediaLibraryPickerField for uploading files using a content item editor (including frontend), both with various settings for customization. Links: Git repo, Mercurial repo.
- 21:21 - Demo by Sébastien - the new Orchard Gallery is in production! You can filter the list packages on the Admin UI to see your own packages.
- 29:16 - Demo by Sébastien - Orchard 2 updates:
- Layout shape is now called ThemeLayout ("Layout" is a View property used by Razor).
- Layout.Header is now called using RenderSectionAsync (not the default Razor method, but it's overridden by Orchard)
- Document shape is no more, it's content is now in Layout.
- The pipeline for displaying a content item is much more effective. Sébastien's local machine runs 700 requests / second with 20 ms response time.
- 41:34 - To build the Admin UI, Orchard 2 needs user management. Discussion on possible identity providers and other Orchard 2 topics.
- 53:18 - Discussion about an issue and open PR about using NuGet instead of the lib folder.
- 57:34 - Questions by Matt, who's new to Orchard - answers by Sébastien.
- 00:00 - Recap of the last meeting and agenda.
- 04:33 - Status:
- Configurable Layout Snippets
- Amaretti Admin theme
- Discussion: lib folder vs. NuGet.
- PR for optimizing the loading of ShellStateRecords.
- ContentItem.Content property to dynamically read a ContentItem's properties.
- Fixed import-export for NavigationQueryMenuItems and BlogArchives widgets.
- Theme dependecies are now correctly handled as for modules.
- 29:26 - Demo by Sébastien - The new Orchard Gallery is almost production-ready (public preview): support for screenshots added.
- 33:30 - Demo by Sébastien - Orchard 2 updates:
- Nick imported over most of the Recipes module.
- Sébastien improved the Shape Tag Helpers so shape properties can be proxied (and documented) in a TagHelper for IntelliSense support (instead of e.g. using a separate ViewModel class).
- The Orchard 2 type system brings many changes for more freedom:
- A ContentItem is a limitless JSON object tree with dynamic bindings, but you can access properties statically too.
- Drivers are not required to have static binding anymore to a Part or Fields as they can manipulate any part of a content item now (see Orchard.Indexing.Settings.EditorEvents for a similar example in Orchard 1).
- ContentElement is a new parent type for any level of content-related type (Field, Part, Item).
- Content Fields and Parts still exist, but due to the dynamic nature of Content Items in Orchard 2, they only serve as helpers/conventions (thanks to their static typing) for adding properties to a Content Item and they behave the same way as in Orchard 1, but you can create your own conventions.
- In Orchard 1, ContentItem.Content is a dynamic property that will get the statically typed representation of a Field/Part using reflection. In Orchard 2, ContentItem.Content will access an internal field of the type JObject (which is the deserialized tree of data of the content item).
- Modifying content elements is different from Orchard 1 (modifications to a property in a reference of a Content Part automatically updates the Content Item): in Orchard 2 you need to weld (Weld<T>()) back the modified content element to the content item or alter the content item (Alter<T>()) and define the changes in an action.
- Next steps: Theming engine (mostly 1-1 port from Orchard 1)