Remove now-obsolete getPseudoTokens
[civicrm-core.git] / CRM / Utils / Token.php
index 4bca596e21d34f34a9becb933b190147d9538ed2..6a8ff52d44d7239489b2f78580e977c798e919ba 100644 (file)
@@ -257,7 +257,7 @@ class CRM_Utils_Token {
    * @return null|string
    */
   public static function getDomainTokenReplacement($token, $domain, $html = FALSE, $escapeSmarty = FALSE): ?string {
-    $tokens = self::getDomainTokens($domain->id, $html);
+    $tokens = CRM_Core_DomainTokens::getDomainTokenValues($domain->id, $html);
     $value = $tokens[$token] ?? "{domain.$token}";
     if ($escapeSmarty) {
       $value = self::tokenEscapeSmarty($value);
@@ -296,6 +296,7 @@ class CRM_Utils_Token {
    *   The processed string
    */
   public static function replaceOrgTokens($str, &$org, $html = FALSE, $escapeSmarty = FALSE) {
+    CRM_Core_Error::deprecatedFunctionWarning('token processor');
     self::$_tokens['org']
       = array_merge(
         array_keys(CRM_Contact_BAO_Contact::importableFields('Organization')),
@@ -776,6 +777,7 @@ class CRM_Utils_Token {
    * @param string $entityType
    * @return string
    *   html parsed through smarty
+   * @deprecated
    */
   public static function parseThroughSmarty($tokenHtml, $entity, $entityType = 'contact') {
     if (defined('CIVICRM_MAIL_SMARTY') && CIVICRM_MAIL_SMARTY) {
@@ -822,6 +824,8 @@ class CRM_Utils_Token {
    *
    * this routine will remove the extra backslashes and braces
    *
+   * @deprecated
+   *
    * @param $str ref to the string that will be scanned and modified
    */
   public static function unescapeTokens(&$str) {
@@ -1021,8 +1025,11 @@ class CRM_Utils_Token {
    *
    * @return string
    *   The processed string
+   *
+   * @deprecated
    */
-  public static function &replaceComponentTokens(&$str, $contact, $components, $escapeSmarty = FALSE, $returnEmptyToken = TRUE) {
+  public static function replaceComponentTokens(&$str, $contact, $components, $escapeSmarty = FALSE, $returnEmptyToken = TRUE) {
+    CRM_Core_Error::deprecatedFunctionWarning('use the token processor');
     if (!is_array($components) || empty($contact)) {
       return $str;
     }
@@ -1276,6 +1283,8 @@ class CRM_Utils_Token {
    * Get Membership Token Details.
    * @param array $membershipIDs
    *   Array of membership IDS.
+   *
+   * @deprecated
    */
   public static function getMembershipTokenDetails($membershipIDs) {
     $memberships = civicrm_api3('membership', 'get', [
@@ -1514,15 +1523,32 @@ class CRM_Utils_Token {
     return $value;
   }
 
+  /**
+   * @deprecated
+   *
+   * Do not use this function - it still needs full removal from active code
+   * in CRM_Contribute_Form_Task_PDFLetter.
+   */
   protected static function _buildContributionTokens() {
     $key = 'contribution';
 
     if (!isset(Civi::$statics[__CLASS__][__FUNCTION__][$key])) {
-      $processor = new CRM_Contribute_Tokens();
       $tokens = array_merge(CRM_Contribute_BAO_Contribution::exportableFields('All'),
         ['campaign' => [], 'financial_type' => [], 'payment_instrument' => []],
         self::getCustomFieldTokens('Contribution'),
-        $processor->getPseudoTokens()
+        [
+          'financial_type_id:label',
+          'financial_type_id:name',
+          'contribution_page_id:label',
+          'contribution_page_id:name',
+          'payment_instrument_id:label',
+          'payment_instrument_id:name',
+          'is_test:label',
+          'is_pay_later:label',
+          'contribution_status_id:label',
+          'contribution_status_id:name',
+          'is_template:label',
+        ]
       );
       foreach ($tokens as $token) {
         if (!empty($token['name'])) {
@@ -1571,6 +1597,8 @@ class CRM_Utils_Token {
   }
 
   /**
+   * @deprecated
+   *
    * @param int $caseId
    * @param string $str
    * @param array $knownTokens
@@ -1592,6 +1620,8 @@ class CRM_Utils_Token {
   /**
    * Generic function for formatting token replacement for an api field
    *
+   * @deprecated
+   *
    * @param string $entity
    * @param string $token
    * @param array $entityArray
@@ -1625,6 +1655,8 @@ class CRM_Utils_Token {
   }
 
   /**
+   * Do not use - unused in core.
+   *
    * Replace Contribution tokens in html.
    *
    * @param string $str
@@ -1633,6 +1665,8 @@ class CRM_Utils_Token {
    * @param string $knownTokens
    * @param bool|string $escapeSmarty
    *
+   * @deprecated
+   *
    * @return mixed
    */
   public static function replaceContributionTokens($str, &$contribution, $html = FALSE, $knownTokens = NULL, $escapeSmarty = FALSE) {
@@ -1674,9 +1708,12 @@ class CRM_Utils_Token {
    * @param array $contributions
    * @param array $knownTokens
    *
+   * @deprecated
+   *
    * @return string
    */
   public static function replaceMultipleContributionTokens(string $separator, string $str, array $contributions, array $knownTokens): string {
+    CRM_Core_Error::deprecatedFunctionWarning('no alternative');
     foreach ($knownTokens['contribution'] ?? [] as $token) {
       $resolvedTokens = [];
       foreach ($contributions as $contribution) {
@@ -1767,15 +1804,19 @@ class CRM_Utils_Token {
   }
 
   /**
+   * Do not use - unused in core.
+   *
    * @param $token
    * @param $contribution
    * @param bool $html
    * @param bool $escapeSmarty
    *
+   * @deprecated
+   *
    * @return mixed|string
    * @throws \CRM_Core_Exception
    */
-  public static function getContributionTokenReplacement($token, &$contribution, $html = FALSE, $escapeSmarty = FALSE) {
+  public static function getContributionTokenReplacement($token, $contribution, $html = FALSE, $escapeSmarty = FALSE) {
     self::_buildContributionTokens();
 
     switch ($token) {
@@ -1796,6 +1837,10 @@ class CRM_Utils_Token {
         $value = CRM_Utils_Date::customFormat($value, $config->dateformatDatetime);
         break;
 
+      case 'source':
+        $value = CRM_Utils_Array::retrieveValueRecursive($contribution, 'contribution_source');
+        break;
+
       default:
         if (!in_array($token, self::$_tokens['contribution'])) {
           $value = "{contribution.$token}";
@@ -1922,44 +1967,4 @@ class CRM_Utils_Token {
     ];
   }
 
-  /**
-   * Get the tokens available for the domain.
-   *
-   * @param int $domainID
-   * @param bool $html
-   *
-   * @return array
-   * @throws \CRM_Core_Exception
-   */
-  protected static function getDomainTokens(int $domainID, bool $html): array {
-    $cacheKey = __CLASS__ . 'domain_tokens' . $html . '_' . $domainID . '_' . CRM_Core_I18n::getLocale();
-    if (!Civi::cache('metadata')->has($cacheKey)) {
-      if (CRM_Core_Config::domainID() === $domainID) {
-        $domain = CRM_Core_BAO_Domain::getDomain();
-      }
-      else {
-        $domain = new CRM_Core_BAO_Domain();
-        $domain->find(TRUE);
-      }
-      $tokens = [
-        'name' => $domain->name,
-        'id' => $domain->id,
-        'description' => $domain->description,
-      ];
-      $loc = $domain->getLocationValues();
-      if ($html) {
-        $tokens['address'] = str_replace("\n", '<br />', ($loc['address'][1]['display'] ?? ''));
-      }
-      else {
-        $tokens['address'] = $loc['address'][1]['display_text'] ?? '';
-      }
-      $phone = reset($loc['phone']);
-      $email = reset($loc['email']);
-      $tokens['phone'] = $phone['phone'] ?? '';
-      $tokens['email'] = $email['email'] ?? '';
-      Civi::cache('metadata')->set($cacheKey, $tokens);
-    }
-    return Civi::cache('metadata')->get($cacheKey);
-  }
-
 }