[Gelöst] hook_menu_alter: Tab nur dann anzeigen lassen, wenn Mitglied bestimmte Berechtigung fehlt
Eingetragen von Peter Majmesku (656)
am 20.10.2010 - 16:47 Uhr in
am 20.10.2010 - 16:47 Uhr in
Hi,
ich möchte gerne folgenden Tab anzeigen lassen, wenn dem Mitglied die Berechtigung zu "create instant_buy products" fehlt.
$items['user/%user/../../node/add/foobar'] = array(
'title' => 'Foobar',
'page callback' => 'alternative_auction_object',
'page arguments' => array(1, 'user'),
'access callback' => 'user_access',
'access arguments' => array('access content'),
'type' => MENU_LOCAL_TASK,
'weight' => 99,
);
Weis jemand, was ich angeben muss?
- Anmelden oder Registrieren um Kommentare zu schreiben
Probier mal, ob das über
am 20.10.2010 - 17:58 Uhr
Probier mal, ob das über einen eigenen access_callback funktioniert:
<?php
function my_module_menu_alter(&$items)
{
$items['user/%user/../../node/add/foobar'] = array(
'title' => 'Foobar',
'page callback' => 'alternative_auction_object',
'page arguments' => array(1, 'user'),
'access callback' => 'my_module_own_access_callback',
'access arguments' => array('create instant_buy products'),
'type' => MENU_LOCAL_TASK,
'weight' => 99,
);
//und noch der ganze Rest von hook_menu_alter...
}
function my_module_own_access_callback($access_string)
{
//User laden, damit dessen Rechte geprüft werden können
global $user;
$value = '';
/* $value mit dem Gegenteil der user_access-Funktion belegen
(wenn user die Berechtigung nicht hat, ist user_access FALSE
--> $value ist TRUE
--> access_callback ist TRUE und der User sieht den Tab)
*/
$value = !user_access($access_string, $user))
return $value;
}
?>
Dickes Ding!
am 20.10.2010 - 21:47 Uhr
Hi Exterior,
dein Code ist phantastisch. Es klappt haargenau wie ich es will. Vielen herzlichen Dank!
- j