return 'Contact';
}
- /**
- * Tokens defined by the legacy hook.
- *
- * @var array
- */
- protected $hookTokens;
-
/**
* @inheritDoc
*/
*/
public function evaluateLegacyHookTokens(TokenValueEvent $e): void {
$messageTokens = $e->getTokenProcessor()->getMessageTokens();
- if (!array_intersect(array_keys($this->getHookTokens()), array_keys($messageTokens))) {
+ if (empty($messageTokens) || !array_intersect(array_keys($this->getHookTokens()), array_keys($messageTokens))) {
return;
}
* @return array
*/
protected function getHookTokens(): array {
- if ($this->hookTokens === NULL) {
- if (isset(Civi::$statics[__CLASS__]['hook_tokens'])) {
- $this->hookTokens = Civi::$statics[__CLASS__]['hook_tokens'];
- }
- else {
- $this->hookTokens = [];
- \CRM_Utils_Hook::tokens($this->hookTokens);
- Civi::$statics[__CLASS__]['hook_tokens'] = $this->hookTokens;
- }
+ if (isset(Civi::$statics[__CLASS__]['hook_tokens'])) {
+ return Civi::$statics[__CLASS__]['hook_tokens'];
}
- return $this->hookTokens;
+ $tokens = [];
+ \CRM_Utils_Hook::tokens($tokens);
+ Civi::$statics[__CLASS__]['hook_tokens'] = $tokens;
+ return $tokens;
}
}
*/
public function setHook(string $hook, $callable): void {
$this->adhocHooks[$hook] = $callable;
+ if (strpos($hook, 'token') !== FALSE) {
+ unset(Civi::$statics['CRM_Contact_Tokens']['hook_tokens']);
+ }
}
/**