Nein, dann müsste man zwei Plugins daraus machen.
Extbase: Action aus URL entfernen
Mit CoolURI geht das, zumindest wenn die sonstigen Parameter eine eindeutige Zuordnung zulassen.
Danke für die Antworten.
Was mich aber wundert:
da das jetzt meine erste Extension mit Extbase war, habe ich mir eine Bestehende angeschaut und anhand dieser Codes meine Extension aufgebaut.
Da wurde quasi auch eine Action verwendet umd von einer Listansicht in eine Detailansicht zu kommen. Mit einem Plugin. Action wurde dann in der localconf erfolgreich ausgeblendet.
Gibt es hier jemanden, der das gleiche Problem hatte, und dies dann auch gelöst hat?
Was macht CoolURI anders als RealURL, dass es da dann funktioniert?
Welche Extension ist das denn? Würde mich auch interessieren was CoolUri da so macht. Kann mir nicht vorstellen, dass das geht, außer man kann quasi den Action Parameter anhand eines anderen intern setzen lassen (also quasi immer wenn ich eine Detail ID übergebe soll auch die Action auf Detail gesetzt werden). Oder hat das andere Plugin vielleicht ein Flexform in dem man die Action auswählt?
Das ist eine nicht öffentliche Exstension... 🙁
Ja da wurde auch Flexform eingesetzt. Ne, das bringt mich weiter, dann muss ich das so auch aufbauen.
Danke für die Erkenntnis/Gedankenschubser :-)
Ja danke für den Link, den kenne ich schon, habe damit die anderen Parameter entfernt.
Da ich noch keine Flexform nutze, hat aber mir das Tutorial bei Action nicht geholfen.
So einfach gehts:
1) Im FLUID Template action="show" entfernen:
<f:link.action arguments="{table:table}">
2) Per TypoScript im setup-Feld prüfen ob URL Parameter mit ID übergeben wird und dann fix setzen:
[globalVar = GP:tx_extkey_table|table > 0]
config.defaultGetVars {
tx_extkey_table.action = show
}
[global]
Hallo!
Danke für den Tipp.
In welcher Extbase / Typo3 Version funktioniert das?
Habe das nachgebaut, aber leider sind die Links ohne Action nicht funktionsfähig... 🙁
Hatte das Problem gerade auch und bin über diesen Threat gestoßen, daher der Vollständigkeit halber eine Ergänzung:
Das TypoScript ist in dem Fall nicht notwendig. Wenn man das Argument action="show" im ViewHelper weglässt wird die Standard-Action im Controller aufgerufen. Welche das ist, sieht man in der ext_localconf.php.
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'FOO.' . $_EXTKEY,
'MyExt',
array(
'Bar' => 'list,show',
),
// non-cacheable actions
array(
)
);
In diesem Beispiel ist das die listAction im BarController weil sie in der Konfiguration an erster Stelle steht. Jetzt muss diese nur noch geringfügig angepasst werden.
public function listAction() {
if ($this->request->hasArgument('myModel') && $this->request->getArgument('myModel') > 0) {
$this->forward('show', NULL, NULL, array(
'myModel' => $this->request->getArgument('myModel')
));
} else {
// hier steht der Rest wie sonst
}
}
Fehlt noch Fluid:
<f:link.action arguments="{myModel:myModel}">