session_start(); $settingsFile = trim(implode('', file('path.inc'))) . '/civicrm.settings.php'; define('CIVICRM_SETTINGS_PATH', $settingsFile); $error = @(include_once $settingsFile); if ($error == false) { echo "Could not load the settings file at: {$settingsFile}\n"; exit; } // Load class loader global $civicrm_root; require_once $civicrm_root . '/CRM/Core/ClassLoader.php'; CRM_Core_ClassLoader::singleton()->register(); require_once 'CRM/Core/Config.php'; $config = CRM_Core_Config::singleton(); // tests: $urlSpeakout = CRM_Core_BAO_Setting::getItem('Speakcivi API Preferences', 'url_speakout'); echo '$urlSpeakout: ' . $urlSpeakout . "\n\n"; if ($urlSpeakout) { $campaignObj = new CRM_Speakcivi_Logic_Campaign(); $param = (object) array('external_id' => 49); $campaign = $campaignObj->getCampaign($param->external_id); echo '$campaign GET: '; print_r($campaign); $campaign = $campaignObj->setCampaign($param->external_id, $campaign); echo '$campaign NEW: '; print_r($campaign); $campaignObj->customFields = $campaignObj->getCustomFields($campaign['id']); echo 'customFields: '; print_r($campaignObj->customFields); }
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); }