Make activeTokens a class property of \Civi\Token\AbstractTokenSubscriber
authorAidan Saunders <aidan.saunders@squiffle.uk>
Wed, 5 Dec 2018 11:52:47 +0000 (11:52 +0000)
committerAidan Saunders <aidan.saunders@squiffle.uk>
Fri, 14 Dec 2018 12:02:11 +0000 (12:02 +0000)
Civi/Token/AbstractTokenSubscriber.php

index d43b3411cff80349b9e0cf22afe9c05c9960ba79..69a570f8f380ca1ce5657dc4d03c80f944ed5ed5 100644 (file)
@@ -71,14 +71,22 @@ abstract class AbstractTokenSubscriber implements EventSubscriberInterface {
 
   /**
    * @var array
-   *   Ex: array('viewUrl', 'editUrl').
+   *   List of tokens provided by this class
+   *   Array(string $fieldName => string $label).
    */
   public $tokenNames;
 
+  /**
+   * @var array
+   *   List of active tokens - tokens provided by this class and used in the message
+   *   Array(string $tokenName);
+   */
+  public $activeTokens;
+
   /**
    * @param $entity
    * @param array $tokenNames
-   *   Array(string $fieldName => string $label).
+   *   Array(string $tokenName => string $label).
    */
   public function __construct($entity, $tokenNames = array()) {
     $this->entity = $entity;
@@ -143,14 +151,14 @@ abstract class AbstractTokenSubscriber implements EventSubscriberInterface {
       return;
     }
 
-    $activeTokens = $this->getActiveTokens($e);
-    if (!$activeTokens) {
+    $this->activeTokens = $this->getActiveTokens($e);
+    if (!$this->activeTokens) {
       return;
     }
     $prefetch = $this->prefetch($e);
 
     foreach ($e->getRows() as $row) {
-      foreach ((array) $activeTokens as $field) {
+      foreach ($this->activeTokens as $field) {
         $this->evaluateToken($row, $this->entity, $field, $prefetch);
       }
     }