You are here

public function CRMFeedsActivityProcessor::expire in CRM Core 8.3

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

Implement expire().

@todo: move to processor stage?

File

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

Class

CRMFeedsActivityProcessor
Creates activities from feed items.

Code

public function expire($time = NULL) {
  if ($time === NULL) {
    $time = $this
      ->expiryTime();
  }
  if ($time == FEEDS_EXPIRE_NEVER) {
    return;
  }
  $count = $this
    ->getLimit();
  $activitys = db_query_range("SELECT a.activity_id FROM {crm_core_activity} a JOIN {feeds_item} fi ON fi.entity_type = 'crm_core_activity' AND a.activity_id = fi.entity_id WHERE fi.id = :id AND c.created < :created", 0, $count, [
    ':id' => $this->id,
    ':created' => REQUEST_TIME - $time,
  ]);
  $activity_ids = [];
  foreach ($activitys as $activity) {
    $activity_ids[$activity->activity_id] = $activity->activity_id;
  }
  $this
    ->entityDeleteMultiple($activity_ids);
  if (db_query_range("SELECT 1 FROM {crm_core_activity} a JOIN {feeds_item} fi ON fi.entity_type = 'crm_core_activity' AND a.activity_id = fi.entity_id WHERE fi.id = :id AND a.created < :created", 0, 1, [
    ':id' => $this->id,
    ':created' => REQUEST_TIME - $time,
  ])
    ->fetchField()) {
    return FEEDS_BATCH_ACTIVE;
  }
  return FEEDS_BATCH_COMPLETE;
}