Spaces:
No application file
No application file
| declare(strict_types=1); | |
| namespace Mautic\IntegrationsBundle\Event; | |
| use Mautic\CoreBundle\Event\CommonEvent; | |
| /** | |
| * This event is dispatched to allow plugins to provide tokens which create links | |
| * to any synced integration objects they may provide. | |
| */ | |
| class MappedIntegrationObjectTokenEvent extends CommonEvent | |
| { | |
| private array $tokens = []; | |
| /** | |
| * Add a new mapped integration object token. | |
| * | |
| * @param string $integrationName - The name of the integration | |
| * @param $objectName - The name of the object in sync_object_mapping table | |
| * @param $objectLink - The base_url to direct users to the object on the integration site | |
| * @param string $title - The title of the token in the token select dropdown | |
| * @param string $linkText - The link text used for the url provided in $objectLink | |
| * @param string $default - The default value to show when the token value isnt found | |
| */ | |
| public function addToken( | |
| $integrationName, | |
| $objectName, | |
| $objectLink, | |
| $title = '', | |
| $linkText = 'Link Text', | |
| $default = 'Default Value' | |
| ): void { | |
| $this->tokens[$integrationName][$objectName] = [ | |
| 'base_url' => $objectLink, | |
| 'token_title' => $title, | |
| 'link_text' => $linkText, | |
| 'default' => $default, | |
| ]; | |
| } | |
| /** | |
| * @return array | |
| */ | |
| public function getTokens() | |
| { | |
| return $this->tokens; | |
| } | |
| /** | |
| * Get only the tokens provided by a particular integration. | |
| * | |
| * @param string $integrationName | |
| * | |
| * @return array | |
| */ | |
| public function getTokensByIntegration($integrationName) | |
| { | |
| return $this->tokens[$integrationName] ?? []; | |
| } | |
| } | |