ModifyButtonBarEvent 

The PSR-14 event \TYPO3\CMS\Backend\Template\Components\ModifyButtonBarEvent can be used to modify the button bar in the TYPO3 backend module docheader.

Example 

EXT:my_extension/Classes/Backend/EventListener/MyEventListener.php
<?php

declare(strict_types=1);

namespace MyVendor\MyExtension\Backend\EventListener;

use TYPO3\CMS\Backend\Template\Components\ModifyButtonBarEvent;
use TYPO3\CMS\Core\Attribute\AsEventListener;

#[AsEventListener(
    identifier: 'my-extension/backend/modify-button-bar',
)]
final readonly class MyEventListener
{
    public function __invoke(ModifyButtonBarEvent $event): void
    {
        // Do your magic here
    }
}
Copied!

New in version 13.0

The PHP attribute \TYPO3\CMS\Core\Attribute\AsEventListener has been introduced to tag a PHP class as an event listener. Alternatively, or if you need to be compatible with older TYPO3 versions, you can also register an event listener via the Configuration/Services.yaml file. Switch to an older version of this page for an example or have a look at the section Implementing an event listener in your extension.

API 

class ModifyButtonBarEvent
Fully qualified name
\TYPO3\CMS\Backend\Template\Components\ModifyButtonBarEvent

PSR-14 event that allows listeners to modify the buttons in the backend module document header button bar. This event is dispatched after all buttons have been added to the button bar, but before they are rendered.

Use cases: - Add custom buttons to existing modules - Remove or hide buttons based on conditions - Modify button properties (labels, icons, etc.) - Reorder buttons

Example event listener:

use TYPO3\CMS\Backend\Template\Components\ModifyButtonBarEvent;
use TYPO3\CMS\Backend\Template\Components\ButtonBar;
use TYPO3\CMS\Backend\Template\Components\ComponentFactory;
use TYPO3\CMS\Core\Attribute\AsEventListener;

final class MyButtonBarListener
{
    public function __construct(
        protected readonly ComponentFactory $componentFactory,
    ) }

    #[AsEventListener]
    public function __invoke(ModifyButtonBarEvent $event): void
    {
        $buttons = $event->getButtons();
        $buttonBar = $event->getButtonBar();

        $myButton = $this->componentFactory->createLinkButton()
            ->setHref('/my-action')
            ->setTitle('My Action')
            ->setIcon($iconFactory->getIcon('actions-heart'));

        $buttons[ButtonBar::BUTTON_POSITION_RIGHT][1][] = clone $myButton;

        $event->setButtons($buttons);
    }
}
Copied!
getButtons ( )
Returns
\Buttons
setButtons ( array $buttons)
param $buttons

the buttons

getButtonBar ( )
Returns
\TYPO3\CMS\Backend\Template\Components\ButtonBar