hallo!
ich moechte ueber eine condition abfragen, ob die uid des eingeloggten users der GET-variable 'uid' entspricht.
weiss jemand warum das nicht funktioniert?
[globalVar = TSFE:fe_user|user|uid = GP:uid]
kennt jemand eine alternative moeglichkeit?
danke schonmal,
fabian
Indem du eine userfunction dafür bastelst und in eine Condition einfügst?
ich fuercht dafuer reichen meine typo3/php-kenntnisse nicht aus...
ich frag mich, warum mein ansatz nicht funktioniert. zu viele variablen?
Hallo,
weil Du Variable mit Variable vergleichst.
globalVar erwartet auf der rechten Seite des Vergleichsoperators einen numerischen Wert.
VG,
LuP
Ich bin leider nicht so firm was die userFunc als Condition angeht, aber laut
ScriptReferenz hier solltest du so zu schlag kommen:
1. Lege eine Datei an 'typo3conf/my_user_functions.inc.php'
2. in deine localconf.php schreibst fügts du eine Zeile nach dem letzen "?>" hinzu,
die Datei endet dann so:
?>
<?php include 'my_user_functions.inc.php'; ?>
Die Zeile mit dem include ist neu hinzugekommen. Scheinbar funktioniert das einbinden mit includeLibs nicht immer sauber.
3. Die 'my_user_functions.inc.php' bekommt nachfolgenden Inhalt:
<?php
function user_check_guid() {
//hier befindet sich ein array mit den zugewiesen gruppen-ids des benutzers bzw ein leeres array wenn dieser nicht angemeldet ist
@$gid = $GLOBALS['TSFE']->fe_user->groupData['uid'];
if(!isset($gid) || empty($gid)) { return false; }
if(isset($_GET['uid']) && in_array((int)$_GET['uid'],$gid)) {
return true;
} else { return false; }
}
?>
Im TS schreibst du
[userFunc = user_check_guid()]
mach was wenn gruppen id die aktuelle 'uid' aus dem GET-Parameter enthält
[global]
So müsste ohne Parameterübergabe die GET-Variable 'uid' mit den zugewiesenen Gruppen abgeglichen werden.
Sollte sich der Herr Teufel eingeschlichen haben, bitte ich um Weihwasser oder entsprechende Hinweise
wow, vielen dank fuer muehe - jetzt funktionierts ; )
habs ein wenig angepasst, weil ich nicht die user-gruppe sonder die user-id abfragen will:
function user_check_userid() {
@$userid = $GLOBALS['TSFE']->fe_user->user['uid'];
if(!isset($userid) || empty($userid)) { return false; }
if(isset($_GET['uid']) && $_GET['uid']==$userid) {
return true;
} else { return false; }
}
und bei der condition brauchts glaub die klammern () nicht:
[userFunc = user_check_userid]
statt
[userFunc = user_check_userid()]
danke nochmal ; )