Rollengesteuerte Anzeige von Blöcken
am 04.03.2012 - 13:27 Uhr in
Hallo,
ich möchte einen Block ausschißlich auf Unternehmensprofilen anzeigen. Inhaber eines Unternehmensprofils haben die gleichnamige Rolle automatisch bei der Anmeldung zugewiesen bekommen. Jetzt verwende ich einen Code, der bei einem anderen Block funktioniert. Hier allerdings nicht.
<?php
if (arg(0) == 'user' && is_numeric(arg(1)) && arg(2)=='') {
$user = user_load(arg(1));
if (in_array('Unternehmensprofil', $user->roles))
{
return TRUE;
}
else
{
return FALSE;
}}
?>Ich verstehe das nicht. Warum wird der Block bei einem Unternehmesprofil angezeigt und bei einem andern mal einfach nicht, obwohl alles identisch eingestellt ist.
- Anmelden oder Registrieren um Kommentare zu schreiben

Du kannst die Sichtbarkeit
am 04.03.2012 - 14:42 Uhr
Du kannst die Sichtbarkeit von Blöcken doch auch direkt im Block einstellen - da braucht es kein extra Code-Snippet welches dir die aktuelle Rolle des Nutzers ausliest. Schau dir mal den folgenden Screenshot an - dort siehst du einen Reiter "Rollen" und dieser steuert die Sichtbarkeit auf Rollenbasis.

Dies sollte sich dann auch mit seitenspezifischen Sichtbarkeit kombinieren lassen. Hier würde es dann reichen diese auf:
useruser/*
SteffenR
in diesem Zusammenhang möchte
am 04.03.2012 - 15:18 Uhr
in diesem Zusammenhang möchte ich noch das Kontext-Modul erwähnen, welches eine sehr genaue Steuerung der Ansichten von Blöcken ermöglicht.
Ein Eingriff in den Code ist dafür sicherlich nicht notwendig.
Gruß
Berthold Lausch