Hello there,
i am very satisfied with the Kirby-Builder, so i can publish any kind of Content Situation i want.
But now i got the Situation, that I have the Builder Elements (for example) “Text-Image Combination”, “RTE” and a “Gallery”, and i want to place this into a Builder Element like a “Container”. This Container Element has two, three or four slots to place the Builder Elements. So the Container wraps the other Elements.
I need to have the Container Builder Element to place the other Kirby-Builder Elements in the same Row as the Container.
I hope i explained it well
Is it possible to achieve something like this?
Then you need to nest your elements, which is possible.
And this might be my Problem.
I will place my YAML Content here, so I can describe it better.
Pages/default.yml
title: Default Page
preset: page
options:
changeTemplate:
- default
- story
fields:
mybuilder:
label: Page Builder
type: builder
columns: 1
fieldsets:
basicheadline:
extends: builder/basicheadline
basictext:
extends: builder/basictext
container2col:
extends: builder/container2col
The Container2Col Builder:
name: Container 2 Col
fields:
colleft:
label: Column left
width: 1/2
type: builder
fieldsets:
basicheadline:
extends: builder/basicheadline
collright:
label: Column Right
width: 1/2
type: builder
fieldsets:
basicheadline:
extends: builder/basicheadline
Info: I reduced my Code to Basicheadline and Basictext, i have more Builder Elements.
The Output in the Panel is:
Where does this name
property come from?
It’s the Container Name “Container 2 Col”
Me again…
i got the nexted Builder in the Panel working. But i can’t see a Code Difference:
name: Container 2 Col
fields:
colleft:
label: Column left
width: 1/2
type: builder
fieldsets:
basicheadline:
extends: builder/basicheadline
basictext:
extends: builder/basictext
colright:
label: Column right
width: 1/2
type: builder
fieldsets:
basicheadline:
extends: builder/basicheadline
basictext:
extends: builder/basictext
What i saw is that “$page->mybuilder()->toBuilderBlocks()” has no Output. When I remove the Function “toBuilderBlocks()” i do see the Content.
Could you provide a more detailed error description, please? And please provide your code, not just that one line.
1 Like
On a side note: Please always wrap blocks of code within three backticks on a separate line before and after the block. It will instantly become much more readable.
1 Like
This is my Code in the Page Template:
foreach($page->mybuilder()->toBuilderBlocks() as $key => $block):
snippet('blocks/' . $block->_key(), array('data' => $block));
endforeach;
If i do:
<?php dump( $page->mybuilder()->toBuilderBlocks() ); ?>
It generates the following Output in the Page Template:
Kirby\Cms\Structure Object
(
[0] => 0
[1] => 1
)
I hope the Code will be displayed correctly now.
The dump output looks ok to me.
Note that for nested builder fields, you need to apply toBuilderBlocks
on the nested field (inside the relevant block snippet).
1 Like
Note that for nested builder fields, you need to apply toBuilderBlocks
on the nested field (inside the relevant block snippet).
Yes, good Mention!
Now it works!
@texnixe i am so happy about your instant Help! Thank you very much.
1 Like