本文整理汇总了PHP中CRM_Core_BAO_Email类的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Core_BAO_Email类的具体用法?PHP CRM_Core_BAO_Email怎么用?PHP CRM_Core_BAO_Email使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CRM_Core_BAO_Email类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: run
/**
* Run the page.
*
* This method is called after the page is created.
*/
public function run()
{
// get the emails for this contact
$contactId = CRM_Utils_Request::retrieve('cid', 'Positive', CRM_Core_DAO::$_nullObject, TRUE, NULL, $_REQUEST);
$locationTypes = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id', array('labelColumn' => 'display_name'));
$entityBlock = array('contact_id' => $contactId);
$emails = CRM_Core_BAO_Email::getValues($entityBlock);
if (!empty($emails)) {
foreach ($emails as $key => &$value) {
$value['location_type'] = $locationTypes[$value['location_type_id']];
}
}
$contact = new CRM_Contact_BAO_Contact();
$contact->id = $contactId;
$contact->find(TRUE);
$privacy = array();
foreach (CRM_Contact_BAO_Contact::$_commPrefs as $name) {
if (isset($contact->{$name})) {
$privacy[$name] = $contact->{$name};
}
}
$this->assign('contactId', $contactId);
$this->assign('email', $emails);
$this->assign('privacy', $privacy);
// check logged in user permission
CRM_Contact_Page_View::checkUserPermission($this, $contactId);
// finally call parent
parent::run();
}
开发者ID:kcristiano,项目名称:civicrm-core,代码行数:34,代码来源:Email.php
示例2: preProcessSingle
static function preProcessSingle(&$form, $cid)
{
// TO DO: need to check where and why we use this function
$form->_single = true;
$form->_emails = array();
if ($form->_context != 'standalone') {
$form->_contactIds = array($cid);
$emails = CRM_Core_BAO_Email::allEmails($cid);
$form->_onHold = array();
$toName = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $cid, 'display_name');
foreach ($emails as $emailId => $item) {
$email = $item['email'];
if (!$email && count($emails) <= 1) {
$form->_emails[$email] = '"' . $toName . '"';
$form->_noEmails = true;
} else {
if ($email) {
if (isset($form->_emails[$email])) {
// CRM-3624
continue;
}
$form->_emails[$email] = '"' . $toName . '" <' . $email . '> ' . $item['locationType'];
$form->_onHold[$email] = $item['on_hold'];
}
}
if ($item['is_primary']) {
$form->_emails[$email] .= ' ' . ts('(preferred)');
}
$form->_emails[$email] = htmlspecialchars($form->_emails[$email]);
}
}
}
开发者ID:ksecor,项目名称:civicrm,代码行数:32,代码来源:EmailCommon.php
示例3: create
static function create($params)
{
if (is_numeric(CRM_Utils_Array::value('is_primary', $params)) || empty($params['id'])) {
CRM_Core_BAO_Block::handlePrimary($params, get_class());
}
$email = CRM_Core_BAO_Email::add($params);
return $email;
}
开发者ID:peteainsworth,项目名称:civicrm-4.2.9-drupal,代码行数:8,代码来源:Email.php
示例4: preProcess
public function preProcess()
{
$this->_id = CRM_Utils_Request::retrieve('id', 'Positive', $this, TRUE);
$this->_contactId = CRM_Utils_Request::retrieve('cid', 'Positive', $this, TRUE);
$this->_component = CRM_Utils_Request::retrieve('component', 'String', $this, TRUE);
$this->_view = CRM_Utils_Request::retrieve('view', 'String', $this, FALSE);
$this->_action = CRM_Utils_Request::retrieve('action', 'String', $this, FALSE);
$this->assign('component', $this->_component);
$this->assign('id', $this->_id);
$this->assign('suppressPaymentFormButtons', $this->isBeingCalledFromSelectorContext());
if ($this->_view == 'transaction' && $this->_action & CRM_Core_Action::BROWSE) {
$paymentInfo = CRM_Contribute_BAO_Contribution::getPaymentInfo($this->_id, $this->_component, TRUE);
$transactionRows = $paymentInfo['transaction'];
$title = ts('View Payment');
if ($this->_component == 'event') {
$info = CRM_Event_BAO_Participant::participantDetails($this->_id);
$title .= " - {$info['title']}";
}
CRM_Utils_System::setTitle($title);
$this->assign('transaction', TRUE);
$this->assign('rows', $transactionRows);
return;
}
$this->_fromEmails = CRM_Core_BAO_Email::getFromEmail();
$this->_formType = CRM_Utils_Array::value('formType', $_GET);
$enitityType = NULL;
if ($this->_component == 'event') {
$enitityType = 'participant';
$this->_contributionId = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_ParticipantPayment', $this->_id, 'contribution_id', 'participant_id');
}
$eventId = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Participant', $this->_id, 'event_id', 'id');
$this->_fromEmails = CRM_Event_BAO_Event::getFromEmailIds($eventId);
$paymentInfo = CRM_Core_BAO_FinancialTrxn::getPartialPaymentWithType($this->_id, $enitityType);
$paymentDetails = CRM_Contribute_BAO_Contribution::getPaymentInfo($this->_id, $this->_component, FALSE, TRUE);
$this->_amtPaid = $paymentDetails['paid'];
$this->_amtTotal = $paymentDetails['total'];
if (!empty($paymentInfo['refund_due'])) {
$paymentAmt = $this->_refund = $paymentInfo['refund_due'];
$this->_paymentType = 'refund';
} elseif (!empty($paymentInfo['amount_owed'])) {
$paymentAmt = $this->_owed = $paymentInfo['amount_owed'];
$this->_paymentType = 'owed';
} else {
CRM_Core_Error::fatal(ts('No payment information found for this record'));
}
//set the payment mode - _mode property is defined in parent class
$this->_mode = CRM_Utils_Request::retrieve('mode', 'String', $this);
if (!empty($this->_mode) && $this->_paymentType == 'refund') {
CRM_Core_Error::fatal(ts('Credit card payment is not for Refund payments use'));
}
list($this->_contributorDisplayName, $this->_contributorEmail) = CRM_Contact_BAO_Contact_Location::getEmailDetails($this->_contactId);
$this->assignPaymentRelatedVariables();
$this->assign('contributionMode', $this->_mode);
$this->assign('contactId', $this->_contactId);
$this->assign('paymentType', $this->_paymentType);
$this->assign('paymentAmt', abs($paymentAmt));
$this->setPageTitle($this->_refund ? ts('Refund') : ts('Payment'));
}
开发者ID:nielosz,项目名称:civicrm-core,代码行数:58,代码来源:AdditionalPayment.php
示例5: create
/**
* Create email address - note that the create function calls 'add' but
* has more business logic
*
* @param array $params
* Input parameters.
*
* @return object
*/
public static function create($params)
{
// if id is set & is_primary isn't we can assume no change
if (is_numeric(CRM_Utils_Array::value('is_primary', $params)) || empty($params['id'])) {
CRM_Core_BAO_Block::handlePrimary($params, get_class());
}
$email = CRM_Core_BAO_Email::add($params);
return $email;
}
开发者ID:BorislavZlatanov,项目名称:civicrm-core,代码行数:18,代码来源:Email.php
示例6: testAllEmails
/**
* AllEmails() method - get all emails for our contact, with primary email first
*/
public function testAllEmails()
{
$contactParams = array('first_name' => 'Alan', 'last_name' => 'Smith', 'email-1' => '[email protected]', 'email-2' => '[email protected]', 'email-3' => '[email protected]');
$contactId = Contact::createIndividual($contactParams);
$emails = CRM_Core_BAO_Email::allEmails($contactId);
$this->assertEquals(count($emails), 3, 'Checking number of returned emails.');
$firstEmailValue = array_slice($emails, 0, 1);
$this->assertEquals('[email protected]', $firstEmailValue[0]['email'], 'Confirm primary email address value.');
$this->assertEquals(1, $firstEmailValue[0]['is_primary'], 'Confirm first email address is primary.');
Contact::delete($contactId);
}
开发者ID:FundingWorks,项目名称:civicrm-core,代码行数:14,代码来源:EmailTest.php
示例7: testAllEmails
/**
* AllEmails() method - get all emails for our contact, with primary email first
*/
public function testAllEmails()
{
$contactParams = array('first_name' => 'Alan', 'last_name' => 'Smith', 'email' => '[email protected]', 'api.email.create.0' => array('email' => '[email protected]', 'location_type_id' => 'Home'), 'api.email.create.1' => array('email' => '[email protected]', 'location_type_id' => 'Main'));
$contactId = $this->individualCreate($contactParams);
$emails = CRM_Core_BAO_Email::allEmails($contactId);
$this->assertEquals(count($emails), 3, 'Checking number of returned emails.');
$firstEmailValue = array_slice($emails, 0, 1);
$this->assertEquals('[email protected]', $firstEmailValue[0]['email'], 'Confirm primary email address value.');
$this->assertEquals(1, $firstEmailValue[0]['is_primary'], 'Confirm first email address is primary.');
$this->contactDelete($contactId);
}
开发者ID:nielosz,项目名称:civicrm-core,代码行数:14,代码来源:EmailTest.php
示例8: preProcessFromAddress
/**
* @param $form
*/
static function preProcessFromAddress(&$form)
{
$form->_single = FALSE;
$className = CRM_Utils_System::getClassName($form);
if (property_exists($form, '_context') && $form->_context != 'search' && $className == 'CRM_Contact_Form_Task_Email') {
$form->_single = TRUE;
}
$form->_emails = $emails = array();
$session = CRM_Core_Session::singleton();
$contactID = $session->get('userID');
$form->_contactIds = array($contactID);
$contactEmails = CRM_Core_BAO_Email::allEmails($contactID);
$form->_onHold = array();
$fromDisplayName = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $contactID, 'display_name');
foreach ($contactEmails as $emailId => $item) {
$email = $item['email'];
if (!$email && count($emails) < 1) {
// set it if no emails are present at all
$form->_noEmails = TRUE;
} else {
if ($email) {
if (in_array($email, $emails)) {
// CRM-3624
continue;
}
$emails[$emailId] = '"' . $fromDisplayName . '" <' . $email . '> ';
$form->_onHold[$emailId] = $item['on_hold'];
$form->_noEmails = FALSE;
}
}
$form->_emails[$emailId] = $emails[$emailId];
$emails[$emailId] .= $item['locationType'];
if ($item['is_primary']) {
$emails[$emailId] .= ' ' . ts('(preferred)');
}
$emails[$emailId] = htmlspecialchars($emails[$emailId]);
}
$form->assign('noEmails', $form->_noEmails);
if ($form->_noEmails) {
CRM_Core_Error::statusBounce(ts('Your user record does not have a valid email address'));
}
// now add domain from addresses
$domainEmails = array();
$domainFrom = CRM_Core_OptionGroup::values('from_email_address');
foreach (array_keys($domainFrom) as $k) {
$domainEmail = $domainFrom[$k];
$domainEmails[$domainEmail] = htmlspecialchars($domainEmail);
$form->_emails[$domainEmail] = $domainEmail;
}
$form->_fromEmails = CRM_Utils_Array::crmArrayMerge($emails, $domainEmails);
}
开发者ID:prashantgajare,项目名称:civicrm-core,代码行数:54,代码来源:EmailCommon.php
示例9: preProcess
public function preProcess()
{
$this->_id = CRM_Utils_Request::retrieve('id', 'Positive', $this, TRUE);
$this->_contactId = CRM_Utils_Request::retrieve('cid', 'Positive', $this, TRUE);
$this->_component = CRM_Utils_Request::retrieve('component', 'String', $this, TRUE);
$this->_fromEmails = CRM_Core_BAO_Email::getFromEmail();
$this->_formType = CRM_Utils_Array::value('formType', $_GET);
$enitityType = NULL;
if ($this->_component == 'event') {
$enitityType = 'participant';
$this->_contributionId = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_ParticipantPayment', $this->_id, 'contribution_id', 'participant_id');
}
$eventId = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Participant', $this->_id, 'event_id', 'id');
$this->_fromEmails = CRM_Event_BAO_Event::getFromEmailIds($eventId);
$paymentInfo = CRM_Core_BAO_FinancialTrxn::getPartialPaymentWithType($this->_id, $enitityType);
$paymentDetails = CRM_Contribute_BAO_Contribution::getPaymentInfo($this->_id, $this->_component);
$this->_amtPaid = $paymentDetails['paid'];
$this->_amtTotal = $paymentDetails['total'];
if (!empty($paymentInfo['refund_due'])) {
$paymentAmt = $this->_refund = $paymentInfo['refund_due'];
$this->_paymentType = 'refund';
} elseif (!empty($paymentInfo['amount_owed'])) {
$paymentAmt = $this->_owed = $paymentInfo['amount_owed'];
$this->_paymentType = 'owed';
} else {
CRM_Core_Error::fatal(ts('No payment information found for this record'));
}
//set the payment mode - _mode property is defined in parent class
$this->_mode = CRM_Utils_Request::retrieve('mode', 'String', $this);
if (!empty($this->_mode) && $this->_paymentType == 'refund') {
CRM_Core_Error::fatal(ts('Credit card payment is not for Refund payments use'));
}
list($this->_contributorDisplayName, $this->_contributorEmail) = CRM_Contact_BAO_Contact_Location::getEmailDetails($this->_contactId);
if (!$this->_refund) {
$this->assignProcessors();
// also check for billing information
// get the billing location type
$this->assignBillingType();
}
$this->assign('contributionMode', $this->_mode);
$this->assign('contactId', $this->_contactId);
$this->assign('component', $this->_component);
$this->assign('id', $this->_id);
$this->assign('paymentType', $this->_paymentType);
$this->assign('paymentAmt', abs($paymentAmt));
$this->_paymentProcessor = array('billing_mode' => 1);
$title = $this->_refund ? "Refund for {$this->_contributorDisplayName}" : "Payment from {$this->_contributorDisplayName}";
if ($title) {
CRM_Utils_System::setTitle(ts('%1', array(1 => $title)));
}
}
开发者ID:archcidburnziso,项目名称:civicrm-core,代码行数:51,代码来源:AdditionalPayment.php
示例10: buildQuickForm
/**
* Build the form object elements for an email object.
*
* @param CRM_Core_Form $form
* Reference to the form object.
* @param int $blockCount
* Block number to build.
* @param bool $blockEdit
* Is it block edit.
*/
public static function buildQuickForm(&$form, $blockCount = NULL, $blockEdit = FALSE)
{
// passing this via the session is AWFUL. we need to fix this
if (!$blockCount) {
$blockId = $form->get('Email_Block_Count') ? $form->get('Email_Block_Count') : 1;
} else {
$blockId = $blockCount;
}
$form->applyFilter('__ALL__', 'trim');
//Email box
$form->addField("email[{$blockId}][email]", array('entity' => 'email'));
$form->addRule("email[{$blockId}][email]", ts('Email is not valid.'), 'email');
if (isset($form->_contactType) || $blockEdit) {
//Block type
$form->addField("email[{$blockId}][location_type_id]", array('entity' => 'email', 'placeholder' => NULL, 'class' => 'eight'));
//TODO: Refactor on_hold field to select.
$multipleBulk = CRM_Core_BAO_Email::isMultipleBulkMail();
//On-hold select
if ($multipleBulk) {
$holdOptions = array(0 => ts('- select -'), 1 => ts('On Hold Bounce'), 2 => ts('On Hold Opt Out'));
$form->addElement('select', "email[{$blockId}][on_hold]", '', $holdOptions);
} else {
$form->addField("email[{$blockId}][on_hold]", array('entity' => 'email', 'type' => 'advcheckbox'));
}
//Bulkmail checkbox
$form->assign('multipleBulk', $multipleBulk);
if ($multipleBulk) {
$js = array('id' => "Email_" . $blockId . "_IsBulkmail");
$form->addElement('advcheckbox', "email[{$blockId}][is_bulkmail]", NULL, '', $js);
} else {
$js = array('id' => "Email_" . $blockId . "_IsBulkmail");
if (!$blockEdit) {
$js['onClick'] = 'singleSelect( this.id );';
}
$form->addElement('radio', "email[{$blockId}][is_bulkmail]", '', '', '1', $js);
}
//is_Primary radio
$js = array('id' => "Email_" . $blockId . "_IsPrimary");
if (!$blockEdit) {
$js['onClick'] = 'singleSelect( this.id );';
}
$form->addElement('radio', "email[{$blockId}][is_primary]", '', '', '1', $js);
if (CRM_Utils_System::getClassName($form) == 'CRM_Contact_Form_Contact') {
$form->add('textarea', "email[{$blockId}][signature_text]", ts('Signature (Text)'), array('rows' => 2, 'cols' => 40));
$form->add('wysiwyg', "email[{$blockId}][signature_html]", ts('Signature (HTML)'), array('rows' => 2, 'cols' => 40));
}
}
}
开发者ID:FundingWorks,项目名称:civicrm-core,代码行数:58,代码来源:Email.php
示例11: testFindReferences
function testFindReferences()
{
$params = array('first_name' => 'Testy', 'last_name' => 'McScallion', 'contact_type' => 'Individual');
$contact = CRM_Contact_BAO_Contact::add($params);
$this->assertNotNull($contact->id);
$params = array('email' => '[email protected]', 'contact_id' => $contact->id, 'is_primary' => 0, 'location_type_id' => 1);
$email = CRM_Core_BAO_Email::add($params);
$refs = $contact->findReferences();
$refsByTable = array();
foreach ($refs as $refObj) {
$refsByTable[$refObj->__table] = $refObj;
}
$this->assertTrue(array_key_exists('civicrm_email', $refsByTable));
$refDao = $refsByTable['civicrm_email'];
$refDao->find(TRUE);
$this->assertEquals($contact->id, $refDao->contact_id);
}
开发者ID:archcidburnziso,项目名称:civicrm-core,代码行数:17,代码来源:DAOTest.php
示例12: preProcess
public function preProcess()
{
$this->_action = CRM_Utils_Request::retrieve('action', 'String', $this, FALSE, 'add');
$this->_context = CRM_Utils_Request::retrieve('context', 'String', $this, FALSE, 'membership');
$this->_id = CRM_Utils_Request::retrieve('id', 'Positive', $this);
$this->_contactID = CRM_Utils_Request::retrieve('cid', 'Positive', $this);
$this->_mode = CRM_Utils_Request::retrieve('mode', 'String', $this);
$this->assign('context', $this->_context);
$this->assign('membershipMode', $this->_mode);
$this->assign('contactID', $this->_contactID);
if ($this->_mode) {
$this->assignPaymentRelatedVariables();
}
if ($this->_id) {
$this->_memType = CRM_Core_DAO::getFieldValue('CRM_Member_DAO_Membership', $this->_id, 'membership_type_id');
$this->_membershipIDs[] = $this->_id;
}
$this->_fromEmails = CRM_Core_BAO_Email::getFromEmail();
}
开发者ID:kidaa30,项目名称:yes,代码行数:19,代码来源:Form.php
示例13: add
/**
* takes an associative array and creates a contact object
*
* the function extract all the params it needs to initialize the create a
* contact object. the params array could contain additional unused name/value
* pairs
*
* @param array $params (reference ) an assoc array of name/value pairs
* @param array $ids the array that holds all the db ids
* @param int $locationId
* @param int $emailId
* @param bool $isPrimary Has any previous entry been marked as isPrimary?
*
* @return object CRM_Core_BAO_Email object if successful
* else null will be returned
* @access public
* @static
*/
function add(&$params, &$ids, $locationId, $emailId, &$isPrimary)
{
// if no data and we are not updating an exisiting record
if (!CRM_Core_BAO_Email::dataExists($params, $locationId, $emailId, $ids)) {
return null;
}
$email =& new CRM_Core_DAO_Email();
$email->id = CRM_Utils_Array::value($emailId, $ids['location'][$locationId]['email']);
$email->email = $params['location'][$locationId]['email'][$emailId]['email'];
if (empty($email->email)) {
$email->delete();
return null;
}
$email->location_id = $params['location'][$locationId]['id'];
// set this object to be the value of isPrimary and make sure no one else can be isPrimary
$email->is_primary = $isPrimary;
$isPrimary = false;
return $email->save();
}
开发者ID:bhirsch,项目名称:voipdrupal-4.7-1.0,代码行数:37,代码来源:Email.php
示例14: array
/**
* Register a subscription event. Create a new contact if one does not
* already exist.
*
* @param int $domain_id The domain id of the new subscription
* @param int $group_id The group id to subscribe to
* @param string $email The email address of the (new) contact
* @return int|null $se_id The id of the subscription event, null on failure
* @access public
* @static
*/
function &subscribe($domain_id, $group_id, $email)
{
/* First, find out if the contact already exists */
$params = array('email' => $email, 'domain_id' => $domain_id);
require_once 'CRM/Core/BAO/UFGroup.php';
$contact_id = CRM_Core_BAO_UFGroup::findContact($params);
CRM_Core_DAO::transaction('BEGIN');
if (is_a($contact_id, CRM_Core_Error)) {
require_once 'CRM/Core/BAO/LocationType.php';
/* If the contact does not exist, create one. */
$formatted = array('contact_type' => 'Individual');
$value = array('email' => $email, 'location_type' => CRM_Core_BAO_LocationType::getDefaultID());
_crm_add_formatted_param($value, $formatted);
$contact =& crm_create_contact_formatted($formatted, CRM_IMPORT_PARSER_DUPLICATE_SKIP);
if (is_a($contact, CRM_Core_Error)) {
return null;
}
$contact_id = $contact->id;
}
require_once 'CRM/Core/BAO/Email.php';
require_once 'CRM/Core/BAO/Location.php';
require_once 'CRM/Contact/BAO/Contact.php';
/* Get the primary email id from the contact to use as a hash input */
$dao =& new CRM_Core_DAO();
$emailTable = CRM_Core_BAO_Email::getTableName();
$locTable = CRM_Core_BAO_Location::getTableName();
$contactTable = CRM_Contact_BAO_Contact::getTableName();
$dao->query("SELECT {$emailTable}.id as email_id\n FROM {$emailTable}\n INNER JOIN {$locTable}\n ON {$emailTable}.location_id = {$locTable}.id\n WHERE {$emailTable}.is_primary = 1\n AND {$locTable}.is_primary = 1\n AND {$locTable}.entity_table = '{$contactTable}'\n AND {$locTable}.entity_id = " . CRM_Utils_Type::escape($contact_id, 'Integer'));
$dao->fetch();
$se =& new CRM_Mailing_Event_BAO_Subscribe();
$se->group_id = $group_id;
$se->contact_id = $contact_id;
$se->time_stamp = date('YmdHis');
$se->hash = sha1("{$group_id}:{$contact_id}:{$dao->email_id}");
$se->save();
$contacts = array($contact_id);
require_once 'CRM/Contact/BAO/GroupContact.php';
CRM_Contact_BAO_GroupContact::addContactsToGroup($contacts, $group_id, 'Email', 'Pending', $se->id);
CRM_Core_DAO::transaction('COMMIT');
return $se;
}
开发者ID:bhirsch,项目名称:voipdrupal-4.7-1.0,代码行数:52,代码来源:Subscribe.php
示例15: getFromEmailIds
/**
* Build From Email as the combination of all the email ids of the logged in user,
* the domain email id and the email id configured for the event
*
* @param int $eventId the id of the event
*
* @return array an array of email ids
* @access public
* @static
*/
static function getFromEmailIds($eventId = null)
{
static $emails;
$session = CRM_Core_Session::singleton();
$contactID = $session->get('userID');
$cacheKey = 'd';
if ($eventId) {
$cacheKey .= '_eid_' . $eventId;
}
if ($contactID) {
$cacheKey .= '_cid_' . $contactID;
}
$fromEmailValues = $fromEmailIds = $eventEmail = $contactEmails = array();
if (isset($emails[$cacheKey])) {
return $emails[$cacheKey];
}
if ($eventId) {
// add the email id configured for the event
$params = array('id' => $eventId);
$returnProperties = array('confirm_from_name', 'confirm_from_email', 'cc_confirm', 'bcc_confirm');
CRM_Core_DAO::commonRetrieve('CRM_Event_DAO_Event', $params, $eventEmail, $returnProperties);
if (CRM_Utils_Array::value('confirm_from_name', $eventEmail) && CRM_Utils_Array::value('confirm_from_email', $eventEmail)) {
$fromEmailValues[] = $fromEmailIds[] = "{$eventEmail['confirm_from_name']} <{$eventEmail['confirm_from_email']}>";
}
}
// add the domain email id
require_once 'CRM/Core/BAO/Domain.php';
$domainEmail = CRM_Core_BAO_Domain::getNameAndEmail();
$domainEmail = "{$domainEmail['0']} <{$domainEmail['1']}>";
if (!in_array($domainEmail, $fromEmailIds)) {
$fromEmailValues[] = $fromEmailIds[] = $domainEmail;
}
require_once 'CRM/Core/BAO/Email.php';
// add logged in user's active email ids
if ($contactID) {
$contactEmails = CRM_Core_BAO_Email::allEmails($contactID);
$fromDisplayName = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $contactID, 'display_name');
foreach ($contactEmails as $emailId => $emailVal) {
$email = trim($emailVal['email']);
if (!$email || $emailVal['on_hold']) {
continue;
}
$fromEmail = "{$fromDisplayName} <{$email}>";
if (!in_array($fromEmail, $fromEmailIds)) {
$fromEmailValues[$emailId] = $fromEmailIds[] = $fromEmail;
$fromEmailValues[$emailId] .= $emailVal['locationType'];
if (CRM_Utils_Array::value('is_primary', $emailVal)) {
$fromEmailValues[$emailId] .= ' ' . ts('(preferred)');
}
}
}
}
foreach ($fromEmailValues as $key => $value) {
$emailValues[] = htmlspecialchars($value);
}
$emails[$cacheKey] = array('name' => $fromEmailIds, 'label' => $emailValues, 'cc' => CRM_Utils_Array::value('cc_confirm', $eventEmail), 'bcc' => CRM_Utils_Array::value('bcc_confirm', $eventEmail));
return $emails[$cacheKey];
}
开发者ID:hampelm,项目名称:Ginsberg-CiviDemo,代码行数:68,代码来源:Event.php
示例16: writeToDB
/**
* @param array $deliveredParams
* @param array $targetParams
* @param $mailing
* @param $job_date
*
* @return bool
* @throws CRM_Core_Exception
* @throws Exception
*/
public function writeToDB(&$deliveredParams, &$targetParams, &$mailing, $job_date)
{
static $activityTypeID = NULL;
static $writeActivity = NULL;
if (!empty($deliveredParams)) {
CRM_Mailing_Event_BAO_Delivered::bulkCreate($deliveredParams);
$deliveredParams = array();
}
if ($writeActivity === NULL) {
$writeActivity = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::MAILING_PREFERENCES_NAME, 'write_activity_record', NULL, TRUE);
}
if (!$writeActivity) {
return TRUE;
}
$result = TRUE;
if (!empty($targetParams) && !empty($mailing->scheduled_id)) {
if (!$activityTypeID) {
if ($mailing->sms_provider_id) {
$mailing->subject = $mailing->name;
$activityTypeID = CRM_Core_OptionGroup::getValue('activity_type', 'Mass SMS', 'name');
} else {
$activityTypeID = CRM_Core_OptionGroup::getValue('activity_type', 'Bulk Email', 'name');
}
if (!$activityTypeID) {
CRM_Core_Error::fatal();
}
}
$activity = array('source_contact_id' => $mailing->scheduled_id, 'target_contact_id' => array_unique($targetParams), 'activity_type_id' => $activityTypeID, 'source_record_id' => $this->mailing_id, 'activity_date_time' => $job_date, 'subject' => $mailing->subject, 'status_id' => 2, 'deleteActivityTarget' => FALSE, 'campaign_id' => $mailing->campaign_id);
//check whether activity is already created for this mailing.
//if yes then create only target contact record.
$query = "\nSELECT id\nFROM civicrm_activity\nWHERE civicrm_activity.activity_type_id = %1\nAND civicrm_activity.source_record_id = %2\n";
$queryParams = array(1 => array($activityTypeID, 'Integer'), 2 => array($this->mailing_id, 'Integer'));
$activityID = CRM_Core_DAO::singleValueQuery($query, $queryParams);
if ($activityID) {
$activity['id'] = $activityID;
// CRM-9519
if (CRM_Core_BAO_Email::isMultipleBulkMail()) {
static $targetRecordID = NULL;
if (!$targetRecordID) {
$activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
$targetRecordID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
}
// make sure we don't attempt to duplicate the target activity
foreach ($activity['target_contact_id'] as $key => $targetID) {
$sql = "\nSELECT id\nFROM civicrm_activity_contact\nWHERE activity_id = {$activityID}\nAND contact_id = {$targetID}\nAND record_type_id = {$targetRecordID}\n";
if (CRM_Core_DAO::singleValueQuery($sql)) {
unset($activity['target_contact_id'][$key]);
}
}
}
}
if (is_a(CRM_Activity_BAO_Activity::create($activity), 'CRM_Core_Error')) {
$result = FALSE;
}
$targetParams = array();
}
return $result;
}
开发者ID:vakeesan26,项目名称:civicrm-core,代码行数:68,代码来源:MailingJob.php
示例17: CRM_Core_Dao
/**
* Get rows for the event browser
*
* @param int $mailing_id ID of the mailing
* @param int $job_id optional ID of the job
* @param boolean $is_distinct Group by queue id?
* @param int $offset Offset
* @param int $rowCount Number of rows
* @param array $sort sort array
*
* @return array Result set
* @access public
* @static
*/
public static function &getRows($mailing_id, $job_id = NULL, $is_distinct = FALSE, $offset = NULL, $rowCount = NULL, $sort = NULL)
{
$dao = new CRM_Core_Dao();
$bounce = self::getTableName();
$bounceType = CRM_Mailing_DAO_BounceType::getTableName();
$queue = CRM_Mailing_Event_BAO_Queue::getTableName();
$mailing = CRM_Mailing_BAO_Mailing::getTableName();
$job = CRM_Mailing_BAO_MailingJob::getTableName();
$contact = CRM_Contact_BAO_Contact::getTableName();
$email = CRM_Core_BAO_Email::getTableName();
$query = "\n SELECT {$contact}.display_name as display_name,\n {$contact}.id as contact_id,\n {$email}.email as email,\n {$bounce}.time_stamp as date,\n {$bounce}.bounce_reason as reason,\n {$bounceType}.name as bounce_type\n FROM {$contact}\n INNER JOIN {$queue}\n ON {$queue}.contact_id = {$contact}.id\n INNER JOIN {$email}\n ON {$queue}.email_id = {$email}.id\n INNER JOIN {$bounce}\n ON {$bounce}.event_queue_id = {$queue}.id\n LEFT JOIN {$bounceType}\n ON {$bounce}.bounce_type_id = {$bounceType}.id\n INNER JOIN {$job}\n ON {$queue}.job_id = {$job}.id\n AND {$job}.is_test = 0\n INNER JOIN {$mailing}\n ON {$job}.mailing_id = {$mailing}.id\n WHERE {$mailing}.id = " . CRM_Utils_Type::escape($mailing_id, 'Integer');
if (!empty($job_id)) {
$query .= " AND {$job}.id = " . CRM_Utils_Type::escape($job_id, 'Integer');
}
if ($is_distinct) {
$query .= " GROUP BY {$queue}.id ";
}
$orderBy = "sort_name ASC, {$bounce}.time_stamp DESC";
if ($sort) {
if (is_string($sort)) {
$sort = CRM_Utils_Type::escape($sort, 'String');
$orderBy = $sort;
} else {
$orderBy = trim($sort->orderBy());
}
}
$query .= " ORDER BY {$orderBy} ";
if ($offset || $rowCount) {
//Added "||$rowCount" to avoid displaying all records on first page
$query .= ' LIMIT ' . CRM_Utils_Type::escape($offset, 'Integer') . ', ' . CRM_Utils_Type::escape($rowCount, 'Integer');
}
$dao->query($query);
$results = array();
while ($dao->fetch()) {
$url = CRM_Utils_System::url('civicrm/contact/view', "reset=1&cid={$dao->contact_id}");
$results[] = array('name' => "<a href=\"{$url}\">{$dao->display_name}</a>", 'email' => $dao->email, 'type' => empty($dao->bounce_type) ? ts('Unknown') : $dao->bounce_type, 'reason' => $dao->reason, 'date' => CRM_Utils_Date::customFormat($dao->date));
}
return $results;
}
开发者ID:prashantgajare,项目名称:civicrm-core,代码行数:53,代码来源:Bounce.php
示例18: preProcess
//.........这里部分代码省略.........
if (empty($validProcessors)) {
CRM_Core_Error::fatal(ts('Could not find valid payment processor for this page'));
} else {
$this->_processors = $validProcessors;
}
// also check for billing information
// get the billing location type
$locationTypes = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id', array(), 'validate');
// CRM-8108 remove ts around Billing location type
//$this->_bltID = array_search( ts('Billing'), $locationTypes );
$this->_bltID = array_search('Billing', $locationTypes);
if (!$this->_bltID) {
CRM_Core_Error::fatal(ts('Please set a location type of %1', array(1 => 'Billing')));
}
$this->set('bltID', $this->_bltID);
$this->assign('bltID', $this->_bltID);
$this->_fields = array();
CRM_Core_Payment_Form::setCreditCardFields($this);
// this required to show billing block
$this->assign_by_ref('paymentProcessor', $paymentProcessor);
$this->assign('hidePayPalExpress', TRUE);
}
if ($this->_action & CRM_Core_Action::ADD) {
if (!CRM_Member_BAO_Membership::statusAvailabilty($this->_contactID)) {
// all possible statuses are disabled - redirect back to contact form
CRM_Core_Error::statusBounce(ts('There are no configured membership statuses. You cannot add this membership until your membership statuses are correctly configured'));
}
if ($this->_contactID) {
//check whether contact has a current membership so we can alert user that they may want to do a renewal instead
$contactMemberships = array();
$memParams = array('contact_id' => $this->_contactID);
CRM_Member_BAO_Membership::getValues($memParams, $contactMemberships, TRUE);
$cMemTypes = array();
foreach ($contactMemberships as $mem) {
$cMemTypes[] = $mem['membership_type_id'];
}
if (count($cMemTypes) > 0) {
$memberorgs = CRM_Member_BAO_MembershipType::getMemberOfContactByMemTypes($cMemTypes);
$mems_by_org = array();
foreach ($contactMemberships as $memid => $mem) {
$mem['member_of_contact_id'] = CRM_Utils_Array::value($mem['membership_type_id'], $memberorgs);
if (CRM_Utils_Array::value('membership_end_date', $mem)) {
$mem['membership_end_date'] = CRM_Utils_Date::customformat($mem['membership_end_date']);
}
$mem['membership_type'] = CRM_Core_DAO::getFieldValue('CRM_Member_DAO_MembershipType', $mem['membership_type_id'], 'name', 'id');
$mem['membership_status'] = CRM_Core_DAO::getFieldValue('CRM_Member_DAO_MembershipStatus', $mem['status_id'], 'label', 'id');
if ($this->_mode) {
$mem['renewUrl'] = CRM_Utils_System::url('civicrm/contact/view/membership', "reset=1&action=renew&cid={$this->_contactID}&id={$mem['id']}&context=membership&selectedChild=member&mode=live");
} else {
$mem['renewUrl'] = CRM_Utils_System::url('civicrm/contact/view/membership', "reset=1&action=renew&cid={$this->_contactID}&id={$mem['id']}&context=membership&selectedChild=member");
}
$mem['membershipTab'] = CRM_Utils_System::url('civicrm/contact/view', "reset=1&force=1&cid={$this->_contactID}&selectedChild=member");
$mems_by_org[$mem['member_of_contact_id']] = $mem;
}
$resources = CRM_Core_Resources::singleton();
$resources->addSetting(array('existingMems' => array('memberorgs' => $mems_by_org)));
$resources->addScriptFile('civicrm', 'templates/CRM/Member/Form/Membership.js');
}
} else {
$resources = CRM_Core_Resources::singleton();
$resources->addScriptFile('civicrm', 'templates/CRM/Member/Form/MembershipStandalone.js');
$statuses = array();
$membershipStatus = new CRM_Member_DAO_MembershipStatus();
$membershipStatus->is_current_member = 1;
$membershipStatus->find();
$membershipStatus->selectAdd();
$membershipStatus->selectAdd('id');
while ($membershipStatus->fetch()) {
$statuses[$membershipStatus->id] = $membershipStatus->label;
}
$membershipStatus->free();
$passthru = array('typeorgs' => CRM_Member_BAO_MembershipType::getMembershipTypeOrganization(), 'memtypes' => CRM_Member_BAO_MembershipType::getMembershipTypes(FALSE), 'statuses' => $statuses);
$resources->addSetting(array('existingMems' => $passthru));
}
}
// when custom data is included in this page
if (CRM_Utils_Array::value('hidden_custom', $_POST)) {
CRM_Custom_Form_CustomData::preProcess($this);
CRM_Custom_Form_CustomData::buildQuickForm($this);
CRM_Custom_Form_CustomData::setDefaultValues($this);
}
// CRM-4395, get the online pending contribution id.
$this->_onlinePendingContributionId = NULL;
if (!$this->_mode && $this->_id && $this->_action & CRM_Core_Action::UPDATE) {
$this->_onlinePendingContributionId = CRM_Contribute_BAO_Contribution::checkOnlinePendingContribution($this->_id, 'Membership');
}
$this->
|
请发表评论