Adding Automatic Actions ======================== Adding a new automatic action is pretty simple. Creating a new action --------------------- Your automatic action must inherit of the class ``Kanboard\Action\Base``. Several abstract methods must be implemented by yourself: +---------------------------------------+---------------------------------------------+ | Method | Description | +=======================================+=============================================+ | ``getDescription()`` | Description visible in the user interface | +---------------------------------------+---------------------------------------------+ | ``getCompatibleEvents()`` | Get the list of compatible events | +---------------------------------------+---------------------------------------------+ | ``getActionRequiredParameters()`` | Get the required parameter for the action | | | (defined by the user) | +---------------------------------------+---------------------------------------------+ | ``getEventRequiredParameters()`` | Get the required parameter for the event | +---------------------------------------+---------------------------------------------+ | ``doAction(array $data)`` | Execute the action, must return true on | | | success | +---------------------------------------+---------------------------------------------+ | ``hasRequiredCondition(array $data)`` | Check if the event data meet the action | | | condition | +---------------------------------------+---------------------------------------------+ Your automatic action is identified in Kanboard by using the absolute class name with the name space included. Adding new events ----------------- The list of application events is available in the class ``Kanboard\Core\Event\EventManager::getAll()``. However, if your plugin fires new events, you can register these events like that: .. code:: php $this->actionManager->getAction('\Kanboard\Plugin\MyPlugin\MyActionName')->addEvent('my.event', 'My event description'); You can extend the list of compatible events of existing actions by using the same method. Registering the action ---------------------- You have to call the method ``register()`` from the class ``Kanboard\Core\Action\ActionManager``: .. code:: php actionManager->register(new TaskRename($this->container)); } } Example ------- - `Automatic Action example `__