You are here

public function MenutrailbypathMenuHelper::sortMenuLinksByMenuPreference in Menu Trail By Path 7.3

Sort menu_links by the menu preference order, see menu_set_active_menu_names() Stable sorting based on https://github.com/vanderlee/PHP-stable-sort-functions

Parameters

array $menu_links:

File

src/MenutrailbypathMenuHelper.inc, line 103

Class

MenutrailbypathMenuHelper

Code

public function sortMenuLinksByMenuPreference(array &$menu_links) {
  $menu_preference = array_flip(menu_get_active_menu_names());
  $menu_preference_max = count($menu_preference);
  $index = 0;
  foreach ($menu_links as &$item) {
    if (!isset($menu_preference[$item->menu_name])) {
      $menu_preference[$item->menu_name] = $menu_preference_max;
    }
    $item = array(
      $index++,
      $item,
    );
  }
  $usort_result = usort($menu_links, array(
    new MenutrailbypathUsortMenulinks($menu_preference),
    'compare',
  ));
  foreach ($menu_links as &$item) {
    $item = $item[1];
  }
  return $usort_result;
}