function _menu_tree_check_access

Sorts the menu tree and recursively checks access for each item.

Related topics

1 call to _menu_tree_check_access()
menu_tree_check_access in includes/menu.inc
Checks access and performs dynamic operations for each link in the tree.

File

includes/menu.inc, line 1531

Code

function _menu_tree_check_access(&$tree) {
    $new_tree = array();
    foreach ($tree as $key => $v) {
        $item =& $tree[$key]['link'];
        _menu_link_translate($item);
        if ($item['access'] || $item['in_active_trail'] && strpos($item['href'], '%') !== FALSE) {
            if ($tree[$key]['below']) {
                _menu_tree_check_access($tree[$key]['below']);
            }
            // The weights are made a uniform 5 digits by adding 50000 as an offset.
            // After _menu_link_translate(), $item['title'] has the localized link title.
            // Adding the mlid to the end of the index insures that it is unique.
            $new_tree[50000 + $item['weight'] . ' ' . $item['title'] . ' ' . $item['mlid']] = $tree[$key];
        }
    }
    // Sort siblings in the tree based on the weights and localized titles.
    ksort($new_tree);
    $tree = $new_tree;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.