November Happy Hour will be moved to Thursday December 5th.

Bartosz Sekula
Oct 27, 2021
  3418
(6 votes)

Block Enhancements Update

We have just released a new version of EPiServer.Labs.BlockEnhancements 0.11.0  and we would really love to hear your feedback. Please find what it brings to the Editors! 

It greatly enhances the way editors have to deal with local content - which means content that is not shared accross multiple other pages but used only once.

Such local content is typically stored in `For this page/block` folders and is considered an integral part of the page. It turns out that on average more than 90% of blocks are only used on a single page which means that they either already reside in `For this page` folder or could easily be moved there.

After installing/upgrading to 0.11.0 editors no longer have to manage Local Blocks and Local Assets independently. All local contents (meaning content that resides in For this page/block folders) lifecycle will now be synchronized to its parent.

This greatly simplifies the process of creating and editing pages because editor/reviewer no longer need to deal with individual blocks or assets but can focus on the big picture.

When publishing a page all local content will be published altogether.

The same with approval workflow, when content is marked as Ready to review, Approved or Declined then the editor/reviewer will just receive a single notification about the page. There will be no need to review the block individually.

Changing a local block will create a new page version which lets the editors to review and preview what actually changed on a given page.

Please see the new feature in action:

This allows the editor to use the Compare Mode and see what actually changed:

Editor can also mark the page as Ready to review without dealing with local blocks one by one

Approving/declining is just as easy:

We also added an admin mode plugin that lets you analyze the blocks on your site:

All the blocks that are not truly Shared (meaning they are only used once) will be moved the the respective `For this page/block` folders. You can move the blocks one by one or move all the visible blocks at once. 

For performance reasons we only display the N first blocks that match the search filter.

In this version we removed two features:

  • Content Draft View - it is no longer needed because version 0.11.0 makes the preview work automatically for all local content. The editor no longer needs to know that some parts of the page are not published, everything that builds a page is one entity that is saved, previewed and published at the same time. However, all shared content items (pages, shared blocks, shared media) have to be managed on their own.
  • Inline Publish from Content Area - it was not popular and is no longer needed since now you can just publish the page and all local dependencies do not have to be handled separately and will be published automatically. Shared content has to be published on its own.

Additionally we disabled the `Publish Page with Blocks` aka `Smart publish` by default - the command can still be turned on via Options if you really need to because you already have many shared blocks that cannot be convert to local blocks. We would like this command to be phased out eventually. Blocks which are truly shared between multiple pages should be published from their respective context where the editor can clearly see the list of items that will be affected by the change.

Idea of linking pages with their local content seems more attractive.

Documentation and full source code is available on our github https://github.com/episerver/EPiServer.Labs.BlockEnhancements and this specific feature is available here https://github.com/episerver/EPiServer.Labs.BlockEnhancements#local-content 

If you find any issue or would like to contribute then you are more than welcome to let us know :)

We are also in the middle of migrating this Labs package to .net core. It will be available soon!

Oct 27, 2021

Comments

Scott Reed
Scott Reed Oct 27, 2021 11:56 AM

Hmmn and interesting one, I'm not sure about it from how I've seen editors work.

  1. Once a block has been linked can you un-link it? I've seen many time a block create for only a local context then needing to be shared and it's easy to move that block from the local blocks to shared and re-reference.
  2. What happens when the block is remove from a Content Area? Is it deleted or ophaned. Before uses could remove block temporarily and re-add them later as local block, i've see editors do this before. If this changes the default behaviour to delete a block it needs some indication that the content is being deleted to the user.
  3. Is this tested full to work with packages such as A/B to try out variations of blocks and I assume it works with rules based personalization?
  4. If pages are in draft already does this update the existing draft that another user is working? Or does this force a new version? How does it work like this?

Bartosz Sekula
Bartosz Sekula Oct 27, 2021 12:49 PM

Thanks Scott, those are very valid questions.

1) It is not possible now, but we have plans for it. It will be possible to select a lock block and choose to "reuse" it somewhere else. Something like 'Promote to shared block" or something like this.

2) We do not remove the block because previous versions still have references to them. Only once there is no more versions that use a specific block (if the `maxVersions` threshhold is reached) then we might to some cleanup (at the moment cleanup is disabled). For now, removed blocks are still accessible via `Browse existing` content link. It is also possible to turn the `For this page` folder visibility back if someone really wants this via options.

3) This is still a Lab, it was tested with core CMS features such as projects, content approvals and personalization. We did not test with A/B add-on.

4) Unless you have a project we always try to load from the common draft. Having multiple drafts of the same content is in my opinion a bad practice because we do not support merging two versions into one.

Scott Reed
Scott Reed Oct 27, 2021 05:23 PM

Thank just wanted to check on these things as I've been a big advocate of this package for a long time :-) 

Karen McDougall
Karen McDougall Oct 29, 2021 10:44 AM

Love this! Thanks!
Couldn't help myself so I had to link to this here: https://www.linkedin.com/posts/karenmcdougall_block-enhancements-update-activity-6859517969949634561-h8ro and here create a poll here: https://www.linkedin.com/feed/update/urn:li:activity:6859789367276318720 Feel free to vote! Happy Friday everyone! :-)

K Khan
K Khan Nov 1, 2021 12:29 PM

Wanna try it but can't install on my project due to this dependency
Install-Package : Could not install package 'EPiServer.CMS.UI.AspNetIdentity 12.0.3'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.8', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.

Bartosz Sekula
Bartosz Sekula Nov 2, 2021 07:00 AM

Can you please update CMS UI to 11.36.3 and CMS Core to > 11.20.4 and then try with Labs?

Eric Markson
Eric Markson Nov 4, 2021 01:52 PM

This is fantastic to see!

I am looking forward to two features before I feel comfortable moving this into my current project:

  • Being able to move these local blocks back to shared blocks
  • This being fully tested with the A/B Add-on

Thank you for the work that you've done on this, and I cant wait to see how this evolves!

Please login to comment.
Latest blogs
Set Default Culture in Optimizely CMS 12

Take control over culture-specific operations like date and time formatting.

Tomas Hensrud Gulla | Nov 15, 2024 | Syndicated blog

I'm running Optimizely CMS on .NET 9!

It works 🎉

Tomas Hensrud Gulla | Nov 12, 2024 | Syndicated blog

Recraft's image generation with AI-Assistant for Optimizely

Recraft V3 model is outperforming all other models in the image generation space and we are happy to share: Recraft's new model is now available fo...

Luc Gosso (MVP) | Nov 8, 2024 | Syndicated blog

ExcludeDeleted(): Prevent Trashed Content from Appearing in Search Results

Introduction In Optimizely CMS, content that is moved to the trash can still appear in search results if it’s not explicitly excluded using the...

Ashish Rasal | Nov 7, 2024

CMS + CMP + Graph integration

We have just released a new package https://nuget.optimizely.com/package/?id=EPiServer.Cms.WelcomeIntegration.Graph which changes the way CMS fetch...

Bartosz Sekula | Nov 5, 2024

Block type selection doesn't work

Imagine you're trying to create a new block in a specific content area. You click the "Create" link, expecting to see a CMS modal with a list of...

Damian Smutek | Nov 4, 2024 | Syndicated blog