Commit | Line | Data |
---|---|---|
8adcd073 TO |
1 | <?php |
2 | namespace Civi\Token\Event; | |
3 | ||
4 | /** | |
5 | * Class TokenRegisterEvent | |
6 | * @package Civi\Token\Event | |
7 | * | |
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. | |
10 | * | |
11 | * @code | |
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)'), | |
19 | * )); | |
20 | * @endcode | |
21 | */ | |
22 | class TokenRegisterEvent extends TokenEvent { | |
23 | ||
24 | /** | |
25 | * Default values to put in new registrations. | |
26 | * | |
27 | * @var array | |
28 | */ | |
29 | protected $defaults; | |
30 | ||
31 | public function __construct($tokenProcessor, $defaults) { | |
32 | parent::__construct($tokenProcessor); | |
33 | $this->defaults = $defaults; | |
34 | } | |
35 | ||
36 | /** | |
37 | * Set the default entity name. | |
38 | * | |
39 | * @param string $entity | |
40 | * @return TokenRegisterEvent | |
41 | */ | |
42 | public function entity($entity) { | |
43 | $defaults = $this->defaults; | |
44 | $defaults['entity'] = $entity; | |
45 | return new TokenRegisterEvent($this->tokenProcessor, $defaults); | |
46 | } | |
47 | ||
48 | /** | |
49 | * Register a new token. | |
50 | * | |
51 | * @param array|string $paramsOrField | |
52 | * @param NULL|string $label | |
4b350175 | 53 | * @return TokenRegisterEvent |
8adcd073 TO |
54 | */ |
55 | public function register($paramsOrField, $label = NULL) { | |
56 | if (is_array($paramsOrField)) { | |
57 | $params = $paramsOrField; | |
58 | } | |
59 | else { | |
60 | $params = array( | |
61 | 'field' => $paramsOrField, | |
62 | 'label' => $label, | |
63 | ); | |
64 | } | |
65 | $params = array_merge($this->defaults, $params); | |
66 | $this->tokenProcessor->addToken($params); | |
67 | return $this; | |
68 | } | |
69 | ||
70 | } |