CRM-15779 remove duplicate code block
authorEileen McNaughton <eileen@fuzion.co.nz>
Mon, 5 Jan 2015 03:23:02 +0000 (16:23 +1300)
committerEileen McNaughton <eileen@fuzion.co.nz>
Mon, 5 Jan 2015 03:23:02 +0000 (16:23 +1300)
CRM/Contact/Form/Task/Label.php
CRM/Contact/Form/Task/LabelCommon.php
CRM/Core/BAO/ActionSchedule.php
CRM/Utils/Token.php

index c64fc952961e49fc069cb35a70049b3ed5430c38..8924401ad9fbbd85b4c446dfe8edb057fd185899 100644 (file)
@@ -138,7 +138,7 @@ class CRM_Contact_Form_Task_Label extends CRM_Contact_Form_Task {
 
     $mailingFormatProperties = array();
     if ($mailingFormat) {
-      $mailingFormatProperties = self::getReturnProperties($mailingFormat);
+      $mailingFormatProperties = CRM_Utils_Token::getReturnProperties($mailingFormat);
       $returnProperties = array_merge($returnProperties, $mailingFormatProperties);
     }
     //we should not consider addressee for data exists, CRM-6025
@@ -397,33 +397,6 @@ class CRM_Contact_Form_Task_Label extends CRM_Contact_Form_Task {
     $pdf->Output($fileName, 'D');
   }
 
-  /**
-   * Create the array of returnProperties
-   *
-   * @param   string   $format   format for which return properties build
-   *
-   * @return array of returnProperties
-   */
-  public function getReturnProperties(&$format) {
-    $returnProperties = array();
-    $matches = array();
-    preg_match_all('/(?<!\{|\\\\)\{(\w+\.\w+)\}(?!\})/',
-      $format,
-      $matches,
-      PREG_PATTERN_ORDER
-    );
-    if ($matches[1]) {
-      foreach ($matches[1] as $token) {
-        list($type, $name) = preg_split('/\./', $token, 2);
-        if ($name) {
-          $returnProperties["{$name}"] = 1;
-        }
-      }
-    }
-
-    return $returnProperties;
-  }
-
   /**
    * @param $rows
    */
index deddce485053318c2c190be129ab560530b3151c..b466cdfc2f8d88ba8bacc3a59650dae4a1d09ada 100644 (file)
@@ -102,7 +102,7 @@ class CRM_Contact_Form_Task_LabelCommon {
     //get the address format sequence from the config file
     $addressReturnProperties = CRM_Contact_Form_Task_LabelCommon::getAddressReturnProperties();
 
-    //build the returnproperties
+    //build the return properties
     $returnProperties = array('display_name' => 1, 'contact_type' => 1, 'prefix_id' => 1);
     $mailingFormat = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
       'mailing_format'
@@ -110,7 +110,7 @@ class CRM_Contact_Form_Task_LabelCommon {
 
     $mailingFormatProperties = array();
     if ($mailingFormat) {
-      $mailingFormatProperties = CRM_Contact_Form_Task_LabelCommon::regexReturnProperties($mailingFormat);
+      $mailingFormatProperties = CRM_Utils_Token::getReturnProperties($mailingFormat);
       $returnProperties = array_merge($returnProperties, $mailingFormatProperties);
     }
 
@@ -255,32 +255,6 @@ class CRM_Contact_Form_Task_LabelCommon {
     return array($rows, $tokenFields);
   }
 
-  /**
-   * Extract the return properties from the mailing format
-   * @todo I'm placing bets this is a duplicate of code elsewhere - find & merge
-   * @param unknown_type $format
-   * @return multitype:number
-   */
-  public function regexReturnProperties(&$format) {
-    $returnProperties = array();
-    $matches = array();
-    preg_match_all('/(?<!\{|\\\\)\{(\w+\.\w+)\}(?!\})/',
-    $format,
-    $matches,
-    PREG_PATTERN_ORDER
-    );
-    if ($matches[1]) {
-      foreach ($matches[1] as $token) {
-        list($type, $name) = preg_split('/\./', $token, 2);
-        if ($name) {
-          $returnProperties["{$name}"] = 1;
-        }
-      }
-    }
-
-    return $returnProperties;
-  }
-
   /**
    * Get array of return properties for address fields required for mailing label
    * @return array return properites for address e.g
index 6c6095c77aa390c4fb213160c530efec5d4cc514..36b06c0fbfac3cf223b7207047cf45f6075411c8 100644 (file)
@@ -489,6 +489,7 @@ AND   cas.entity_value = $id AND
         $$elem = $smarty->fetch("string:{$$elem}");
       }
 
+      //@todo - this next section is a duplicate of function CRM_Utils_Token::getTokens
       $matches = array();
       preg_match_all('/(?<!\{|\\\\)\{(\w+\.\w+)\}(?!\})/',
         $body_subject,
@@ -509,6 +510,7 @@ AND   cas.entity_value = $id AND
         }
       }
 
+      // @todo this (along with the copy-&-paste chunk above is a commonly repeated chunk of code & should be in a re-usable function
       $messageSubject = CRM_Utils_Token::replaceContactTokens($body_subject, $contact, FALSE, $subjectToken);
       $messageSubject = CRM_Utils_Token::replaceDomainTokens($messageSubject, $domain, TRUE, $subjectToken);
       $messageSubject = CRM_Utils_Token::replaceComponentTokens($messageSubject, $contact, $subjectToken, TRUE);
@@ -891,7 +893,7 @@ WHERE reminder.action_schedule_id = %1 AND reminder.action_date_time IS NULL
             'source_record_id' => $dao->entityID,
           );
           $activity = CRM_Activity_BAO_Activity::create($activityParams);
-          
+
           //file reminder on case if source activity is a case activity
           if (!empty($dao->case_id)) {
             $caseActivityParams = array();
index d31b55771c28de84943f4397664b18f39038e2fb..4d1499dc83984a74cbe45d9a8a14e29078b4e6da 100644 (file)
@@ -1059,6 +1059,33 @@ class CRM_Utils_Token {
     return $tokens;
   }
 
+  /**
+   * Function to determine which values to retrieve to insert into tokens. The heavy resemblance between this function
+   * and getTokens appears to be historical rather than intentional and should be reviewed
+   * @param $string
+   * @return array fields to pass in as return properties when populating token
+   *
+   */
+  public static function getReturnProperties(&$string) {
+      $returnProperties = array();
+      $matches = array();
+      preg_match_all('/(?<!\{|\\\\)\{(\w+\.\w+)\}(?!\})/',
+        $string,
+        $matches,
+        PREG_PATTERN_ORDER
+      );
+      if ($matches[1]) {
+        foreach ($matches[1] as $token) {
+          list($type, $name) = preg_split('/\./', $token, 2);
+          if ($name) {
+            $returnProperties["{$name}"] = 1;
+          }
+        }
+      }
+
+      return $returnProperties;
+  }
+
   /**
    * Gives required details of contacts in an indexed array format so we
    * can iterate in a nice loop and do token evaluation