function menu_item_visibility_load in Menu Item Visibility 7
Load all visibility data for a menu link.
2 calls to menu_item_visibility_load()
File
- ./
menu_item_visibility.module, line 63 - Alters the menu item form to specify roles who are allowed to view them.
Code
function menu_item_visibility_load($mlid, $reset = FALSE) {
// Use the advanced drupal_static() pattern, since this is called very often.
static $drupal_static_fast;
if (!isset($drupal_static_fast)) {
$drupal_static_fast['visibilities'] =& drupal_static(__FUNCTION__);
}
$visibilities =& $drupal_static_fast['visibilities'];
// If we haven't stored them all in the static build them from the database.
if (!isset($visibilities) || $reset) {
// Select all menu link ids and their role ids.
$result = db_select('menu_links_visibility_role', 'r')
->fields('r', array(
'mlid',
'rid',
))
->execute()
->fetchAll(PDO::FETCH_ASSOC);
$visibilities = array();
foreach ($result as $record) {
$visibilities[$record['mlid']][] = $record['rid'];
}
}
$visibility['roles'] = !empty($visibilities[$mlid]) ? $visibilities[$mlid] : array();
if (!empty($mlid)) {
drupal_alter('menu_item_visibility_load', $visibility, $mlid);
}
return $visibility;
}