function domain_menu_access_translated_menu_link_alter in Domain Menu Access 6
Same name and namespace in other branches
- 7 domain_menu_access.module \domain_menu_access_translated_menu_link_alter()
Implementation of hook_translated_menu_link_alter().
File
- ./
domain_menu_access.module, line 41 - Extension for Domain module, which allows showing/hiding menu items per domain.
Code
function domain_menu_access_translated_menu_link_alter(&$item, $map) {
global $_domain;
// Do not hide menu item when we are editing either a specific menu item,
// or a menu it belongs to, to avoid setting it to hidden it by accident.
// The challenge here is that we want to keep original $item['hidden']
// value only in the menu item edit form, while still use value altered
// by this hook when menu item is displayed outside of edit form.
// @TODO: Rethink?
// I still don't quite like this check, although it's already better
// (again) compared to its previous versions.
if ($_GET['q'] == 'admin/build/menu-customize/' . $item['menu_name'] || $_GET['q'] == "admin/build/menu/item/{$item['mlid']}/edit") {
foreach (debug_backtrace() as $trace) {
if (in_array($trace['function'], array(
'menu_overview_form',
'menu_get_item',
))) {
return;
}
}
}
// Process menu items to be shown per domain.
if (isset($item['options']['domain_menu_access']['show']) && count($item['options']['domain_menu_access']['show']) && $item['hidden'] == 0) {
$item['hidden'] = isset($item['options']['domain_menu_access']['show']['d' . $_domain['domain_id']]) && $item['options']['domain_menu_access']['show']['d' . $_domain['domain_id']] ? 0 : 1;
}
// Process menu items to be hidden per domain.
if (isset($item['options']['domain_menu_access']['hide']['d' . $_domain['domain_id']]) && $item['hidden'] == 0) {
$item['hidden'] = $item['options']['domain_menu_access']['hide']['d' . $_domain['domain_id']] ? 1 : 0;
}
}