public function DefaultMenuLinkTreeManipulators::generateIndexAndSort

public DefaultMenuLinkTreeManipulators::generateIndexAndSort(array $tree)

Generates a unique index and sorts by it.

Parameters

\Drupal\Core\Menu\MenuLinkTreeElement[] $tree: The menu link tree to manipulate.

Return value

\Drupal\Core\Menu\MenuLinkTreeElement[] The manipulated menu link tree.

File

core/lib/Drupal/Core/Menu/DefaultMenuLinkTreeManipulators.php, line 226

Class

DefaultMenuLinkTreeManipulators
Provides a couple of menu link tree manipulators.

Namespace

Drupal\Core\Menu

Code

public function generateIndexAndSort(array $tree) {
  $new_tree = array();
  foreach ($tree as $key => $v) {
    if ($tree[$key]->subtree) {
      $tree[$key]->subtree = $this->generateIndexAndSort($tree[$key]->subtree);
    }
    $instance = $tree[$key]->link;
    // The weights are made a uniform 5 digits by adding 50000 as an offset.
    // After $this->menuLinkCheckAccess(), $instance->getTitle() has the
    // localized or translated title. Adding the plugin id to the end of the
    // index insures that it is unique.
    $new_tree[(50000 + $instance->getWeight()) . ' ' . $instance->getTitle() . ' ' . $instance->getPluginId()] = $tree[$key];
  }
  ksort($new_tree);
  return $new_tree;
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Menu!DefaultMenuLinkTreeManipulators.php/function/DefaultMenuLinkTreeManipulators::generateIndexAndSort/8.1.x