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 class TokenRegisterEvent
extends TokenEvent
{
25 * Default values to put in new registrations.
31 public function __construct($tokenProcessor, $defaults) {
32 parent
::__construct($tokenProcessor);
33 $this->defaults
= $defaults;
37 * Set the default entity name.
39 * @param string $entity
40 * @return TokenRegisterEvent
42 public function entity($entity) {
43 $defaults = $this->defaults
;
44 $defaults['entity'] = $entity;
45 return new TokenRegisterEvent($this->tokenProcessor
, $defaults);
49 * Register a new token.
51 * @param array|string $paramsOrField
52 * @param NULL|string $label
53 * @return TokenRegisterEvent
55 public function register($paramsOrField, $label = NULL) {
56 if (is_array($paramsOrField)) {
57 $params = $paramsOrField;
61 'field' => $paramsOrField,
65 $params = array_merge($this->defaults
, $params);
66 $this->tokenProcessor
->addToken($params);