Remove deprecated code lines
[civicrm-core.git] / CRM / Core / BAO / MessageTemplate.php
index 0fa7c268e3048c1afe188a50ee50ccace6395673..802a3f822fdce8db4fd66a4a902b15117d4cdc35 100644 (file)
@@ -15,6 +15,7 @@
  * @copyright CiviCRM LLC https://civicrm.org/licensing
  */
 
+use Civi\Api4\Email;
 use Civi\Api4\MessageTemplate;
 use Civi\WorkflowMessage\WorkflowMessage;
 
@@ -343,10 +344,6 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate {
     $params = array_merge($modelDefaults, $viewDefaults, $envelopeDefaults, $params);
 
     CRM_Utils_Hook::alterMailParams($params, 'messageTemplate');
-    if (!is_int($params['messageTemplateID']) && !is_null($params['messageTemplateID'])) {
-      CRM_Core_Error::deprecatedWarning('message template id should be an integer');
-      $params['messageTemplateID'] = (int) $params['messageTemplateID'];
-    }
     $mailContent = self::loadTemplate((string) $params['valueName'], $params['isTest'], $params['messageTemplateID'] ?? NULL, $params['groupName'] ?? '', $params['messageTemplate'], $params['subject'] ?? NULL);
 
     $params['tokenContext'] = array_merge([
@@ -369,16 +366,18 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate {
     $params['html'] = $mailContent['html'];
 
     if ($params['toEmail']) {
-      $contactParams = [['email', 'LIKE', $params['toEmail'], 0, 1]];
-      [$contact] = CRM_Contact_BAO_Query::apiQuery($contactParams);
-
-      $prefs = array_pop($contact);
-
-      if (isset($prefs['preferred_mail_format']) and $prefs['preferred_mail_format'] === 'HTML') {
+      // @todo - consider whether we really should be loading
+      // this based on 'the first email in the db that matches'.
+      // when we likely have the contact id. OTOH people probably barely
+      // use preferredMailFormat these days - the good fight against html
+      // emails was lost a decade ago...
+      $preferredMailFormatArray = Email::get(FALSE)->addWhere('email', '=', $params['toEmail'])->addSelect('contact_id.preferred_mail_format')->execute()->first();
+      $preferredMailFormat = $preferredMailFormatArray['contact_id.preferred_mail_format'] ?? 'Both';
+
+      if ($preferredMailFormat === 'HTML') {
         $params['text'] = NULL;
       }
-
-      if (isset($prefs['preferred_mail_format']) and $prefs['preferred_mail_format'] === 'Text') {
+      if ($preferredMailFormat === 'Text') {
         $params['html'] = NULL;
       }