protected function CRMFeedsActivityProcessor::existingEntityId in CRM Core 8
Same name and namespace in other branches
- 8.3 modules/crm_core_activity/legacy/CRMFeedsActivityProcessor.inc \CRMFeedsActivityProcessor::existingEntityId()
- 8.2 modules/crm_core_activity/legacy/CRMFeedsActivityProcessor.inc \CRMFeedsActivityProcessor::existingEntityId()
- 7 modules/crm_core_activity/includes/CRMFeedsActivityProcessor.inc \CRMFeedsActivityProcessor::existingEntityId()
Get activity_id of an existing feed item activity if available.
File
- modules/
crm_core_activity/ legacy/ CRMFeedsActivityProcessor.inc, line 285 - Class definition of CRMFeedsActivityProcessor.
Class
- CRMFeedsActivityProcessor
- Creates activities from feed items.
Code
protected function existingEntityId(FeedsSource $source, FeedsParserResult $result) {
if ($activity_id = parent::existingEntityId($source, $result)) {
return $activity_id;
}
// Iterate through all unique targets and test whether they do already
// exist in the database.
foreach ($this
->uniqueTargets($source, $result) as $target => $value) {
switch ($target) {
case 'activity_id':
$activity_id = db_query("SELECT activity_id FROM {crm_core_activity} WHERE activity_id = :activity_id", [
':activity_id' => $value,
])
->fetchField();
break;
case 'feeds_source':
if ($id = feeds_get_importer_id($this->config['activity_type'])) {
$activity_id = db_query("SELECT fs.feed_activity_id FROM {crm_core_activity} c JOIN {feeds_source} fs ON c.activity_id = fs.feed_activity_id WHERE fs.id = :id AND fs.source = :source", [
':id' => $id,
':source' => $value,
])
->fetchField();
}
break;
}
if ($activity_id) {
// Return with the first activity_id found.
return $activity_id;
}
}
return 0;
}