menu_tree_check_access

Versions
6 – 7
menu_tree_check_access(&$tree, $node_links = array())

Check access and perform other dynamic operations for each link in the tree.

Parameters

$tree The menu tree you wish to operate on.

$node_links A collection of node link references generated from $tree by menu_tree_collect_node_links().

Related topics

▾ 4 functions call menu_tree_check_access()

book_menu_subtree_data in modules/book/book.module
Get the data representing a subtree of the book hierarchy.
menu_overview_form in modules/menu/menu.admin.inc
Form for editing an entire menu tree at once.
menu_tree_all_data in includes/menu.inc
Get the data structure representing a named menu tree.
menu_tree_page_data in includes/menu.inc
Get the data structure representing a named menu tree, based on the current page.

Code

includes/menu.inc, line 999

<?php
function menu_tree_check_access(&$tree, $node_links = array()) {

  if ($node_links) {
    // Use db_rewrite_sql to evaluate view access without loading each full node.
    $nids = array_keys($node_links);
    $placeholders = '%d'. str_repeat(', %d', count($nids) - 1);
    $result = db_query(db_rewrite_sql("SELECT n.nid FROM {node} n WHERE n.status = 1 AND n.nid IN (". $placeholders .")"), $nids);
    while ($node = db_fetch_array($result)) {
      $nid = $node['nid'];
      foreach ($node_links[$nid] as $mlid => $link) {
        $node_links[$nid][$mlid]['access'] = TRUE;
      }
    }
  }
  _menu_tree_check_access($tree);
  return;
}
?>
Login or register to post comments
 
 

All source code and documentation on this site is released under the terms of the GNU General Public License, version 2 and later. Drupal is a registered trademark of Dries Buytaert.