Zum Inhalt springen

RTE links in eine extension

Erstellt am 16. Juli 2007 · 3 Antworten · letzte Antwort am 14. August 2008

Tags: Links, Frage

jeppo ·

Hallo,

folgendes Problem mit den links und den RTE.

Wenn ich einen ganz normalen text der später in der tabelle tt_content gespeichert wird, mit den RTE editiere,
werden sämtliche beinhalteten links von dem RTE in quelltext so dargestellt:

<a target="_self" href="http://www.mydomain.de/?id=301" class="internal-link">My Link</a>

in der DB (tt_content) wird dann später so gespeichert:

<link 301="" _self="" internal-link="" />Mein Link</link>

und in FE wird im quelltext der link so richtig dargestellt:

<a href="MyLink.301.0.html" target="_self" class="internal-link">My Link</a>

Soweit alles prima, der link ist google "kompatibel" ;-)

Nun habe ich eine eigene extension die auch einen textarea mit RTE verwendet, der einzige unterschied, der text
wird nicht in tt_content gespeichert sondern in tx_myextension_table.
Und hier tauch das problem auf, der link wird in RTE (quelltext) erstmal immer noch richt erzeugt:

<a target="_self" href="http://www.mydomain.de/?id=301" class="internal-link">My Link</a>

aber später in der DB nicht mit der form <link 301="" _self="" /></link> sondern immer noch so:

<a target="_self" href="http://www.mydomain.de/?id=301" class="internal-link">My Link</a>

das ergebnis im FE zeigt leider der link im quelltext nicht in ausgeschriebene form sondern:

<a target="_self" href="http://www.mydomain.de/?id=301" class="internal-link">My Link</a>

das ist unschön und schlecht für google.
Wie bringe ich nun mein RTE bei, die links einer extension, sich so zu verhalten wie die links in meine ganz normale textarea?

Meine lösung ansatz war die lib.parseFunc_RTE die auch für tt_content zuständig ist in meine extension zu kopieren:

plugin.tx_myextension_pi1{
   parseFunc < lib.parseFunc_RTE
}

leider brachte das zu keiner erfolg, oder muss ich in der extension mit PHP auch was ändern?

Kann mir jemand helfen? Ich wäre sehr dankbar.

mfg

Jeppo

p.s.: habe typo 4.0.2 und htmlAreaRTE 1.3.7 mit css_styled_content

jeppo ·

Hallo,

mittlwerweile bin ich soweit gekommen dass in meine extension der inhalt aus der DB
mit pi_RTEcssText()[ behandeln muss, z.B.:

$marker["###INHALT###"] = $this->pi_RTEcssText($row['text']);

Damit werden sämtliche typolink <link>123</link> aus der DB mit dieser funktion als echte
links-tags transformiert: <a href="123.html">123</a>

Meine frage bleibt nun, warum speichert, innherhalb meiner extension, den RTE meine typolinks
in der DB nicht ab? Wenn ich einen link erzeuge wird leider ohne die form <link>123</link>
in der DB abgelegt sondern immer noch so: <a href="http://mydomain.tld/?id=123">123</a>.

Wenn ich den RTE verwende als ganz normalen textinhalt, dort funktioniert alles tadellos.

jeppo ·

so habe das problem gelöst,

in meine TS hatte for 4 monaten diese zeile selber eingefügt:

RTE.default.proc.overruleMode = none

das war die ursache warum keine transormationen zwischen RTE und DB stattgefunden hat :-(

afoeder ·

Hi Jeppo,

vielen Dank für Deinen "Selbstdialog", genau dieser Thread hat mir jetzt super bei einem eigenen Problem geholfen.

Beste Grüße,

Adrian