UserGruppe im template auslesen, nur wie?

Hallo Leute,

hänge etwas fest. Hat jemand einen Tip für mich, irgendwie verstehe ich die ganze syntax noch nicht so richtig.Ich möchte in meinen Templates die Usergruppe des angemeldeten Users auslesen. Bekomme das aber nicht hin.Über [{$oxcmp_user->oxuser__oxid->value}] bekomme ich ja schonmal seine oxid.

In der oxuser.php habe ich schonmal public function getUserGroups( $sOXID = null ) { if ( isset( $this->_oGroups ) ) { return $this->_oGroups; } if ( !$sOXID ) { $sOXID = $this->getId(); } $this->_oGroups = oxNew( ‘oxlist’, ‘oxgroups’ ); //$this->oGroups->Init( ‘oxbase’ ); //$this->oGroups->oLstoTpl->Init( array( ‘oxgroups’, ‘oxobject2group’ ) ); $sSelect = 'select oxgroups.* from oxgroups left join oxobject2group on oxobject2group.oxgroupsid = oxgroups.oxid ‘; $sSelect .= ‘where oxobject2group.oxobjectid = "’.$sOXID.’" '; $this->_oGroups->selectString( $sSelect ); return $this->_oGroups; }

gefunden.

Aber wie verwurste ich das jetzt in meinem template, das er mir die Benutzergruppen ausgibt. Stehe etwas auf dem Schlauch.DankeDerTom

Erledigt. Jetzt geht´s

Habe nun eine globale smarty Variable mit meiner Usergruppe.

Hallo,

vielen Dank für die Rückmeldung. Willst Du uns noch verraten, wie das ganze als Code-Schnippel aussieht?

Danke + Gruß


Marco Steinhäuser
Community Guide
OXID eSales AG

Hmm hier binc ich wohl zu spät, aber dennoch nochmal 2 Tipps zu o.g. Problem

  1. die ID des Nutzers lieber über $oxcmp_user->getId() abfragen

  2. um die nutzergruppen im template zu listebn einfach [{ foreach from=$oxcmp_user->getUserGroups() item=oGroup}] aufrufen und dann in der Loop machen was man will :slight_smile:

Grüße

Mathias

Untenstehenden Schnipsel ins Template packen, und schon bekommt man eine hübsche Liste aller Gruppen, in denen der Kunde ist:


Nutzergruppen:<br /> 
[{ foreach from=$oxcmp_user->getUserGroups() item=oGroup}]
- [{$oGroup->oxgroups__oxtitle}]<br />
[{/foreach}] 

Nachtrag: Unbedingt vor Einbau des Schnipsels mit [{ if $oxcmp_user}] checken, ob Kunde eingeloggt ist (siehe weiter unten im Thread)

[QUOTE=floko;43499]Untenstehenden Schnipsel ins Template packen, und schon bekommt man eine hübsche Liste aller Gruppen, in denen der Kunde ist:


Nutzergruppen:<br /> 
[{ foreach from=$oxcmp_user->getUserGroups() item=oGroup}]
- [{$oGroup->oxgroups__oxtitle}]<br />
[{/foreach}] 

[/QUOTE]

Wenn ich das in die _right.tpl einfüge, verreist es mir das komplette Layout und er spuckt Fehler aus:

Fatal error: Call to a member function getUserGroups() on a non-object in /Pfad/tmp/1ad2c631ef0dd8dd4c8241afc3631eec^%%64^64A^64AE1027%%_right.tpl.php on line 230

Hallo,

ich habe das Problem, dass OXID nicht richtig geparst wird, sobald ich diesen Schnipssel in ein Template Packe.

Kann es sein, dass ich auf diese Variablen keine Zugriff habe - ich habe die Professionel Edition:

Nutzergruppen:<br /> 
[{ foreach from=$oxcmp_user->getUserGroups() item=oGroup}]
- [{$oGroup->oxgroups__oxtitle}]<br />
[{/foreach}]  

Oxid bricht ab dieser Stelle ab, - das Resultat ist eine leere Seite. WArum?

Hallo FUJI und jschma,
sorry, das funktioniert so nur, wenn der Nutzer schon eingeloggt ist.
Am Besten also mit der Bedingung

[{ if $oxcmp_user}]

abfangen.

Komplett sollte das dann so aussehen (nicht getestet):


[{ if $oxcmp_user}] [{* if logged in *}]
Nutzergruppen:<br /> 
[{ foreach from=$oxcmp_user->getUserGroups() item=oGroup}]
- [{$oGroup->oxgroups__oxtitle}]<br />
[{/foreach}]  
[{ /if }]

Hallo.
Ich möchte gerne den User je nach Kundengruppe ansprechen.

Ich stelle mir das so vor:
[{ if $oxcmp_user}]
{if usergruppe==“PreisA”
->“du bist eingeloggt und Bekommst unsere A Preise”
}
else
"bitte log dich ein!"

Kann mir das jemand in Oxidisch übersetzen?

Würde mich auch sehr interessieren wie ich NICHT EINGELOGGTEN sowie der Kundengruppe “NOCH NICHT GEKAUFT” einen rabattierten Preis präsentieren kann.

[{ if $oxcmp_user && [{$oGroup->oxgroups__oxtitle_>value = "Noch nicht gekauft"}]}]
asdfasdfasdf
[{ /if }]  

Oder wie oder was? :smiley: Kann mir jemand helfen?

Dankeschön.