Hi Leute, ich verzweifle!
Ich kann im Tempalte nicht auf $oxcmp_user->getId() zugreifen, warum denn nicht?
Mein Code sieht so aus:
<p> test: </p>
[{$oxcmp_user->getId()}]
Das Resultat ist eine leere Seite!
Hi Leute, ich verzweifle!
Ich kann im Tempalte nicht auf $oxcmp_user->getId() zugreifen, warum denn nicht?
Mein Code sieht so aus:
<p> test: </p>
[{$oxcmp_user->getId()}]
Das Resultat ist eine leere Seite!
http://docu.oxid-esales.com/CE/sourcecodedocumentation/4.4.4.30554/classoxcmp__user-members.html
Die Methode gibt es nicht.
[QUOTE=MBa;43629]http://docu.oxid-esales.com/CE/sourcecodedocumentation/4.4.4.30554/classoxcmp__user-members.html
Die Methode gibt es nicht.[/QUOTE]
Oh, ok, vielleicht ist dieser Schnipsel dann von einer alten Version? Ich möchte gerne im Admin-Bereich in einem Template einen speziellen Block nur für eine bestimmte Gruppe Anzeigen, daher dachte ich, ich das hier wäre ein Ansatz:
Nutzergruppen:<br />
[{ foreach from=$oxcmp_user->getUserGroups() item=oGroup}]
- [{$oGroup->oxgroups__oxtitle}]<br />
[{/foreach}]
Aber wenn diese Methoden nicht existieren, mit welchen könnte man das machen?
Viele Grüße,
FUJI
[QUOTE=FUJI;43642]Oh, ok, vielleicht ist dieser Schnipsel dann von einer alten Version? Ich möchte gerne im Admin-Bereich in einem Template einen speziellen Block nur für eine bestimmte Gruppe Anzeigen, daher dachte ich, ich das hier wäre ein Ansatz:
Nutzergruppen:<br />
[{ foreach from=$oxcmp_user->getUserGroups() item=oGroup}]
- [{$oGroup->oxgroups__oxtitle}]<br />
[{/foreach}]
Aber wenn diese Methoden nicht existieren, mit welchen könnte man das machen?
Viele Grüße,
FUJI[/QUOTE]
Die Methoden gibt es schon, nur nicht für oxcmp_user, sondern für oxuser.
oxUser::getUserGroups($sOXID = null)
Aber eigentlich möchtest Du ja nicht alle Gruppen des Users haben, sondern nur prüfen ob User in einer bestimmter Gruppe ist.
oxuser::inGroup($sGroupID)
Mit den oxcmp_user (oxsupercfg) Object kommst Du an oxuser drann.
oxcmp::getUser()
Mensch Markus!
Das ist genau das, was ich suche! Erst einmal vielen Dank für deine Antwort.
Kannst du mir noch etwas weiterhelfen? Ich weiß zwar jetzt wie die Methoden heißen die ich benötige, habe aber noch ein paar Probleme mit dem Syntax, da OXID für mich recht neu ist.
Genau wie du schon sagtest, möchte ich überprüfen ob der eingeloggte User in einer bestimmten Gruppe drin ist, nur dann soll etwas ausgegeben werden:
Dieser Code zeigt an, was ich gerne haben würde, ich schreibe es einfach mal in PHP, benötige es aber für ein OXID Template:
if (in_Group("superadmin", $currentUserGroups)) {
echo 'Sie sind in der Gruppe Superadmin';
echo 'Geheime Umsatzzahlen:...';
} else {
echo 'Sie sind nicht berechtigt!!!';
}
So - das hätte ich gerne jetzt in OXID - damit ich es in ein Template einfügen kann :-)))
Könntest du mir das kurz aufschreiben? 1.000 Dank vorab für deine sehr sehr gute Hilfe!
Gut wäre es, wenn ich nach der Gruppe per String suchen könnte, andernfalls müsste ich wohl die ID der Gruppe in der Datenbank erst auslesen?
FUJI
Kannst in /module/functions.php eigene Funktionen definieren.
In smarty kannst Du folgendermaßen draufzugreifen:
[{$parm1|[B]@[/B]functionName:$param2:$param3}]
Oder direkt ein Smarty-Plugin erstellen - spart das @ im Aufruf.
[QUOTE=MBa;43726]Kannst in /module/functions.php eigene Funktionen definieren.
In smarty kannst Du folgendermaßen draufzugreifen:
[{$parm1|[B]@[/B]functionName:$param2:$param3}]
Oder direkt ein Smarty-Plugin erstellen - spart das @ im Aufruf.[/QUOTE]
Hey Danke Markus,
also Variablen Übergeben per PHP funktioniert schonmal! Das ist ja mal ein Anfang.
Leider komme ich aber mit dem Objekt nicht weiter, mir fehlt einfach der Ansatz in der Schreibweise.
Funktioniert:
<?php
/**
* Add custom functions here.
*/
function testtest() {
$test = 'Das ist ein Test';
return($test);
}
?>
Im Template:
[{$parm1|@testtest:$param2:$param3}]
Funktioniert nicht:
<?php
/**
* Add custom functions here.
*/
function testtest() {
$test = oxcmp::getUser();
return($test);
}
?>
Im Template:
[{$parm1|@testtest:$param2:$param3}]
Und der andere Code - habe die Hoffnung noch nicht aufgegeben… funktioniert leider auch nicht mit dem oxUser:
Nutzergruppen:
[{ foreach from=$oxUser->getUserGroups() item=oGroup}]
- [{$oGroup->oxgroups__oxtitle}]<br />
[{/foreach}]
:eek:
Help me!
[QUOTE=FUJI;43730]Hey Danke Markus,
also Variablen Übergeben per PHP funktioniert schonmal! Das ist ja mal ein Anfang.
Leider komme ich aber mit dem Objekt nicht weiter, mir fehlt einfach der Ansatz in der Schreibweise.
Funktioniert:
<?php
/**
* Add custom functions here.
*/
function testtest() {
$test = 'Das ist ein Test';
return($test);
}
?>
Im Template:
[{$parm1|@testtest:$param2:$param3}]
[/quote]
Wo übergibst Du Variablen bzw. der Funktionskopf hat keine Parameter?
=> function testtest($parm1,$parm2,$parm3){…}
Funktioniert nicht:
<?php /** * Add custom functions here. */ function testtest() { $test = oxcmp::getUser(); return($test); } ?> Im Template: [{$parm1|@testtest:$param2:$param3}]
oxcmp => diese Klasse gibt es nicht soll wohl oxcmp_user sein.
oxcmp_user::getUser() => getUser() ist nicht statisch. (oxsupercfg:: public function getUser())
Und der andere Code - habe die Hoffnung noch nicht aufgegeben… funktioniert leider auch nicht mit dem oxUser:
Nutzergruppen:
[{ foreach from=$oxUser->getUserGroups() item=oGroup}] - [{$oGroup->oxgroups__oxtitle}]<br /> [{/foreach}]
:eek::( Help me! :-)
Versuche mal
function userInGroup($oxcmp_user,$sGroupId){
return $oxcmp_user->getUser()->inGroup($sGroupId);
}
[{$oxcmp_user|@userInGroup:'admin'}]
Natürlich währe es noch schön, wenn man den Gruppennamen anstatt die Gruppen-ID übergibt…
Hi,
muss hier mal den Thread ausgraben da ich gerade an dem gleichen Problem sitze.
Ziel ist es im Admin Bereich abzufragen ob ein User einer bestimmten Gruppe zugeordnet ist und je nach Zuordnung etwas angezeigt wird.
Evtl hat ja jemand ne Idee. Danke
[U]EDIT[/U]
Möglicherweise hilft es ja noch jemandem weiter!
public function isUser(){
$user = oxUser::getActiveUser();
if($user && $user->inGroup('oxidadmin')) {
echo "User ist Shop-Admin";
} else {
echo "User ist ein Looser";
}
}