Zum Inhalt springen

Mehrere Controller auf einer Seite -> Fehlermeldung

Erstellt am 28. August 2012 · 4 Antworten · letzte Antwort am 31. Oktober 2012

Tags: Frage

intensivstation ·

Ich habe eine Seite, wo ein einziges Plugin mehrfach benutzt wird.
Dabei werden bei jedem Plugin andere Controller benutzt.
Das funktioniert natürlich soweit.
Allerdings gibt es nun auch Links auf der Seite, die dann so aussehen:
index.php?id=333&tx_myext_pi1[showAll]=1&tx_myext_pi1[action]=list&tx_myext_pi1[controller]=Artikel
Unter Typo3 4.5.x lief das damit.
Unter Typo3 4.7.0 läuft das nicht mehr!
Das Plugin, dass einen anderen Controller benutzt, mekert:
The controller "Artikel" is not allowed by this plugin. Please check for Tx_Extbase_Utility_Extension::configurePlugin() in your ext_localconf.php.
Was kann man nur tun???

intensivstation ·

Problem gibts natürlich auch mit Typo3 4.7.4.
Im Klartext: dieser Link funktioniert:
index.php?id=333&tx_myext_pi1[showAll]=1
Und dieser Link führt zu einer Fehlermeldung:
index.php?id=333&tx_myext_pi1[showAll]=1&tx_myext_pi1[action]=list&tx_myext_pi1[controller]=Artikel
Schlecht ist zudem: f:link.action fügt immer einen Controller dem Link hinzu.

Mein Fazit: dies ist ein Typo3-Bug 😢

intensivstation ·

Wenn ich den Controller aus dem Link beim Plugin zulasse, wird der Controller aus dem Link übernommen.
Das soll nicht sein. Wie kann ich verhindern, dass der Controller überschrieben wird?

intensivstation ·

Nach langer Recherche komme ich zu dem Schluss, dass es keine Lösung für dieses Problem gibt!
Das einzige was man tun kann: controller und action per JavaScript aus dem Link entfernen,
bevor ein Link abgesendet wird. Das ist natürlich nur eine Notlösung...

hkuesters ·

Hallo Kurt!

Das ist in der Tat ein blödes Problem. Allerdings kann ich natürlich meine Links auch zusammenbauen ohne <f:link>.

Bei mir wurde so aus

<f:link.action pageUid="{settings.ergebnisSeite}" controller="teilnehmerFBResult" action="show" arguments="{siegelnummer:angebot.siegelnummer}">Ergebnis</f:link.action>

hinterher das

<a href="http://xxx.xxxxx.de/index.php?id={settings.ergebnisSeite}&no_cache=1&tx_tnzpraevention_tnzdata%5Bsiegelnummer%5D={angebot.siegelnummer}&tx_tnzpraevention_tnzdata%5Baction%5D=show">Ergebnis</a>

Das heißt: Die dynamischen Elemente übergebe ich weiterhin mit Hilfe von Fluid-Syntax an den Link, aber ich übergebe die Link-Generierung eben nicht komplett an das Fluid-Element link, sondern mach das händisch. Funktioniert auf jeden Fall!

Oder hast Du inzwischen eine andere Lösung gefunden?

Gruß Hubert