Ich suche seit längerem verzweifelt und ohne Erfolg eine Möglichkeit um externe Links umzuleiten.
Dabei soll automatisch vor die im BE eingegebene externe URL im FE ein "extlink.php?url=" eingefügt werden. Um zB. über die php-Datei zu speichern wie oft welcher Link aufgerufen wurde.
Viele Dank schon im Voraus.
wenn du eine solche PHP Datei schon hast, versuch doch hier mal ein bisschen mit rum
#39948
hier geht es um die Konfiguration des RTE
hiermit wird z.B. das Bild vor externen Links entfernt
# *** Entfernt das Bild vor den Links
RTE.classesAnchor {
externalLink {
class = external-link
type = url
image >
}
}
vielleicht kann man hier das ganze auch ein wenig so hinbiegen das halt deine erwähnte PHP datei davor geschrieben wird.
Ansonsten würde ich vielleicht mal nach Extensions googeln oder direkt unter typo3.org/extensions schauen ob es da nicht was gibt was deine Anforderungen erfüllt
EDIT:
habe ich gerade noch gefunden,
#Andere Formatierung für interne und externe Links
tt_content.text.20.parseFunc.tags.link >
tt_content.text.20.parseFunc.tags.link = COA
tt_content.text.20.parseFunc.tags.link {
10 = TEXT
10.value = [I]
10.if {
value = 0
isGreaterThan.data = parameters:allParams
isGreaterThan.intval = 1
}
20 = TEXT
20.value = [E]
20.if {
value = 0
isGreaterThan.data = parameters:allParams
isGreaterThan.intval = 1
negate = 1
}
30 = TEXT
30.current = 1
stdWrap.typolink.parameter.data = parameters : allParams
stdWrap.typolink.extTarget = {$styles.content.links.extTarget}
stdWrap.typolink.target = {$styles.content.links.target}
stdWrap.typolink.wrap = {$styles.content.links.wrap}
stdWrap.parseFunc.constants =1
}
Ich bin deinen Ansätzen nachgegangen, aber leider bietet keiner der beiden Ansätze die Möglichkeit die url zu ändern (zumindest vor der url).
Hat noch jemand einen Ansatz oder eine Idee. Ich bin über jede noch so kleine Hilfe dankbar.
Da ich immer noch keine Lösung mit TS finden konnte habe ich mich entschlossen es über eine userFunc und php zu realisieren.
Nur leider komme ich nicht drauf, wie ich Funktion aufrufen muss, damit alle externen Links im Content automatisch umschrieben werden.
Kann mir da jemand helfen?
Genau das Problem hab ich auch gerade...
#58798
gibt es schon eine Lösung?
Das muss doch irgendwie auch mit TS gehen, oder?
schaut euch doch mal die dh_linklayout an. Da müsste man nur noch die userfunction etwas erweitern.
meine Motivation war leider noch zu gering so eine ext zu schreiben :/
georg
... nun gut dann fang ich mal an - hier die Function:
function addBeforeExtUrl($content,$conf)
{
global $TSFE;
if ($content["TYPE"] == "url")
{
$sData = $conf["BeforeUrl"];
}
return '<A HREF="'.trim($sData).$content["url"].'"'.$content["targetParams"].' '.$content["aTagParams"].'>';
}
Sollte doch so "grob" stimmen, oder?
Wie integriere ich das jetzt per TS, damit er alle externen links automatisch umsetzt (auch bestehende!) ?!?
Hier mein Versuch:
tt_content.text.20.default.parseFunc {
tags.link.typolink.userFunc = t3_userFunc->addBeforeExtUrl
BeforeUrl = test.php?
oder so?
tags.link.typolink.userFunc.parameter.wrap = test.php?
}
Bitte um kurze Hilfe !
quick & dirty:
installier einfach die extension und ändere in dieser direkt den Code!
georg
... jo dann gehts - kommisch!
allerdings auch nur bei den t3 vorlagen - die eigenen tv vorlagen ersetz er nicht!
muss man sicher stats
tt_content.text.20
was anderes nehmen, oder woran könnte es liegen?
Wie gesagt, ich habe das Problem über eine userfuction gelöst.
Die größte Schwierigkeit war es herauszufinden, dass die über userfunct aufgerufenen Funktionen mit user_ beginnen müssen. Das war wahrscheinlich auch dein Fehler!!
Es ist schon länger her, aber wenn ich mich recht erinnere funktioniert der Pointer ['aTagParams'] nicht! Darum hab ich den Workaround mit $myclass eingefügt. Aber einfach mal suchen ich hab das damals in einem eigenen Thread angesprochen.
folgende Zeile hab ich im Template im Setupbereich eingefügt.
includeLibs.myextlinks = fileadmin/funktionen/extlinks.php
tt_content.text.20.parseFunc.tags.link.typolink.userFunc =user_mylinks->main
die Datei extlink.php:
class user_mylinks {
var $cObj;// The backReference to the mother cObj object set at call time
/**
* Call it from a USER cObject with 'userFunc = user_randomImage->main_randomImage'
*/
function main($finalTagParts) {
# $finalTagParts['TYPE']
# $finalTagParts['TAG']
# $finalTagParts['url']
# $finalTagParts['targetParams']
# $finalTagParts['aTagParams']
if(eregi('class=',$finalTagParts['TAG'])){
$mytag = split("class=",$finalTagParts['TAG']);
$myclass = substr($mytag[1], 0, -1);
}else $myclass = "\"\"";
if ($finalTagParts['TYPE'] == "url"){
$linktarget = "_blank";
$finalTagParts['url'] = eregi_replace('&','xxaxx',$finalTagParts['url']);
$linkurl = "index.php?id=142&exturl=" . $finalTagParts['url'];
}else {
$linktarget="_self";
$linkurl = $finalTagParts['url'];
}
return '<a href="'.$linkurl.'" target="'.$linktarget.'" class='. $myclass .'>';
}
}
Danke!
Das wars, wenn ich user_x nutze, dann geht ... mann mann mann #angry#
Naja, hab allerdings immer noch ein Problem mit TemplaVoila - in den FCE gehts leider noch nicht!
Was muss man da noch tun?
Für die News gehts mit
plugin.tt_news.general_stdWrap.parseFunc < tt_content.text.20.parseFunc
was muss man für TV eintragen?
... ich finde es einfach nicht - habs u.a. schon mal mit
tt_content.templavoila_pi1.20.parseFunc.tags.link.typolink.userFunc =
aber leider tut sich nicht viel!
Hat jemand einen Tipp?
Ich habs gelöst - ich war nur als an der falschen Stelle unterwegs #angry# #angry#
Wenn manns direkt ins DS schreibt gehts auch!!!
<![CDATA[
10 = TEXT
10.current = 1
10.parseFunc = < lib.parseFunc_RTE
10.parseFunc < tt_content.text.20.parseFunc
]]>