[Frage] Extbase: Action aus URL entfernen

  • 0 x
    18 Beiträge
    0 Hilfreiche Beiträge
    29. 08. 2013, 11:05

    Hallo!

    ----
    Verwendete Extensions:
    Extbase 1.3.4
    RealUrl 1.12.3
    Typo3 4.5.26
    ----

    Ich hab folgendes Problem:

    Aus der URL meiner Extension möchte ich die "Action" entfernt haben.
    Der Controller und cHash sind schon raus. Nur mit der Action kämpfe ich erfolglos.

    Wenn ich in der localconf folgende Zeile in die postVarSets einfüge

    1. 'GETvar' => 'tx_sysfireproductview_productview[action]',
    2. 'noMatch' => 'bypass',
    3. ),

    dann sind die Links im Frontend, die die Action haben, quasi funktionslos.
    (sonst: Listansicht -> Klick auf ein Listelement -> Detailansicht)
    Kann ich im ActionController irgendwas ergänzen, damit ich bei diesen Links trotzdem vorankomme?

    Entferne ich die Zeile 'noMatch' => 'bypass', ist wieder alles in Ordnung, aber die Action steht in der URL.

    Ich frag mich nur, warum die Einstellungen mit noMatch bei dem Controller und cHash wunderbar funktionieren, aber nicht bei Action.

    Falls noch weitere Infos zu diesem Problem fehlen (könnten), dann sagt Bescheid.

    Vielen Dank im Voraus.

    Gruß Jolanta

  • Hilfreichster Beitrag

  • kitsunet kitsunet
    Flash Gordon
    1 x
    2559 Beiträge
    27 Hilfreiche Beiträge
    29. 08. 2013, 14:33 - Hilfreichster Beitrag

    Kommt jetzt auf die spezifische Extension an bei der dieses Argument entfernt werden soll. Ich vermute, dass das selbe Plugin benutzt wird für Listen- und Detailansicht. Dann ist Extbase darauf angewiesen die Action zu bekommen sonst kann es ja nicht wissen ob Du Liste oder Details willst und benutzt einfach den Default.

    config.baseURL = http://www.kitsunet.com/
    TYPO3 Flow und Neos Community Contact
    Release Manager TYPO3 Neos 1.1
    Ich habe Probleme mit den PMs hier, also schreibt mir bitte eine Mail oder über Twitter!


  • 0 x
    18 Beiträge
    0 Hilfreiche Beiträge
    18. 12. 2013, 08:25

    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... :(

  • freshman17 freshman1...
    Sternenflotten-Admiral
    0 x
    218 Beiträge
    2 Hilfreiche Beiträge
    21. 11. 2014, 21:43

    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.

    1. \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
    2. 'FOO.' . $_EXTKEY,
    3. 'MyExt',
    4. 'Bar' => 'list,show',
    5. ),
    6. // non-cacheable actions
    7. )
    8. );

    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.

    1. public function listAction() {
    2. if ($this->request->hasArgument('myModel') && $this->request->getArgument('myModel') > 0) {
    3. $this->forward('show', NULL, NULL, array(
    4. 'myModel' => $this->request->getArgument('myModel')
    5. ));
    6. } else {
    7. // hier steht der Rest wie sonst
    8. }
    9. }

    Fehlt noch Fluid:

    1. <f:link.action arguments="{myModel:myModel}">