Frage zu hook_menu_alter
Eingetragen von kissinger (32)
am 04.02.2011 - 23:39 Uhr in
am 04.02.2011 - 23:39 Uhr in
Hallo!
Ich verwende Drupal 6 und möchte den Zufriff auf die User-Profile beschränken, habe es mit drupal_access_denied() versucht, klappt aber nicht ganz weil noch die Menüpunkte Ansicht und Kontakt angezeigt werden.
Nun habe ich in einem anderen Forum eine Lösung gefunden die aber leider nicht funktioiniert.
Warum klappt das nicht und wie kann man das Problem lösen?
Ich möchte das wenn ein unberechtigter Nutzer ein Profil aufrufz die Meldung
Zugriff verweigert
Sie haben keine Zugriffsberechtigung für diese Seite.
erscheint.
Hier der Code:
function user_relationships_ui_menu_alter(&$items) {
$items['user/%user_uid_optional']['access callback'] = 'custom_module_profile_access';
}
function custom_module_profile_access() {
$my_complex_logic = FALSE;
return $my_complex_logic;
}
- Anmelden oder Registrieren um Kommentare zu schreiben
Funktionsname
am 05.02.2011 - 02:52 Uhr
Der Funktionsname von Hooks muss das "hook_" gegen Deinen Modulnamen austauschen. Da Du in der 2. Funktion custom_module als Präfix verwendest, also so:
<?php
function custom_module_menu_alter(&$items) {
$items['user/%user_uid_optional']['access callback'] = FALSE;
// No function, so no arguments needed.
unset($items['user/%user_uid_optional']['access arguments']);
}
?>
Wenn Du dann nicht einmal mehr Deinen eigenen Account aufrufen kannst, funktioniert es.
Ich Depp ...
am 05.02.2011 - 09:17 Uhr
habe den Fehler gefunden.
Ich hatte die Funktion innerhalb einer andern Funktion eingefügt, naja ...
Noch eine Frage hierzu:
In der Tabelle menu_router wird der Menü-Link übrigens nicht als "user/%user_uid_optional", sondern als "user/%" gespeichert.
Warum ist das so?
Danke!