Hallo Leute,
ich habe ein Problem mit einer Weiterleitung.
Ich habe eine Extension für tt_news geschrieben, in der man sich einzelne Newsbeiträge merken kann.
Wenn ich nun auf 'Hinzufügen' klicke wird das auch durchgeführt. Nur habe ich in meinem Controller in der create Funktion ein
$this->redirect('index')
Bei diesem redirect werden sämtliche Parameter der Url einfach weggelassen. Sprich, ich komme auf meine tt_news Singleansicht Seite, aber die NewsId wird nicht mehr mit übergeben.
Gibt es eine Möglichkeit, dass die Parameter mit übergeben werden?
Im Template ist
addQueryString=1
in den Links gesetzt und sind vor dem redirect auch vorhanden.
In der redirect Funktion kann man zwar Argumente mitgeben, diese werden jedoch immer als Argumente meiner Extension weitergegeben.
Ich hoffe hier kann mir jemand helfen.
Gruß r0n
Hallo,
schau dir mal die parents von deiner controller-Klasse an:
typo3/sysext/extbase/Classes/MVC/Controller/AbstractController.php
bei den Redirect-Methoden gibt es einige Parameter...
protected function redirect($actionName, $controllerName = NULL, $extensionName = NULL, array $arguments = NULL, $pageUid = NULL, $delay = 0, $statusCode = 303) {}
protected function redirectToURI($uri, $delay = 0, $statusCode = 303) {}
Vllt. ist da ja was dabei.
Hallo,
danke für Kommentar.
Die Klasse hatte ich mir schon vorher angeschaut, aber wie gesagt, das Problem besteht, dass die $arguments als Argumente meines Controllers behandelt werden.
Also würde ich das Argument
array('tt_news' => 1)
übergeben, würde nachher in der Url stehen:
index.php?id=21&tx_myext_pi1[tt_news]=1
rauskommen soll natürlich:
index.php?id=21&tx_ttnews[tt_news]=1
Ich kann ja auch keinen anderen Controller angeben, da ich ja wirklich zu meinem Controller redirecten möchte.
Eine Variante wäre es, alle GET Parameter einzulesen und den redirect selbst durchzuführen. Aber ich wollte lieber nochmal fragen, bevor ich damit anfange, ob es nicht irgendwie leichter geht.
Wenn als Extension 'tx_ttnews' rein soll, muss das da rein:
Parameter $extensionName
$this->redirect('index', Null, 'tx_ttnews', array(...));
Wenn weitere Parameter benötigt werden, müssen die in das Array mit rein.
Z.B so in der Art
array('extname'=>'myext', 'newsId'=>$newsId, 'foostring'=>'bar', 'foovalue'=>$bar)
Dann musst du in der createAction natürlich darauf Bezug nehmen, sonst passiert nichts mit den übergebenen Werten.
Hoffe, das hilft irgendwie
Gruß Harald