Zum Inhalt springen

Front End Userid als Parameter übergeben

Erstellt am 6. Oktober 2004 · 1 Antwort · letzte Antwort am 20. Oktober 2004

Tags: Frage

Occ ·

Ich habe in meinem Template folgendes Problem:

Ich würde gerne die ID des eingeloggten Users als Variable in meinen link wrappen

der Code sieht so aus:

....

50.label = Persönliche Daten bearbeiten
50.label.typolink.parameter = 20
50.label.typolink.additionalParams.dataWrap = &type=0&rU={ hier sollte die Variable Stehen}&cmd=edit

Ich weiß dass man die PID über TSFE:id erhält

so etwas ähnliches sollte es doch auch für die ID des momentan in der Session eingeloggten Users geben?

Hope someone has the answer #paralyzed#
THX
Chriss

Occ ·

Da ich bis jetzt keine Möglichkeit in Typo-Skript gefunden habe, auf die Variable für die UserID zu zu greifen, musste ich es über PHP lösen.

Ich hab eine PHP-Datei in einem Ordner in fileadmin erzeugt. Und dort meine Klasse und die dazugehörige Methode geschrieben.

WICHTIG: Die Klasse bzw. diverse Funktionen müssen mit der Prefix beginnen die in der Typo3-Konfiguration vereinbart wurde. (ist im Normalfall => "user_")
PHP:CODE

<?php

class user_typolink_class {
var $cObj; // reference to the calling object.
function main($content,$conf) {
global $TSFE;
$temp=$TSFE->fe_user->user['uid'];
return '<A HREF="'.$content["url"].'&type=0&rU='.$temp.'&cmd=edit"'.
$content["targetParams"].$content["aTagParams"].'>';
}
}

?>

Um das ganze dann im Typo3-Script einzubinden muss ich zuerst mit
includeLibs.user_typolink = fileadmin/scripts/user_typolink.php
die Datei einbinden.

Hinweis: Da ich den Fehler gemacht habe, und die Datei innerhalb eines Objekts eingebunden habe, hat das ganze bei mir nicht funktioniert. (hat relativ lange gedauert den Fehler zu finden)
D.h. es muss außerhalb (in meinem Fall steht es gleich ganz oben im TS) platziert werden.

TS - Setup:

# ------------------------
# Login-FORM cObject - Login Formular
# ------------------------
includeLibs.user_typolink = fileadmin/scripts/user_typolink.php

styles.content.loginform = FORM
styles.content.loginform {
layout= <div>###LABEL###<br>###FIELD###</div>
redirect >
recipient >
data >
type >
labelWrap.wrap = {$styles.content.loginform.labelWrap}
fieldWrap.wrap = {$styles.content.loginform.fieldWrap}
commentWrap.wrap = {$styles.content.loginform.commentWrap}
radioWrap.wrap = {$styles.content.loginform.radioWrap}
REQ = 1
REQ.labelWrap.wrap = {$styles.content.loginform.REQ.labelWrap}
COMMENT.layout = ###LABEL###
#goodMess = {$styles.content.loginform.goodMess}
badMess = {$styles.content.loginform.badMess}
dataArray {
10.label = Benutzername:
10.type = *user=input,15,15
20.label = Passwort:
20.type = *pass=password,15,15
30.type = logintype=hidden
30.value = login
40.type = submit=submit
40.value = Anmelden
50.label = Wollen Sie sich registrieren?
50.label.typolink.parameter = 19
60.label = Passwort vergessen?
60.label.typolink.parameter = 19
60.label.typolink.additionalParams = &type=0&cmd=infomail
}
params.submit = {$styles.content.loginform.params}
type.field = pages
type.listNum = 0
target = {$styles.content.loginform.target}
locationData = 0
hiddenFields.pid = TEXT
hiddenFields.pid {
value = {$styles.content.loginform.pid}
override.field = pages
override.listNum = 1
}
}

[usergroup = *]
styles.content.loginform {
dataArray >
dataArray {
10.label = Benutzername-normal: <!--###USERNAME###-->
20 >
30.type = logintype=hidden
30.value = logout
40.type = submit=submit
40.value = Abmelden
50.label = Persönliche Daten
50.label.typolink{
parameter = 19
userFunc = user_typolink_class->main
}
}
}
[global]

TS-Constants:

styles.content.loginform {
fieldWrap =
labelWrap =
commentWrap =
radioWrap =
REQ.labelWrap =
params = style ="border:1px solid #F5BC57; background-color:#777777; color:white; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;"
target = _top
# cat=content/cLogin; type=int+; label= PID of user archive: Enter the page-uid number (PID) of the sysFolder where you keep your fe_users that are supposed to login on this site. This setting is necessary, if login is going to work!
pid = 2
# cat=content/cLogin; type=; label= Message, Login: This is the message (if any) that is popped-up when a user logs in as a front-end user
#goodMess = Sie sind angemeldet!
badMess = Sie müssen alle Felder ausfüllen!
comment_type2 = #
}

Es lässt sich bestimmt einfacher lösen - Aber für einen Anfänger reichts 8-)