You are here

public static function Block::sort in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/modules/block/src/Entity/Block.php \Drupal\block\Entity\Block::sort()

Sorts active blocks by weight; sorts inactive blocks by name.

Overrides ConfigEntityBase::sort

File

core/modules/block/src/Entity/Block.php, line 211
Contains \Drupal\block\Entity\Block.

Class

Block
Defines a Block configuration entity class.

Namespace

Drupal\block\Entity

Code

public static function sort(ConfigEntityInterface $a, ConfigEntityInterface $b) {

  // Separate enabled from disabled.
  $status = (int) $b
    ->status() - (int) $a
    ->status();
  if ($status !== 0) {
    return $status;
  }

  // Sort by weight, unless disabled.
  if ($a
    ->getRegion() != static::BLOCK_REGION_NONE) {
    $weight = $a
      ->getWeight() - $b
      ->getWeight();
    if ($weight) {
      return $weight;
    }
  }

  // Sort by label.
  return strcmp($a
    ->label(), $b
    ->label());
}