I am using the approach suggested by the Kirby Builder plugin’s docs: small snippets (one for each block type), and within those I make use of Kirby’s chaining syntax to work with the data.
Now, I have a few instances in my templates where I would like to call the same snippets directly (i.e. without involvement of the builder). Use case: While users can add a “Donation banner” block using the builder, I also want to hardcode them into a few pages’ templates by default. This breaks as soon as the snippets contain the processing of variables, e.g. <?= $data->calltoaction() ?>
.
This shouldn’t be too difficult, but I am terribly stuck with how to achieve this. I would like to be able to call a custom page method (e.g. builderblock()
) as follows and it would render the block snippet donate
, dealing with the data as if it were handed over by the plugin’s toBuilderBlocks()
method, i.e. enabling all the same chaining operations etc.
$page->builderblock([
'_key' => 'donate',
'content' => [
'calltoaction' => 'Donate now',
'img' => 'donation.svg'
]
])
How do I get this content handed over to the snippet in the same format as the Builder plugin does? Any hints in the right direction would be greatly appreciated!