Closed (fixed)
Project:
Display Builder
Version:
1.0.x-dev
Component:
display_builder_entity_view
Priority:
Normal
Category:
Task
Assigned:
Unassigned
Issue tags:
Reporter:
Created:
22 Aug 2026 at 12:00 UTC
Updated:
17 Sep 2026 at 14:05 UTC
Jump to comment: Most recent
Comments
Comment #3
mogtofu33 commentedComment #4
pdureau commentedWith the split, the reviews must be done following this order:
So, this one last.
It may be the opportunity to check if we can use PreviewFallbackInterface from Core.
Comment #5
pdureau commentedHi Jean,
#3618072: Placeholders and real render, in Canvas and Preview is merged, #3542796: Preview of view sources has been reviewed, i can review this one next. Can you rebase?
Comment #6
mogtofu33 commentedSure, ready to go.
Comment #7
pdureau commentedViewDisplay::getPreviewPagePath()
Feature review: Views
I have a View with a Page display managed by Display Builder: /articles
I add a block in Block Layout:
✅ I see the button in /articles and I see it in Display Builder preview panel.
Feature review: Entity Override
node.article.defaultview display is managed by Display Builder and is overridable. I create an override for/node/1I add another block in Block Layout, with:
❌ I see the button in /node/1 but i don't see it in Display Builder preview panel.
DisplayBuildableInterface::getSourcesForRender()
So,
::getSourcesForRender()is used for "real" rendering:And
::getSource()is used for building.It make sense to split the use, but would it be the opportunity to use the newly introduced
'ui_patterns:in_preview'boolean context?Comment #8
pdureau commentedComment #9
mogtofu33 commentedFixed
ViewDisplay::getPreviewPagePath().For
DisplayBuildableInterface::getSourcesForRender():ui_patterns:in_previewonly exists inside Island plugins, set by IslandPluginManager::createInstance(). It answers "is this block rendering inside the builder chrome" for one block, so it can draw a placeholder.getSourcesForRender()runs on the plain render pipeline — buildMultiple(), page variant build, views preprocess — no Island, no such context. It answers "draft or saved sources" for the whole display, on every request including live ones.Different question, different layer, not available at the call site.
Comment #10
pdureau commentedViewDisplay::getPreviewPagePath()
Same tests.
Feature review: Views
✅ I see the button in /articles and I see it in Display Builder preview panel.
Feature review: Entity Override
✅ I see the button in /node/1 but i don't see it in Display Builder preview panel.
DisplayBuildableInterface::getSourcesForRender()
I may be tired, but I have struggled a bit to understand the path of the logic here and how everything fit together. That why it took me a lot of time to do the review.
I put the ticket to RTBC, because such change is optional, but here is a little something we can do to make the logic more explicit?
For example, would it be more understandable to replace
DisplayBuilderHelpers::previewedInstanceId(?Request $request): ?stringbyDisplayBuildablePluginBase::isPreview(string $instance_id): bool?Or anything like that...
Comment #11
mogtofu33 commentedI merge but keep open on you for follow up.
Comment #13
pdureau commented