You are here

public function CRMFeedsActivityProcessor::setTargetElement in CRM Core 8.3

Same name and namespace in other branches
  1. 8 modules/crm_core_activity/legacy/CRMFeedsActivityProcessor.inc \CRMFeedsActivityProcessor::setTargetElement()
  2. 8.2 modules/crm_core_activity/legacy/CRMFeedsActivityProcessor.inc \CRMFeedsActivityProcessor::setTargetElement()
  3. 7 modules/crm_core_activity/includes/CRMFeedsActivityProcessor.inc \CRMFeedsActivityProcessor::setTargetElement()

Override setTargetElement to operate on a target item that is an activity.

File

modules/crm_core_activity/legacy/CRMFeedsActivityProcessor.inc, line 215
Class definition of CRMFeedsActivityProcessor. @TODO: Remove Feeds integration

Class

CRMFeedsActivityProcessor
Creates activities from feed items.

Code

public function setTargetElement(FeedsSource $source, $target_activity, $target_element, $value) {
  switch ($target_element) {
    case 'created':
      $target_activity->created = feeds_to_unixtime($value, REQUEST_TIME);
      break;
    case 'feeds_source':

      // Get class of the feed activity importer's fetcher and set the source
      // property. See feeds_activity_update() for $activity->feeds storage.
      if ($id = feeds_get_importer_id($this->config['activity_type'])) {
        $class = get_class(feeds_importer($id)->fetcher);
        $target_activity->feeds[$class]['source'] = $value;

        // This effectively suppresses 'import on submission' feature.
        // See feeds_activity_insert().
        $target_activity->feeds['suppress_import'] = TRUE;
      }
      break;
    default:
      parent::setTargetElement($source, $target_activity, $target_element, $value);
      break;
  }
}