You are here

public static function Flow::getFlowsForPushing in CMS Content Sync 8

Same name and namespace in other branches
  1. 2.1.x src/Entity/Flow.php \Drupal\cms_content_sync\Entity\Flow::getFlowsForPushing()
  2. 2.0.x src/Entity/Flow.php \Drupal\cms_content_sync\Entity\Flow::getFlowsForPushing()

Get all flows pushing this entity.

Parameters

\Drupal\Core\Entity\EntityInterface $entity:

$action:

bool $include_dependencies:

Return value

array|Flow[]

Throws

\Exception

1 call to Flow::getFlowsForPushing()
cms_content_sync_form_alter in ./cms_content_sync.module
1) Make sure the user is informed that content will not only be deleted on this * instance but also on all connected instances if configured that way.

File

src/Entity/Flow.php, line 176

Class

Flow
Defines the "Content Sync - Flow" entity.

Namespace

Drupal\cms_content_sync\Entity

Code

public static function getFlowsForPushing($entity, $action, $include_dependencies = true) {
  if (SyncIntent::ACTION_DELETE === $action) {
    $last_push = EntityStatus::getLastPushForEntity($entity);
    if (empty($last_push)) {
      return [];
    }
  }
  $flows = PushIntent::getFlowsForEntity($entity, PushIntent::PUSH_AUTOMATICALLY, $action);
  if (!count($flows) && SyncIntent::ACTION_DELETE === $action) {
    $flows = PushIntent::getFlowsForEntity($entity, PushIntent::PUSH_MANUALLY, $action);
  }
  if ($include_dependencies && !count($flows)) {
    $flows = PushIntent::getFlowsForEntity($entity, PushIntent::PUSH_AS_DEPENDENCY, $action);
    if (count($flows)) {
      $infos = EntityStatus::getInfosForEntity($entity
        ->getEntityTypeId(), $entity
        ->uuid());
      $pushed = [];
      foreach ($infos as $info) {
        if (!in_array($info
          ->getFlow(), $flows)) {
          continue;
        }
        if (in_array($info
          ->getFlow(), $pushed)) {
          continue;
        }
        if (!$info
          ->getLastPush()) {
          continue;
        }
        $pushed[] = $info
          ->getFlow();
      }
      $flows = $pushed;
    }
  }
  return $flows;
}