Hallo *,
ich möchte einen Link auf einen externen Server um den Benutzernamen als Parameter erweitern.
Bisher sieht es so aus:
<link http://ein.ziel.de/path - external-link-new-window/>Externes Ziel</link>
<a href="http://ein.ziel.de/path" target_blank="">Externes Ziel</a>
Ziel soll folgendes sein:
<a href="http://ein.ziel.de/path?user_id=<fe_user>" target"_blank">Externes Ziel</a>
Wie könnte man das lösen? Als Value zum Parameter soll der FE-Benutzername des angemeldeten Benutzer verwendet werden.
Ich hatte mich mal mit folgendem Konstrukt gespielt, aber es hat nicht wirklich was gebracht.
link.xxx = TEXT
link.xxx.typolink.parameter= http://ein.ziel.de/path
link.xxx.typolink.additionalParams = &uid={TSFE:fe_user|user|username}
link.xxx.typolink.insertData = 1
Ein bissl durch en Quellcode gequält und mir folgende Lösung ausgedacht:
Anstatt nur 4 Parameter für einen Typolink auszuwerten, verwende ich 5.
Der letzte wird nur als Platzhalter für den evtl. anzugebenden Benutzernamen verwendet.
Änderung an der .../typo3/sysext/cms/tslib/class.tslib_content.php
function typolink($linktext, $conf) Zeile 5037 ff.
1.) Zeile 5083 einfügen -> liest aus der Config jetzt den 5. Parameter
5082: $linkClass = trim($link_paramA[2]);
5083: $linkUser = trim($link_paramA[4]);
5084: if ($linkClass=='-') $linkClass = '';
2.) den 5. Parameter als GET-Parameter verwenden und mit dem Benutzernamen erweitern (vor dem Erstellen des HREF-Tags)
5328: if ($linkUser){
5329: $spacer = $finaleTagParts['url'].strpos('?')?'&':'?';
5330: $finalTagParts['url'] = $finalTagParts['url'].'?'.$linkUser.'='.$GLOBALS["TSFE"]->fe_user->user["username"];
5331: } }
3.) jetzt kann im TYPO3 folgender Link verwendet werden:
<link http://test - - "titel" username>Test</link>
erzeugt dann folgenden Link:
<a href="http://test?username=einBenutzer" title="titel">Test</a>
Ich weiß, es ist sehr schmutzig, aber besser wie keine Lösung.
Kleiner Schönheitsfehler: der Link sollte kein '?' enthalten oder mein Fragezeichen zu einem '&' wandeln. Ist aber eine Fleißaufgabe und nicht prüfungsrelevant.
Steht immer noch die Frage im Raum: Gibt es eine bessere Lösung?