2 namespace Civi\Token\Event
;
5 * Class TokenRegisterEvent
6 * @package Civi\Token\Event
8 * The TokenRegisterEvent is fired when constructing a list of available
9 * tokens. Listeners may register by specifying the entity/field/label for the token.
12 * $ev->entity('profile')
13 * ->register('viewUrl', ts('Default Profile URL (View Mode)')
14 * ->register('editUrl', ts('Default Profile URL (Edit Mode)');
15 * $ev->register(array(
16 * 'entity' => 'profile',
17 * 'field' => 'viewUrl',
18 * 'label' => ts('Default Profile URL (View Mode)'),
22 * Event name: 'civi.token.list'
24 class TokenRegisterEvent
extends TokenEvent
{
27 * Default values to put in new registrations.
33 public function __construct($tokenProcessor, $defaults) {
34 parent
::__construct($tokenProcessor);
35 $this->defaults
= $defaults;
39 * Set the default entity name.
41 * @param string $entity
42 * @return TokenRegisterEvent
44 public function entity($entity) {
45 $defaults = $this->defaults
;
46 $defaults['entity'] = $entity;
47 return new TokenRegisterEvent($this->tokenProcessor
, $defaults);
51 * Register a new token.
53 * @param array|string $paramsOrField
54 * @param NULL|string $label
55 * @return TokenRegisterEvent
57 public function register($paramsOrField, $label = NULL) {
58 if (is_array($paramsOrField)) {
59 $params = $paramsOrField;
63 'field' => $paramsOrField,
67 $params = array_merge($this->defaults
, $params);
68 $this->tokenProcessor
->addToken($params);