<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.5 |
+ | CiviCRM version 4.6 |
+--------------------------------------------------------------------+
| Copyright (C) 2011 Marty Wright |
| Licensed to CiviCRM under the Academic Free License version 3.0. |
*
* @return array
*/
- static function getMapping($id = NULL) {
+ public static function getMapping($id = NULL) {
static $_action_mapping;
if ($id && !is_null($_action_mapping) && isset($_action_mapping[$id])) {
/**
* Get all fields of the type Date
*/
-
- static function getDateFields() {
+ public static function getDateFields() {
$allFields = CRM_Core_BAO_CustomField::getFields('');
$dateFields = array('birth_date' => ts('Birth Date'));
foreach ($allFields as $fieldID => $field) {
/**
* Retrieve list of selections/drop downs for Scheduled Reminder form
*
- * @param bool $id mapping id
+ * @param bool $id
+ * Mapping id.
*
- * @return array associated array of all the drop downs in the form
- * @static
- * @access public
+ * @return array
+ * associated array of all the drop downs in the form
*/
- static function getSelection($id = NULL) {
+ public static function getSelection($id = NULL) {
$mapping = self::getMapping();
$activityStatus = CRM_Core_PseudoConstant::activityStatus();
- $activityType = CRM_Core_PseudoConstant::activityType(TRUE, TRUE);
+ $activityType = CRM_Core_PseudoConstant::activityType(TRUE, TRUE);
$participantStatus = CRM_Event_PseudoConstant::participantStatus(NULL, NULL, 'label');
$event = CRM_Event_PseudoConstant::event(NULL, FALSE, "( is_template IS NULL OR is_template != 1 )");
if ($kkey) {
$auto = CRM_Core_DAO::getFieldValue('CRM_Member_DAO_MembershipType', $kkey, 'auto_renew');
}
- if ( $auto ) {
+ if ($auto) {
$vval = $statusLabel + $autoRenew;
}
else {
*
* @return array
*/
- static function getSelection1($id = NULL) {
+ public static function getSelection1($id = NULL) {
$mapping = self::getMapping($id);
$sel4 = $sel5 = array();
$options = array(
/**
* Retrieve list of Scheduled Reminders
*
- * @param bool $namesOnly return simple list of names
+ * @param bool $namesOnly
+ * Return simple list of names.
*
* @param null $entityValue
* @param int $id
*
- * @return array (reference) reminder list
- * @static
- * @access public
+ * @return array
+ * (reference) reminder list
*/
- static function &getList($namesOnly = FALSE, $entityValue = NULL, $id = NULL) {
+ public static function &getList($namesOnly = FALSE, $entityValue = NULL, $id = NULL) {
$activity_type = CRM_Core_PseudoConstant::activityType(TRUE, TRUE);
$activity_status = CRM_Core_PseudoConstant::activityStatus();
* @return bool|null
* @throws CRM_Core_Exception
*/
- static function sendReminder($contactId, $to, $scheduleID, $from, $tokenParams) {
+ public static function sendReminder($contactId, $to, $scheduleID, $from, $tokenParams) {
$email = $to['email'];
$phoneNumber = $to['phone'];
$schedule = new CRM_Core_DAO_ActionSchedule();
$schedule->id = $scheduleID;
- $domain = CRM_Core_BAO_Domain::getDomain();
- $result = NULL;
+ $domain = CRM_Core_BAO_Domain::getDomain();
+ $result = NULL;
$hookTokens = array();
if ($schedule->find(TRUE)) {
- $body_text = $schedule->body_text;
- $body_html = $schedule->body_html;
+ $body_text = $schedule->body_text;
+ $body_html = $schedule->body_html;
$sms_body_text = $schedule->sms_body_text;
$body_subject = $schedule->subject;
if (!$body_text) {
$smarty = CRM_Core_Smarty::singleton();
foreach (array(
- 'text', 'html', 'sms_text') as $elem) {
+ 'text',
+ 'html',
+ 'sms_text',
+ ) as $elem) {
$$elem = $smarty->fetch("string:{$$elem}");
}
+ //@todo - this next section is a duplicate of function CRM_Utils_Token::getTokens
$matches = array();
preg_match_all('/(?<!\{|\\\\)\{(\w+\.\w+)\}(?!\})/',
$body_subject,
}
}
+ // @todo this (along with the copy-&-paste chunk above is a commonly repeated chunk of code & should be in a re-usable function
$messageSubject = CRM_Utils_Token::replaceContactTokens($body_subject, $contact, FALSE, $subjectToken);
$messageSubject = CRM_Utils_Token::replaceDomainTokens($messageSubject, $domain, TRUE, $subjectToken);
$messageSubject = CRM_Utils_Token::replaceComponentTokens($messageSubject, $contact, $subjectToken, TRUE);
if ($schedule->mode == 'SMS' or $schedule->mode == 'User_Preference') {
$session = CRM_Core_Session::singleton();
$userID = $session->get('userID') ? $session->get('userID') : $contactId;
- $smsParams = array('To' => $phoneNumber, 'provider_id' => $schedule->sms_provider_id, 'activity_subject' => $messageSubject);
+ $smsParams = array(
+ 'To' => $phoneNumber,
+ 'provider_id' => $schedule->sms_provider_id,
+ 'activity_subject' => $messageSubject,
+ );
$activityTypeID = CRM_Core_OptionGroup::getValue('activity_type',
'SMS',
'name'
/**
* Add the schedules reminders in the db
*
- * @param array $params (reference ) an assoc array of name/value pairs
- * @param array $ids the array that holds all the db ids
+ * @param array $params
+ * (reference ) an assoc array of name/value pairs.
+ * @param array $ids
+ * The array that holds all the db ids.
*
* @return CRM_Core_DAO_ActionSchedule
- * @access public
- * @static
- *
*/
- static function add(&$params, $ids = array()) {
+ public static function add(&$params, $ids = array()) {
$actionSchedule = new CRM_Core_DAO_ActionSchedule();
$actionSchedule->copyValues($params);
* retrieves the relevant objects. It also stores all the retrieved
* values in the default array
*
- * @param array $params (reference ) an assoc array of name/value pairs
- * @param array $values (reference ) an assoc array to hold the flattened values
+ * @param array $params
+ * (reference ) an assoc array of name/value pairs.
+ * @param array $values
+ * (reference ) an assoc array to hold the flattened values.
*
- * @return CRM_Core_DAO_ActionSchedule object on success, null otherwise
- * @access public
- * @static
+ * @return CRM_Core_DAO_ActionSchedule|null
+ * object on success, null otherwise
*/
- static function retrieve(&$params, &$values) {
+ public static function retrieve(&$params, &$values) {
if (empty($params)) {
return NULL;
}
/**
* Delete a Reminder
*
- * @param int $id ID of the Reminder to be deleted.
+ * @param int $id
+ * ID of the Reminder to be deleted.
*
- * @access public
- * @static
*/
- static function del($id) {
+ public static function del($id) {
if ($id) {
$dao = new CRM_Core_DAO_ActionSchedule();
$dao->id = $id;
/**
* Update the is_active flag in the db
*
- * @param int $id id of the database record
- * @param boolean $is_active value we want to set the is_active field
+ * @param int $id
+ * Id of the database record.
+ * @param bool $is_active
+ * Value we want to set the is_active field.
*
- * @return Object DAO object on success, null otherwise
- * @static
+ * @return Object
+ * DAO object on success, null otherwise
*/
- static function setIsActive($id, $is_active) {
+ public static function setIsActive($id, $is_active) {
return CRM_Core_DAO::setFieldValue('CRM_Core_DAO_ActionSchedule', $id, 'is_active', $is_active);
}
*
* @throws CRM_Core_Exception
*/
- static function sendMailings($mappingID, $now) {
+ public static function sendMailings($mappingID, $now) {
$domainValues = CRM_Core_BAO_Domain::getNameAndEmail();
$fromEmailAddress = "$domainValues[0] <$domainValues[1]>";
while ($actionSchedule->fetch()) {
$extraSelect = $extraJoin = $extraWhere = $extraOn = '';
- if ($actionSchedule->from_email)
+ if ($actionSchedule->from_email) {
$fromEmailAddress = "$actionSchedule->from_name <$actionSchedule->from_email>";
+ }
- $activityTypeID = false;
- $activityStatusID = false;
+ $activityTypeID = FALSE;
+ $activityStatusID = FALSE;
if ($actionSchedule->record_activity) {
if ($mapping->entity == 'civicrm_membership') {
- $activityTypeID =
- CRM_Core_OptionGroup::getValue('activity_type', 'Membership Renewal Reminder', 'name');
+ $activityTypeID
+ = CRM_Core_OptionGroup::getValue('activity_type', 'Membership Renewal Reminder', 'name');
}
else {
- $activityTypeID =
- CRM_Core_OptionGroup::getValue('activity_type', 'Reminder Sent', 'name');
+ $activityTypeID
+ = CRM_Core_OptionGroup::getValue('activity_type', 'Reminder Sent', 'name');
}
- $activityStatusID =
- CRM_Core_OptionGroup::getValue('activity_status', 'Completed', 'name');
+ $activityStatusID
+ = CRM_Core_OptionGroup::getValue('activity_status', 'Completed', 'name');
}
if ($mapping->entity == 'civicrm_activity') {
$tokenEntity = 'activity';
$tokenFields = array('activity_id', 'activity_type', 'subject', 'details', 'activity_date_time');
$extraSelect = ', ov.label as activity_type, e.id as activity_id';
- $extraJoin = "
+ $extraJoin = "
INNER JOIN civicrm_option_group og ON og.name = 'activity_type'
INNER JOIN civicrm_option_value ov ON e.activity_type_id = ov.value AND ov.option_group_id = og.id";
$extraOn = ' AND e.is_current_revision = 1 AND e.is_deleted = 0 ';
if ($actionSchedule->limit_to == 0) {
- $extraJoin = "
+ $extraJoin = "
LEFT JOIN civicrm_option_group og ON og.name = 'activity_type'
LEFT JOIN civicrm_option_value ov ON e.activity_type_id = ov.value AND ov.option_group_id = og.id";
}
if ($mapping->entity == 'civicrm_participant') {
$tokenEntity = 'event';
- $tokenFields = array('event_type', 'title', 'event_id', 'start_date', 'end_date', 'summary', 'description', 'location', 'info_url', 'registration_url', 'fee_amount', 'contact_email', 'contact_phone', 'balance');
+ $tokenFields = array(
+ 'event_type',
+ 'title',
+ 'event_id',
+ 'start_date',
+ 'end_date',
+ 'summary',
+ 'description',
+ 'location',
+ 'info_url',
+ 'registration_url',
+ 'fee_amount',
+ 'contact_email',
+ 'contact_phone',
+ 'balance',
+ );
$extraSelect = ', ov.label as event_type, ev.title, ev.id as event_id, ev.start_date, ev.end_date, ev.summary, ev.description, address.street_address, address.city, address.state_province_id, address.postal_code, email.email as contact_email, phone.phone as contact_phone ';
- $extraJoin = "
+ $extraJoin = "
INNER JOIN civicrm_event ev ON e.event_id = ev.id
INNER JOIN civicrm_option_group og ON og.name = 'event_type'
INNER JOIN civicrm_option_value ov ON ev.event_type_id = ov.value AND ov.option_group_id = og.id
LEFT JOIN civicrm_phone phone ON phone.id = lb.phone_id
";
if ($actionSchedule->limit_to == 0) {
- $extraJoin = "
+ $extraJoin = "
LEFT JOIN civicrm_event ev ON e.event_id = ev.id
LEFT JOIN civicrm_option_group og ON og.name = 'event_type'
LEFT JOIN civicrm_option_value ov ON ev.event_type_id = ov.value AND ov.option_group_id = og.id
$tokenEntity = 'membership';
$tokenFields = array('fee', 'id', 'join_date', 'start_date', 'end_date', 'status', 'type');
$extraSelect = ', mt.minimum_fee as fee, e.id as id , e.join_date, e.start_date, e.end_date, ms.name as status, mt.name as type';
- $extraJoin = '
+ $extraJoin = '
INNER JOIN civicrm_membership_type mt ON e.membership_type_id = mt.id
INNER JOIN civicrm_membership_status ms ON e.status_id = ms.id';
if ($actionSchedule->limit_to == 0) {
- $extraJoin = '
+ $extraJoin = '
LEFT JOIN civicrm_membership_type mt ON e.membership_type_id = mt.id
LEFT JOIN civicrm_membership_status ms ON e.status_id = ms.id';
}
elseif ($field == 'registration_url') {
$entityTokenParams["{$tokenEntity}." . $field] = CRM_Utils_System::url('civicrm/event/register', 'reset=1&id=' . $dao->event_id, TRUE, NULL, FALSE);
}
- elseif (in_array($field, array('start_date','end_date','join_date','activity_date_time'))) {
+ elseif (in_array($field, array('start_date', 'end_date', 'join_date', 'activity_date_time'))) {
$entityTokenParams["{$tokenEntity}." . $field] = CRM_Utils_Date::customFormat($dao->$field);
}
elseif ($field == 'balance') {
}
}
- $isError = 0;
+ $isError = 0;
$errorMsg = $toEmail = $toPhoneNumber = '';
if ($actionSchedule->mode == 'SMS' or $actionSchedule->mode == 'User_Preference') {
if ($toEmail || !(empty($toPhoneNumber) or $toDoNotSms)) {
$to['email'] = $toEmail;
$to['phone'] = $toPhoneNumber;
- $result =
- CRM_Core_BAO_ActionSchedule::sendReminder(
+ $result
+ = CRM_Core_BAO_ActionSchedule::sendReminder(
$dao->contactID,
$to,
$actionSchedule->id,
$activityParams = array(
'subject' => $actionSchedule->title,
'details' => $actionSchedule->body_html,
- 'source_contact_id' =>
- $session->get('userID') ? $session->get('userID') : $dao->contactID,
+ 'source_contact_id' => $session->get('userID') ? $session->get('userID') : $dao->contactID,
'target_contact_id' => $dao->contactID,
'activity_date_time' => date('YmdHis'),
'status_id' => $activityStatusID,
'source_record_id' => $dao->entityID,
);
$activity = CRM_Activity_BAO_Activity::create($activityParams);
-
+
//file reminder on case if source activity is a case activity
if (!empty($dao->case_id)) {
$caseActivityParams = array();
*
* @throws API_Exception
*/
- static function buildRecipientContacts($mappingID, $now, $params = array()) {
+ public static function buildRecipientContacts($mappingID, $now, $params = array()) {
$actionSchedule = new CRM_Core_DAO_ActionSchedule();
$actionSchedule->mapping_id = $mappingID;
$actionSchedule->is_active = 1;
- if(!empty($params)) {
+ if (!empty($params)) {
_civicrm_api3_dao_set_filter($actionSchedule, $params, FALSE, 'ActionSchedule');
}
$actionSchedule->find();
);
$status = implode(',', $status);
- $anniversary = false;
+ $anniversary = FALSE;
if (!CRM_Utils_System::isNull($mapping->entity_recipient)) {
if ($mapping->entity_recipient == 'event_contacts') {
$contactField = 'e.contact_id';
$table = 'civicrm_membership e';
// build where clause
- if ( $status == 2 ) {
+ if ($status == 2) {
//auto-renew memberships
$where[] = "e.contribution_recur_id IS NOT NULL ";
}
- elseif ( $status == 1 ) {
+ elseif ($status == 1) {
$where[] = "e.contribution_recur_id IS NULL ";
}
$notINClause = self::permissionedRelationships($contactField);
$membershipStatus = CRM_Member_PseudoConstant::membershipStatus(NULL, "(is_current_member = 1 OR name = 'Expired')", 'id');
- $mStatus = implode (',', $membershipStatus);
+ $mStatus = implode(',', $membershipStatus);
$where[] = "e.status_id IN ({$mStatus})";
}
if (in_array(2, $status_)) {
// anniversary mode:
$dateField = 'DATE_ADD(e.' . $dateDBField . ', INTERVAL ROUND(DATEDIFF(DATE(' . $now . '), e.' . $dateDBField . ') / 365) YEAR)';
- $anniversary = true;
+ $anniversary = TRUE;
}
else {
// regular mode:
if ($isSmartGroup) {
$join[] = "INNER JOIN civicrm_group_contact_cache grp ON {$contactField} = grp.contact_id";
$where[] = "grp.group_id IN ({$actionSchedule->group_id})";
- } else {
+ }
+ else {
$join[] = "INNER JOIN civicrm_group_contact grp ON {$contactField} = grp.contact_id AND grp.status = 'Added'";
$where[] = "grp.group_id IN ({$actionSchedule->group_id})";
}
if ($isSmartGroup) {
$addGroup = " INNER JOIN civicrm_group_contact_cache grp ON c.id = grp.contact_id";
$addWhere = " grp.group_id IN ({$actionSchedule->group_id})";
- } else {
+ }
+ else {
$addGroup = " INNER JOIN civicrm_group_contact grp ON c.id = grp.contact_id AND grp.status = 'Added'";
$addWhere = " grp.group_id IN ({$actionSchedule->group_id})";
}
$date = $operator . "({$dateField}, INTERVAL {$actionSchedule->start_action_offset} {$actionSchedule->start_action_unit})";
$startDateClause[] = "'{$now}' >= {$date}";
if ($mapping->entity == 'civicrm_participant') {
- $startDateClause[] = $operator. "({$now}, INTERVAL 1 DAY ) {$op} " . $dateField;
+ $startDateClause[] = $operator . "({$now}, INTERVAL 1 DAY ) {$op} " . $dateField;
}
else {
$startDateClause[] = "DATE_SUB({$now}, INTERVAL 1 DAY ) <= {$date}";
$isSendToAdditionalContacts = (!is_null($limitTo) && $limitTo == 0 && (!empty($addGroup) || !empty($addWhere))) ? TRUE : FALSE;
if ($isSendToAdditionalContacts) {
$contactTable = "civicrm_contact c";
- $addSelect = "SELECT c.id as contact_id, c.id as entity_id, 'civicrm_contact' as entity_table, {$actionSchedule->id} as action_schedule_id";
+ $addSelect = "SELECT c.id as contact_id, c.id as entity_id, 'civicrm_contact' as entity_table, {$actionSchedule->id} as action_schedule_id";
$additionReminderClause = "civicrm_action_log reminder ON reminder.contact_id = c.id AND
reminder.entity_id = c.id AND
reminder.entity_table = 'civicrm_contact' AND
if ($addWhere) {
$addWhereClause = "AND {$addWhere}";
}
- $insertAdditionalSql ="
+ $insertAdditionalSql = "
INSERT INTO civicrm_action_log (contact_id, entity_id, entity_table, action_schedule_id)
{$addSelect}
FROM ({$contactTable})
{$groupByClause}
{$havingClause}";
- $valsqlInsertValues = CRM_Core_DAO::executeQuery($sqlInsertValues, array(1 => array($actionSchedule->id, 'Integer')));
+ $valsqlInsertValues = CRM_Core_DAO::executeQuery($sqlInsertValues, array(
+ 1 => array(
+ $actionSchedule->id,
+ 'Integer',
+ ),
+ )
+ );
$arrValues = array();
while ($valsqlInsertValues->fetch()) {
*
* @return null|string
*/
- static function permissionedRelationships($field) {
+ public static function permissionedRelationships($field) {
$query = '
SELECT cm.id AS owner_id, cm.contact_id AS owner_contact, m.id AS slave_id, m.contact_id AS slave_contact, cmt.relationship_type_id AS relation_type, rel.contact_id_a, rel.contact_id_b, rel.is_permission_a_b, rel.is_permission_b_a
FROM civicrm_membership m
}
if (!empty($excludeIds)) {
- $clause = "AND {$field} NOT IN ( " .implode(', ', $excludeIds) . ' ) ';
- return $clause;
+ $clause = "AND {$field} NOT IN ( " . implode(', ', $excludeIds) . ' ) ';
+ return $clause;
}
return NULL;
}
*
* @return array
*/
- static function processQueue($now = NULL, $params = array()) {
+ public static function processQueue($now = NULL, $params = array()) {
$now = $now ? CRM_Utils_Time::setTime($now) : CRM_Utils_Time::getTime();
$mappings = self::getMapping();
*
* @return null|string
*/
- static function isConfigured($id, $mappingID) {
+ public static function isConfigured($id, $mappingID) {
$queryString = "SELECT count(id) FROM civicrm_action_schedule
WHERE mapping_id = %1 AND
entity_value = %2";
*
* @return array
*/
- static function getRecipientListing($mappingID, $recipientType) {
+ public static function getRecipientListing($mappingID, $recipientType) {
$options = array();
if (!$mappingID || !$recipientType) {
return $options;