Beispiel #1
0
 /**
  * Create new activity for contact
  *
  * @param $param
  * @param $contactId
  * @param string $activityType
  * @param string $activityStatus
  *
  * @return array
  * @throws CiviCRM_API3_Exception
  */
 public function createActivity($param, $contactId, $activityType = 'Petition', $activityStatus = 'Scheduled')
 {
     $activityTypeId = CRM_Core_OptionGroup::getValue('activity_type', $activityType, 'name', 'String', 'value');
     $activityStatusId = CRM_Core_OptionGroup::getValue('activity_status', $activityStatus, 'name', 'String', 'value');
     $params = array('sequential' => 1, 'source_contact_id' => $contactId, 'source_record_id' => $param->external_id, 'campaign_id' => $this->campaignId, 'activity_type_id' => $activityTypeId, 'activity_date_time' => $param->create_dt, 'subject' => $param->action_name, 'location' => $param->action_technical_type, 'status_id' => $activityStatusId);
     if (property_exists($param, 'comment') && $param->comment != '') {
         $params['details'] = trim($param->comment);
     }
     if (property_exists($param, 'metadata')) {
         if (property_exists($param->metadata, 'sign_comment') && $param->metadata->sign_comment != '') {
             $params['details'] = trim($param->metadata->sign_comment);
         }
         if (property_exists($param->metadata, 'mail_to_subject') && property_exists($param->metadata, 'mail_to_body')) {
             $params['details'] = trim($param->metadata->mail_to_subject) . "\n\n" . trim($param->metadata->mail_to_body);
         }
     }
     // fixme move this fix to utils and fix other text fields
     // those unicode chars invoke bugs
     if (key_exists('details', $params)) {
         $params['details'] = preg_replace('/[\\x00-\\x1F\\x80-\\xFF]/', '', $params['details']);
     }
     return CRM_Speakcivi_Logic_Activity::setActivity($params);
 }