You are here

final public function PartyDataBase::reorderEntities in Party 8.2

Re-order attached entities

This will re-order any entities to match the order specified in $order. Any entities that are left out of $order will be appended to the new order. To remove an entity, use PartyData::detachEntity().

Parameters

array $order: A numeric array of old deltas in the new order

Return value

$this

File

lib/Drupal/party/Plugin/PartyDataBase.php, line 662
Contains \Drupal\party\Plugin\PartyDataBase.

Class

PartyDataBase
Class PartyDataBase

Namespace

Drupal\party\Plugin

Code

public final function reorderEntities($order) {

  // First we need to collect missed entities
  $missed_entities = array_diff_key($this->entities, array_fill_keys($order, TRUE));
  $entities = array();

  // Iterate over re-ordering our entities
  foreach ($order as $delta) {
    if (isset($this->entities[$delta])) {
      $entities[] = $this->entities[$delta];
    }
  }

  // Append any missed entities
  foreach ($missed_entities as $entity) {
    $entities[] = $entity;
  }

  // Store array values so we don't have any missed
  $this->entities = $entities;
  return $this;
}