8. BlockBundle Integration
There is an (optional) integration with the SonataBlockBundle
. This integration allows you to render dynamic lists on a page.
Here is a sample implementation for a custom category list block:
class CustomCategoriesBlockService extends AbstractCategoriesBlockService
{
public function configureSettings(OptionsResolver $resolver): void
{
parent::configureSettings($resolver);
$resolver->setDefaults([
'context' => 'custom',
'template' => '@AcmeCustom/Block/block_categories.html.twig',
]);
}
public function getMetadata(): Metadata
{
return new Metadata('my_custom_block_title', null, null, 'AcmeCustomBundle', [
'class' => 'fa fa-folder-open-o',
]);
}
}
{% extends '@SonataClassification/Block/base_block_categories.html.twig' %}
{% block link_category %}
<a href="{{ path('acme_custom_category', { 'category': item.slug }) }}">{{ item.name }}</a>
{% endblock %}