Zum Inhalt springen

Aufbau dynamischen Link mit Typoscript

Erstellt am 16. Juli 2008 · 8 Antworten · letzte Antwort am 2. August 2008

Tags: Frage

mccoy ·

Hallo,

ich bin noch neu mit TS und habe eine ziemlich knifflige Aufgabe zu lösen:

Ich habe einen externen Link mit typolink gebaut und möchte diesem eine ID aus der fe_user tabelle anhängen. Diese ID ist bei jedem FE-User anders. D.h. je nach dem wer angemeldet ist und auf den Link klickt, soll eine andere ID an den Link angehängt bekommen.

Meine ersten Gehversuche(!!) sehen so aus:

Erzeugung des Typolinks:

page.10.subparts.rightBlock.25 = TEXT
page.10.subparts.rightBlock.25.value = Link zu externer URL
page.10.subparts.rightBlock.25.typolink.parameter = http://externeDomain.de
#das ist die ID die dynamisch angehängt werden soll - hier statisch zum testen
//page.10.subparts.rightBlock.25.typolink.parameter.wrap = | &ID=1119346746359
page.10.subparts.rightBlock.25.typolink.target = _self

VERSUCH der Abfrage der ID je nach Nutzer mit TS

temp.sfid = COA
  temp.sfid {
    10.table = fe_user
    10.select{
      selectFields = [mein_ID_Feld_in_der_FE_USER]
      andWhere.dataWrap = uid={TSFE:fe_user|user|uid}
    }
}

Selbst wenn die Abfrage so funktioniert(?), wie bekomme ich diese als Parameter an meinen typolink gehängt? Macht es Sinn die Abfrage in einen Kontainer zu schachteln?

Wäre für alle Ideen und Hilfen sehr dankbar!

Viele Grüße
Andy

mccoy ·

Hi,

wie meinst du das? Ich denke ich brauche die UID als Bedingung. Ich möchte ja eigentlich den Wert "[mein_ID_Feld_in_der_FE_USER]" je nach UID bekommen.

Das passende SQL Statement sehe in etwa so aus:
SELECT 'mein_ID_Feld_in_der_FE_USER' FROM 'fe_user' WHERE UID = 'aktuelle UID'

mccoy ·

Hallo,

ich bin nun etwas weiter. Ich habe ein Mailing von 2005 gefunden, wo R.Lemke meinte, dass man die aktuelle USER ID nur per PHP Script abfragen kann. Ich weiss nicht ob das noch aktuell ist, aber somit habe ich schon mal die jeweilige ID von meinem Feld für jeden FE-User.

<?php
debug( $conf );
$GLOBALS["TSFE"]->set_no_cache();
$userid = $GLOBALS['TSFE']->fe_user->user['meinFeld'];
$content = $userid;
?>

dieses binde ich dann per TS ein:

[globalVar = TSFE:id = {$shopPID}]
temp.phpScript = PHP_SCRIPT
temp.phpScript {
  file = pfad/zur/datei/getUserId_inc.php
}
page.10.subparts.subNav.5 = < temp.phpScript
[end]

Naja, nun habe ich zumindest die ID. Wie kann ich nun an einem Typolink diese ID anhängen. addAdditionalParameters funzt ja nur mit interen Links?

Ich weiß grad nicht weiter... #paralyzed#

steffenk ·
page.10.subparts.rightBlock.25.typolink.parameter.dataWrap = http://externeDomain.de?id={TSFE:fe_user|user|uid}
mccoy ·

Hallo Steffen,

vielen dank!

Ich will zwar nicht die UID anhängen, aber so geht es auch:

page.10.subparts.rightBlock.25.typolink.parameter.dataWrap = http://externeDomain.de?id={TSFE:fe_user|user|tx_meinFeldMitID}

Und ich mach mir da nen Wolf... :o - bei einer eigentlich so einfachen Lösung.
Tja gewusst wie...

Aber ich übe ja noch die TSREF lesen zu lernen... #paralyzed#

Viele Grüße
Andy

workfare ·

Danke für den Weg in die richtige Richtung, aber ich brauche noch Hilfe ....
Ich will den Link auf einen Marker legen:

page.10.marks.ANMELDEN = COA
ANMELDEN {
typolink.parameter.dataWrap = http://url/?username={TSFE:fe_user|user|username}&email={TSFE:fe_user|user|email}
wrap = Los gehts:|
}

führt leider zu keiner Ausgabe - und ich habe das sichere Gefühl, ich mache fundamental was falsch ......
Tipps?
Bedank
/
Jens

steffenk ·

jo, da ist was falsch 🙂

COA ist nur ein Container und kein Element!

page.10.marks.ANMELDEN = COA
page.10.marks.ANMELDEN {
   10 = TEXT
   10.value = link
   10.typolink.parameter.dataWrap = http://url/?username={TSFE:fe_user|user|username}&email={TSFE:fe_user|user|email}
   10.wrap = Los gehts:|
}
workfare ·

Danke ;-)
Und wieder was gelernt, gut dass ich gefragt habe und Danke für die Antwort.
Baue das Montag ein
Schönes WE
/
Jens