<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.3 |
+ | CiviCRM version 4.4 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2013 |
+--------------------------------------------------------------------+
$activity->copyValues($params);
if ($activity->find(TRUE)) {
- $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+ $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
$targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
$assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
$logMsg = 'Case Activity deleted for';
$msgs = array();
- $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+ $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
$assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
$targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
}
$activityId = $activity->id;
- $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+ $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
$assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
$targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
}
}
- // write to changelog before transation is committed/rolled
+ // write to changelog before transaction is committed/rolled
// back (and prepare status to display)
if (CRM_Utils_Array::value('id', $params)) {
$logMsg = "Activity (id: {$result->id} ) updated with ";
$session = CRM_Core_Session::singleton();
$id = $session->get('userID');
if (!$id) {
- $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+ $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
$id = self::getActivityContact($activity->id. $sourceID);
}
}
/**
- * function to get the list Actvities
+ * function to get the list Activities
*
* @param array $input array of parameters
* Keys include
- * - contact_id int contact_id whose activties we want to retrieve
+ * - contact_id int contact_id whose activities we want to retrieve
* - offset int which row to start from ?
* - rowCount int how many rows to fetch
* - sort object|array object or array describing sort order for sql query.
* - context string page on which selector is build
* - activity_type_id int|string the activitiy types we want to restrict by
*
- * @return array (reference) $values the relevant data object values of open activitie
+ * @return array (reference) $values the relevant data object values of open activities
*
* @access public
* @static
$sql = "CREATE TEMPORARY TABLE {$activityTempTable} ( ";
$insertValueSQL = array();
+ // The activityTempTable contains the sorted rows
+ // so in order to maintain the sort order as-is we add an auto_increment
+ // field; we can sort by this later to ensure the sort order stays correct.
+ $sql .= " fixed_sort_order INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,";
foreach ($tableFields as $name => $desc) {
$sql .= "$name $desc,\n";
$insertValueSQL[] = $name;
}
+ // add unique key on activity_id just to be sure
+ // this cannot be primary key because we need that for the auto_increment
+ // fixed_sort_order field
$sql .= "
- PRIMARY KEY ( activity_id )
+ UNIQUE KEY ( activity_id )
) ENGINE=HEAP DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci
";
}
if (empty($order)) {
+ // context = 'activity' in Activities tab.
$order = (CRM_Utils_Array::value('context', $input) == 'activity') ? " ORDER BY tbl.activity_date_time desc " : " ORDER BY tbl.status_id asc, tbl.activity_date_time asc ";
}
CRM_Core_DAO::executeQuery($query);
// step 3: Combine all temp tables to get final query for activity selector
+ // sort by the original sort order, stored in fixed_sort_order
$query = "
SELECT {$activityTempTable}.*,
{$activityContactTempTable}.contact_id,
{$activityContactTempTable}.contact_name
FROM {$activityTempTable}
INNER JOIN {$activityContactTempTable} on {$activityTempTable}.activity_id = {$activityContactTempTable}.activity_id
+ORDER BY fixed_sort_order
";
$allCampaigns = CRM_Campaign_BAO_Campaign::getCampaigns(NULL, NULL, FALSE, FALSE, FALSE, TRUE);
$values = array();
- $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+ $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
$assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
$targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
*
* @param array $input array of parameters
* Keys include
- * - contact_id int contact_id whose activties we want to retrieve
+ * - contact_id int contact_id whose activities we want to retrieve
* - admin boolean if contact is admin
* - caseId int case ID
* - context string page on which selector is build
- * - activity_type_id int|string the activitiy types we want to restrict by
+ * - activity_type_id int|string the activity types we want to restrict by
*
* @return int count of activities
*
*
* @param array $input array of parameters
* Keys include
- * - contact_id int contact_id whose activties we want to retrieve
+ * - contact_id int contact_id whose activities we want to retrieve
* - admin boolean if contact is admin
* - caseId int case ID
* - context string page on which selector is build
* - count boolean are we interested in the count clause only?
- * - activity_type_id int|string the activitiy types we want to restrict by
+ * - activity_type_id int|string the activity types we want to restrict by
*
* @return int count of activities
*
civicrm_activity.activity_date_time,
civicrm_activity.status_id,
civicrm_activity.subject,
- civicrm_activity.source_contact_id,
+ ac.contact_id,
civicrm_activity.source_record_id,
civicrm_option_value.value as activity_type_id,
civicrm_option_value.label as activity_type,
* @param int $userID use this userID if set
* @param string $from
* @param array $attachments the array of attachments if any
- * @param string $cc cc recepient
- * @param string $bcc bcc recepient
+ * @param string $cc cc recipient
+ * @param string $bcc bcc recipient
* @param array $contactIds contact ids
+ * @param string $additionalDetails the additional information of CC and BCC appended to the activity Details
*
* @return array ( sent, activityId) if any email is sent and activityId
* @access public
$attachments = NULL,
$cc = NULL,
$bcc = NULL,
- $contactIds // FIXME a param with no default shouldn't be last
+ $contactIds, // FIXME a param with no default shouldn't be last
+ $additionalDetails = NULL
) {
// get the contact details of logged in contact, which we set as from email
if ($userID == NULL) {
// CRM-6265: save both text and HTML parts in details (if present)
if ($html and $text) {
- $details = "-ALTERNATIVE ITEM 0-\n$html\n-ALTERNATIVE ITEM 1-\n$text\n-ALTERNATIVE END-\n";
+ $details = "-ALTERNATIVE ITEM 0-\n$html$additionalDetails\n-ALTERNATIVE ITEM 1-\n$text$additionalDetails\n-ALTERNATIVE END-\n";
}
else {
$details = $html ? $html : $text;
+ $details .= $additionalDetails;
}
$activityParams = array(
$tokenText,
$tokenHtml,
$smsParams,
- $activityID
+ $activityID,
+ $userID
);
if (PEAR::isError($sendResult)) {
&$tokenText,
&$tokenHtml,
$smsParams = array(),
- $activityID
+ $activityID,
+ $userID = null
) {
$toDoNotSms = "";
$toPhoneNumber = "";
$smsParams['parent_activity_id'] = $activityID;
$providerObj = CRM_SMS_Provider::singleton(array('provider_id' => $smsParams['provider_id']));
- $sendResult = $providerObj->send($recipient, $smsParams, $message, NULL);
+ $sendResult = $providerObj->send($recipient, $smsParams, $message, NULL, $userID);
if (PEAR::isError($sendResult)) {
return $sendResult;
}
- $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+ $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
$targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
$toDisplayName = $toEmail;
}
- $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+ $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
//$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
//$assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
$targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
*/
static function getContactActivity($contactId) {
$activities = array();
- $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+ $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
$assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
$targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
/**
* Function to add activity for Membership/Event/Contribution
*
- * @param object $activity (reference) perticular component object
+ * @param object $activity (reference) particular component object
* @param string $activityType for Membership Signup or Renewal
*
*
$component = 'Membership';
}
elseif ($activity->__table == 'civicrm_participant') {
- $event = CRM_Event_BAO_Event::getEvents(TRUE, $activity->event_id, TRUE, FALSE);
+ $event = CRM_Event_BAO_Event::getEvents(1, $activity->event_id, TRUE, FALSE);
$roles = CRM_Event_PseudoConstant::participantRole();
$status = CRM_Event_PseudoConstant::participantStatus();
}
/**
- * Function to get Parent activity for currently viewd activity
+ * Function to get Parent activity for currently viewed activity
*
* @param int $activityId current activity id
*
- * @return int $parentId Id of parent acyivity otherwise false.
+ * @return int $parentId Id of parent activity otherwise false.
* @access public
*/
static function getParentActivity($activityId) {
*
* @param int $activityId current activity id
*
- * @return int $params count of prior acyivities otherwise false.
+ * @return int $params count of prior activities otherwise false.
* @access public
*/
static function getPriorCount($activityID) {
}
/**
- * Function to get all prior activities of currently viewd activity
+ * Function to get all prior activities of currently viewe
+ * d activity
*
* @param int $activityId current activity id
*
- * @return array $result prior acyivities info.
+ * @return array $result prior activities info.
* @access public
*/
static function getPriorAcitivities($activityID, $onlyPriorRevisions = FALSE) {
if (!$contactId) {
return $result;
}
- $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+ $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
$transaction = new CRM_Core_Transaction();
$permission = CRM_Core_Permission::EDIT;
}
- $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+ $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
$assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
$targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
public static function getSourceContactID($activityId) {
static $sourceID = NULL;
if (!$sourceID) {
- $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+ $activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, 'name');
$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
}