Zum Inhalt springen

RTE neuer Button mit neuer Funktion

Erstellt am 18. Juni 2012 · 12 Antworten · letzte Antwort am 20. Juni 2012

Tags: Links, Frage

jodl ·

Hallo an Alle

Ich bin leider ein echter DAU, wenns um Typo3 geht, und hoffe deshalb auf eure Hilfe.

Ich will den RTE um eine Funktion erweitern, welche mir einen Link einfügt, danach aber noch Variablen dazu setzt.
Beispiel
Nach Klick auf die Schaltfläche soll ein kleines Fenster mit einem Eingabefeld (Text) aufgehen, wo eine URL eingegeben werden kann.
zB xyz.at

Die Funktion soll dann anstatt <a href="xyz.at">xyz</a> dass <a href="xyz.at?abc=1&def=2">xyz</a> einfügen.

Ich hab jetzt bereits zig Tutorials, Howtos und sonstige Beiträge gelesen, aber mir fehlt es einfach an Typo3 wissen.

Kann mir vielleicht jemand sagen, wie ich grob vorgehen soll. Ich brauch keinen Code, aber eine Liste der Dinge, die gemacht werden müssen zB Welche Klasse wo eingefügt werden muss,welche Konfiguration wo geändert werden muss,....

Danke Danke Danke im Voraus

igorshmigor ·

Wenn Du Dich schon selbst als TYPO3 DAU bezeichnest, dann nimmst Du Dir damit vielleicht etwas zu viel vor. Warum schaust Du Dir nicht die Extension external_link_parameter an, die es laut Beschreibung erlaubt, externen Links eigene Parameter hinzuzufügen. Vielleicht ist das schon genau das was Du suchst.

jodl ·

du hast recht, die extension dürfte wirklich genau passen
aber
1. hab ich in die tsconfig der root seite
config {
linkVars = L(int), foo
foo = bar
}
eingefügt und es tut sich nichts wenn ich mit dem rte externe links einfüge sollte doch auf der seite www.xxx.at?foo=bar stehen

2.müsst ich die variablen die gesetzt werden mit php erzeugen können, je nach dem, wer eingeloggt ist hätt ich gern benutzer=.... an allen links dran gehängt
kann ich das machen, wenn die variablen in tsconfig drinnen sind?

wie gesagt, typo3-DAU

igorshmigor ·

Du meinst sicher ins TS Setup, nicht TS Config.
Den Default-Wert für foo musst Du mit

config{
    defaultgetVars.foo=bar
}

festlegen.
Es steht nicht in der TypoScript-Referenz, aber ich bin mir ziemlich sicher, dass linkVars nur für interne Links gilt, nicht für externe.

jodl ·

In der extension-doku steht:

By default, no parameter is append to external links. Beforehand, there is the `config.linkVars` setting to be filled in with
a value in the main TypoScript. The `linkVars` is a configuration key from TYPO3 meant to hand over parameter in the
URL. Refer to the official documentation for more information::

config {
linkVars = L(int), foo
}

Let assume a website with this URL `http://www.domain.com/?foo=bar`. Having the configuration above will append
`foo=bar` to every external URL on the page, i.e `http://sub.domain.com/?foo=bar`

igorshmigor ·

Das TS-Setup findest Du im Modul Template, dann Klick auf die Seite mit dem TypoScript Setup. Da gehört dieser Code hin.
TSconfig ist eher für die Gestaltung des Backends zuständig und wird in den Seiteneigenschaften (PageTSconfig) oder in den Benutzereinstellungen (UserTSconfig) eingepflegt.
Das ist ein großer Unterschied. Für das TypoScript Setup gilt die TypoScript Referenz TSref: https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Index.html
Für TSconfig gilt die TSconfig-Referenz: https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/UsingSettingTSconfig/Index.html

igorshmigor ·
jodl schrieb

In der extension-doku steht:

By default, no parameter is append to external links. Beforehand, there is the `config.linkVars` setting to be filled in with
a value in the main TypoScript. The `linkVars` is a configuration key from TYPO3 meant to hand over parameter in the
URL. Refer to the official documentation for more information::

config {
linkVars = L(int), foo
}

Let assume a website with this URL `http://www.domain.com/?foo=bar`. Having the configuration above will append
`foo=bar` to every external URL on the page, i.e `http://sub.domain.com/?foo=bar`

Ach, die Dokumentation hatte ich erst gar nicht gefunden. So wie es aussieht ist die Extension doch nicht das was Du suchst. Sie hängt nur ?foo=bar an die externe URL, wenn in der aktuellen URL auch schon foo=bar enthalten ist. Das ist wahrscheinlich nicht das was Du wolltest.

jodl ·

ha, aber das kann man vielleicht umbauen.
gab ja nicht gesagt, dass ich ein php dau bin.
aber die doku war echt mies. oder hab nur das verstanden was ich verstehen wollte

jodl ·

ok, habs jetzt ins setup eingetragen aber funktionierts?

mir ist nicht klar, was die extension machen soll
dementsprechend kann ich die funktion nicht überprüfen und auch nicht auf meine bedürfnisse umbauen.

was macht das ding???

www.abc.at?a=b&c=d müsste laut deiner vermutung www.abc.at?a=b ergeben wenn
config {
linkVars = L(int), a
}
in der config steht

jodl ·

ok, habs jetzt ins setup eingetragen aber funktionierts?

mir ist nicht klar, was die extension machen soll
dementsprechend kann ich die funktion nicht überprüfen und auch nicht auf meine bedürfnisse umbauen.

was macht das ding???

www.abc.at?a=b&c=d müsste laut deiner vermutung www.abc.at?a=b ergeben wenn
config {
linkVars = L(int), a
}
in der config steht

jodl ·

soll das für alle links funktionieren?
ich meine nur für links im Menü oder auch für Links die mit dem rte erstellt werden

igorshmigor ·

Hab's gerade ausprobiert. Bei mir funktioniert es auch nicht. Wieder eine Extension für die Mülltonne.
Ansonsten, wenn Du Dir die Eigenprogrammierung wirklich zutraust, schau Dir eine Extension an, die den RTE um eigene Buttons erweitert und lern von dessen Code. Da gibt es zum Beispiel die Extensions vjrtecodesnippets (sie fügt einen Code-Button hinzu) und ch_rterecords (sie fügt dem Link-Browser einen neuen Reiter hinzu, der es erlaubt beliebige Datensätze zu verlinken). Letztere verwendet XCLASS, was nicht so gut ist, da immer nur eine Extension gleichzeitig eine solche Änderung vornehmen kann. Wenn zwei Extensions dieselbe Klasse mit XCLASS abändern, wird eine Extension nicht funktionieren.
Unbedingt anschauen solltest Du Dir das Manual typo3/sysext/rtehtmlarea/doc/manual.sxw und die TYPO3 Core API: https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/Index.html