<?php
+use Civi\Token\Event\TokenValueEvent;
+use Civi\Token\TokenProcessor;
+
trait CRM_Core_TokenTrait {
private $basicTokens;
/**
* @inheritDoc
*/
- public function checkActive(\Civi\Token\TokenProcessor $processor) {
+ public function checkActive(TokenProcessor $processor) {
return in_array($this->getEntityContextSchema(), $processor->context['schema']) ||
(!empty($processor->context['actionMapping'])
&& $processor->context['actionMapping']->getEntity() === $this->getEntityTableName());
/**
* @inheritDoc
*/
- public function getActiveTokens(\Civi\Token\Event\TokenValueEvent $e) {
+ public function getActiveTokens(TokenValueEvent $e) {
$messageTokens = $e->getTokenProcessor()->getMessageTokens();
if (!isset($messageTokens[$this->entity])) {
return NULL;
/**
* Find the fields that we need to get to construct the tokens requested.
- * @param array $tokens list of tokens
+ * @param array $activeTokens list of active tokens
* @return array list of fields needed to generate those tokens
*/
- public function getReturnFields($tokens) {
+ public function getReturnFields($activeTokens) {
// Make sure we always return something
$fields = ['id'];
- foreach (array_intersect($tokens,
+ $tokensInUse = array_intersect(
+ $activeTokens,
array_merge(array_keys(self::getBasicTokens()), array_keys(self::getCustomFieldTokens()))
- ) as $token) {
+ );
+ foreach ($tokensInUse as $token) {
if (isset(self::$fieldMapping[$token])) {
$fields = array_merge($fields, self::$fieldMapping[$token]);
}
* Get the tokens for custom fields
* @return array token name => token label
*/
- protected function getCustomFieldTokens() {
+ protected function getCustomFieldTokens(): array {
if (!isset($this->customFieldTokens)) {
$this->customFieldTokens = \CRM_Utils_Token::getCustomFieldTokens(ucfirst($this->getEntityName()));
}