Abfrage nach Gruppenzugehörigkeit

Hallo.

Ich möchte gerne in den *.tpl Dateien Bereiche je nach Nutzergruppe ein-/ausblenden. Nun habe ich hier im Forum bereits etwas über die Funktion inGroup(‘GRUPPE’) gelesen. Diese wird dann in den Views auf die darin vorhandenen Userobjekte angewandt. Diese Funktion bräuchte ich nun in den Templates. Da ich nicht jede View entsprechend erweitern will hier die Frage ob es eine Lösung dazu gibt.

Vielen Dank,

Christian Lehmann

Um mich selber zu beantworten:

$oxcmp_user->inGroup(‘GRUPPE’)

funktioniert. Wobei man bedenken muss dass GRUPPE die oxid der Gruppe ist … und nicht der Gruppenname.

Die oxid der Gruppe erfährt man über die DB.

Kann man auch den Rabatt abfragen, der einem Kunden eingerichtet wurde ?

Hallo,
bei mir funktioniert diese Abfrage aber nicht:

[{$oxcmp_user->inGroup(‘oxidpriceb’)}]

Es kommt beim Aufruf der Seite die Fehlermeldung:
Fatal error: Call to a member function inGroup() on a non-object in /home/www/test

Es soll abgefragt werden, ob der angemeldete User zur Kundengruppe Preis B gehört. Arbeite mit der CE 4.5.3 Basic template.

Ich würde mich freuen, wenn mir jemand sagen kann wie die Abfrage in der Version 4.5.3 funktioniert.
Vielen Dank.

Gruß Harry

Hallo,

ich hatte bis gerade auch das Problem, mit der Fehlermeldung

Fatal error: Call to a member function inGroup() on a non-object in /home/www/xxx

Hintergrund: Die Fehlermeldung erscheint wenn man abfragt, ob der Benutzer in einer Gruppe ist mit [{$oxcmp_user->inGroup(‘xxx’)}] und es ist kein Benutzer angemeldet am System. Dann existiert für den Shop kein Benutzer und wo kein Benutzer, da kann man auch nicht prüfen ob der in einer Gruppe ist…

Ich habe mir dann wie folgt geholfen. Ich erstelle mir eine Variable / einen kleinen Helfer. Der bekommt den Wert der Benutzer ist nicht in der Gruppe (Zeile 1). Dann Prüfe ich ob ein Benutzer existiert (Zeile 2), wenn dies der Fall ist kann ich auch prüfen ob der Benutzer der gewünschten Gruppe angehört (Zeile 3) und sollte das auch noch zutreffen dann kann speicher ich mir dies in meiner Variable / teile dies meinem kleinen Helfer mit (Zeile 4). Ist kein Benutzer angemeldet oder der Benutzer nicht in meiner Gruppe dann greift die Zeile 1, dass der Benutzer nicht der Gruppe angehört.

Dann Prüfe ich an entsprechender Stelle den Wert meiner Variable / frage meinen Helfer (Zeile 8) ob der Benutzer in der Gruppe ist und kann so vernünftig arbeiten ohne Fehlermeldungen :slight_smile:

[{ assign var=IsOxidDealer value=false }]
[{ if $oxcmp_user }]
[{ if $oxcmp_user->inGroup( ‘oxiddealer’ ) }]
[{ assign var=IsOxidDealer value=true }]
[{ /if }]
[{ /if }]

[{ if $IsOxidDealer }]
Yeha, ich bin Händler :slight_smile:
[{ else }]
Yeha, ich bin kein Händler :slight_smile:
[{ /if }]

Schöne Grüße,

mr.tee

Ich denke das ginge auch etwas kürzer:


[{if $oxcmp_user && $oxcmp_user->inGroup('blub')}]
ist in gruppe
[{else}]
ist nicht in gruppe
[{/if}]

… und wenn die Klasse $oxcmp_user nicht zur Verfügung steht ich die Funktion inGroup() aber trotzdem aufrufen möchte … kann ich $oxcmp_user auch manuell “befüllen” ???

$oxcmp_user = OXID des Users

oder würde es nur per Modul klappen??

$oxcmp_user steht doch überall zur Verfügung in den Templates? Das “if” ist nur die Abfrage ob ein Benutzer eingeloggt ist, sonst gibt’s das nicht.