/** * Function to process greetings and cache * */ static function processGreetings(&$contact) { // store object values to an array $contactDetails = array(); CRM_Core_DAO::storeValues($contact, $contactDetails); $contactDetails = array(array($contact->id => $contactDetails)); $emailGreetingString = $postalGreetingString = $addresseeString = null; $updateQueryString = array(); require_once 'CRM/Activity/BAO/Activity.php'; //email greeting if ($contact->contact_type == 'Individual' || $contact->contact_type == 'Household') { if ($contact->email_greeting_custom != 'null' && $contact->email_greeting_custom) { $emailGreetingString = $contact->email_greeting_custom; } else { if ($contact->email_greeting_id != 'null' && $contact->email_greeting_id) { // the filter value for Individual contact type is set to 1 $filter = array('contact_type' => $contact->contact_type, 'greeting_type' => 'email_greeting'); $emailGreeting = CRM_Core_PseudoConstant::greeting($filter); $emailGreetingString = $emailGreeting[$contact->email_greeting_id]; } else { $updateQueryString[] = " email_greeting_display = NULL "; } } if ($emailGreetingString) { CRM_Activity_BAO_Activity::replaceGreetingTokens($emailGreetingString, $contactDetails, $contact->id); $emailGreetingString = CRM_Core_DAO::escapeString($emailGreetingString); $updateQueryString[] = " email_greeting_display = '{$emailGreetingString}'"; } //postal greetings if ($contact->postal_greeting_custom != 'null' && $contact->postal_greeting_custom) { $postalGreetingString = $contact->postal_greeting_custom; } else { if ($contact->postal_greeting_id != 'null' && $contact->postal_greeting_id) { $filter = array('contact_type' => $contact->contact_type, 'greeting_type' => 'postal_greeting'); $postalGreeting = CRM_Core_PseudoConstant::greeting($filter); $postalGreetingString = $postalGreeting[$contact->postal_greeting_id]; } elseif ($contact->postal_greeting_custom) { $updateQueryString[] = " postal_greeting_display = NULL "; } } if ($postalGreetingString) { CRM_Activity_BAO_Activity::replaceGreetingTokens($postalGreetingString, $contactDetails, $contact->id); $postalGreetingString = CRM_Core_DAO::escapeString($postalGreetingString); $updateQueryString[] = " postal_greeting_display = '{$postalGreetingString}'"; } } // addressee if ($contact->addressee_custom != 'null' && $contact->addressee_custom) { $addresseeString = $contact->addressee_custom; } else { if ($contact->addressee_id != 'null' && $contact->addressee_id) { $filter = array('contact_type' => $contact->contact_type, 'greeting_type' => 'addressee'); $addressee = CRM_Core_PseudoConstant::greeting($filter); $addresseeString = $addressee[$contact->addressee_id]; } else { $updateQueryString[] = " addressee_display = NULL "; } } if ($addresseeString) { CRM_Activity_BAO_Activity::replaceGreetingTokens($addresseeString, $contactDetails, $contact->id); $addresseeString = CRM_Core_DAO::escapeString($addresseeString); $updateQueryString[] = " addressee_display = '{$addresseeString}'"; } if (!empty($updateQueryString)) { $updateQueryString = implode(',', $updateQueryString); $queryString = "UPDATE civicrm_contact SET {$updateQueryString} WHERE id = {$contact->id}"; CRM_Core_DAO::executeQuery($queryString); } }