function civicrm_api3_speakcivi_sendconfirm($params) { $confirmationBlock = $params['confirmation_block']; $contactId = $params['contact_id']; $campaignId = $params['campaign_id']; $activityId = $params['activity_id']; $campaignObj = new CRM_Speakcivi_Logic_Campaign($campaignId); $campaign = $campaignObj->getCampaign($campaignId, TRUE); $locale = $campaignObj->getLanguage(); $params['from'] = $campaignObj->getSenderMail(); $params['format'] = null; if ($confirmationBlock) { $params['subject'] = $campaignObj->getSubjectNew(); $message = $campaignObj->getMessageNew(); } else { $params['subject'] = $campaignObj->getSubjectCurrent(); $message = $campaignObj->getMessageCurrent(); } if (!$message) { if ($confirmationBlock) { $message = CRM_Speakcivi_Tools_Dictionary::getMessageNew($locale); $campaignObj->setCustomFieldBySQL($campaignId, $campaignObj->fieldMessageNew, $message); } else { $message = CRM_Speakcivi_Tools_Dictionary::getMessageCurrent($locale); $campaignObj->setCustomFieldBySQL($campaignId, $campaignObj->fieldMessageCurrent, $message); } } $contact = array(); $params_contact = array('id' => $contactId, 'sequential' => 1); $result = civicrm_api3('Contact', 'get', $params_contact); if ($result['count'] == 1) { $contact = $result['values'][0]; } /* CONFIRMATION_BLOCK */ $hash = sha1(CIVICRM_SITE_KEY . $contactId); $utm_content = 'version_' . $contactId % 2; $utm_campaign = $campaignObj->getUtmCampaign(); $url_confirm_and_keep = CRM_Utils_System::url('civicrm/speakcivi/confirm', "id={$contactId}&aid={$activityId}&cid={$campaignId}&hash={$hash}&utm_source=civicrm&utm_medium=email&utm_campaign={$utm_campaign}&utm_content={$utm_content}", true); $url_confirm_and_not_receive = CRM_Utils_System::url('civicrm/speakcivi/optout', "id={$contactId}&aid={$activityId}&cid={$campaignId}&hash={$hash}&utm_source=civicrm&utm_medium=email&utm_campaign={$utm_campaign}&utm_content={$utm_content}", true); $template = CRM_Core_Smarty::singleton(); $template->assign('url_confirm_and_keep', $url_confirm_and_keep); $template->assign('url_confirm_and_not_receive', $url_confirm_and_not_receive); /* SHARING_BLOCK */ $template->assign('url_campaign', $campaignObj->getUrlCampaign()); $template->assign('url_campaign_fb', prepareCleanUrl($campaignObj->getUrlCampaign())); $template->assign('utm_campaign', $campaignObj->getUtmCampaign()); $template->assign('share_utm_source', urlencode($params['share_utm_source'])); $template->assign('share_facebook', CRM_Speakcivi_Tools_Dictionary::getShareFacebook($locale)); $template->assign('share_twitter', CRM_Speakcivi_Tools_Dictionary::getShareTwitter($locale)); $template->assign('twitter_share_text', urlencode($campaignObj->getTwitterShareText())); $template->assign('share_email', CRM_Speakcivi_Tools_Dictionary::getShareEmail($locale)); $template->assign('email_body', $campaignObj->getTwitterShareText()); $template->assign('email_subject', $campaign['description']); $template->assign('email_url', urlencode($campaignObj->getUrlCampaign() . '?utm_source=mail_share&utm_medium=email&utm_campaign=' . $utm_campaign . '&utm_content=' . $utm_content)); $template->assign('contact', $contact); /* FETCHING SMARTY TEMPLATES */ $params['subject'] = $template->fetch('string:' . $params['subject']); $locales = getLocale($locale); $confirmationBlockHtml = $template->fetch('../templates/CRM/Speakcivi/Page/ConfirmationBlock.' . $locales['html'] . '.html.tpl'); $confirmationBlockText = $template->fetch('../templates/CRM/Speakcivi/Page/ConfirmationBlock.' . $locales['text'] . '.text.tpl'); $sharingBlockHtml = $template->fetch('../templates/CRM/Speakcivi/Page/SharingBlock.html.tpl'); $message = $template->fetch('string:' . $message); $messageHtml = str_replace("#CONFIRMATION_BLOCK", $confirmationBlockHtml, $message); $messageText = str_replace("#CONFIRMATION_BLOCK", $confirmationBlockText, $message); $messageHtml = str_replace("#SHARING_BLOCK", $sharingBlockHtml, $messageHtml); $messageText = str_replace("#SHARING_BLOCK", $sharingBlockHtml, $messageText); $params['html'] = html_entity_decode($messageHtml); $params['text'] = html_entity_decode(convertHtmlToText($messageText)); $params['groupName'] = 'SpeakCivi Email Sender'; $sent = CRM_Utils_Mail::send($params); return civicrm_api3_create_success($sent, $params); }