Categories
Categories are a way to organize Mautic elements.
Mautic has a CategoryBundle that you can leverage to incorporate Categories into your Plugin.
Adding Categories
You can add Categories through your Plugin’s config.php file by adding the following as a key to the returned config array:
<?php
'categories' => [
'plugin:helloWorld' => 'mautic.helloworld.world.categories'
]
Please prefix Category keys with plugin: as it determines permissions to manage Categories.
The helloWorld should match the permission class name.
Configuring Categories for Routes
There is no need to add custom routes for Categories, however, when generating a URL to the Plugin’s Category list, use the following code:
<?php
$categoryUrl = $router->generateUrl('mautic_category_index', ['bundle' => 'plugin:helloWorld']);
Including Categories in Forms
To add a Category select list to a Form, use category as the Form type and pass bundle as an option:
<?php
$builder->add('category', 'category', [
'bundle' => 'plugin:helloWorld'
]);
Restricting Category Management
To restrict access to Categories, use the following in the Plugin’s Permission class.
In __construct(), add $this->addStandardPermissions('categories');, then in buildForm(), add $this->addStandardFormFields('helloWorld', 'categories', $builder, $data);.
See a code example in Roles and Permissions.
The two standard helper methods add the permissions of view, edit, create, delete, publish, and full for Categories.