Categories

Note

The content for this page requires a major update. The legacy page contains outdated and potentially inaccurate information. You can still access it in the Mautic Developer Documentation archived repository.

If you’re interested in helping develop the new content for this page and others, consider joining the documentation efforts.

Please read the Contributing Guidelines and Contributing to Mautic’s documentation to get started.

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.