TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

[globalVar = TSFE:fe_user|user|uid = GP:uid]


Autor Nachricht
Verfasst am: 18. 02. 2012 [15:24]
fabrix
Themenersteller
Dabei seit: 18.10.2010
Beiträge: 12
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
Profil
Verfasst am: 21. 02. 2012 [21:26]
jousch
Dabei seit: 18.04.2006
Beiträge: 320
Indem du eine userfunction dafür bastelst und in eine Condition einfügst?

ProfilWWWSkype
Verfasst am: 28. 02. 2012 [20:20]
fabrix
Themenersteller
Dabei seit: 18.10.2010
Beiträge: 12
ich fuercht dafuer reichen meine typo3/php-kenntnisse nicht aus...

ich frag mich, warum mein ansatz nicht funktioniert. zu viele variablen?
Profil
Verfasst am: 28. 02. 2012 [21:23]
LuP
Dabei seit: 12.04.2007
Beiträge: 491
Hallo,

weil Du Variable mit Variable vergleichst.

globalVar erwartet auf der rechten Seite des Vergleichsoperators einen numerischen Wert.

VG,
LuP
Profil
Verfasst am: 29. 02. 2012 [00:14]
Chrissli
Dabei seit: 19.04.2010
Beiträge: 503
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
?>
<?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
<?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
TYPOSCRIPT
[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

God's in his Heaven -
All's right with the world!
ProfilICQ
Verfasst am: 29. 02. 2012 [12:18]
fabrix
Themenersteller
Dabei seit: 18.10.2010
Beiträge: 12
wow, vielen dank fuer muehe - jetzt funktionierts ; )

habs ein wenig angepasst, weil ich nicht die user-gruppe sonder die user-id abfragen will:

PHP
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:
TYPOSCRIPT
[userFunc = user_check_userid]

statt
TYPOSCRIPT
[userFunc = user_check_userid()]


danke nochmal ; )
Profil