---
title: "Extbase Action im anderen Plugin starten"
url: "https://www.typo3.net/d/99853-extbase-action-im-anderen-plugin-starten"
source: "typo3.net"
tags: ["Extensions","Extbase","Frage"]
created: "2010-07-07"
last_reply: "2010-07-07"
replies: 1
solved: false
page: 1
pages: 1
lang: "de"
---

# Extbase Action im anderen Plugin starten

Extensions › Extbase · 1 Antwort · gestartet 2010-07-07

## Eröffnungsbeitrag

**ede32** · 2010-07-07 · [Beitrag #1](https://www.typo3.net/d/99853-extbase-action-im-anderen-plugin-starten/1)

Hi,

versuche gerade ne kleine Extension für die Uni zu schreiben und ich bekomme folgendes nicht hin:

Gegeben:
- Eine Extension mit zwei Plugins ('Pi1' und 'Pi2')
Die Extension hat die Controller C1 mit den ControllerAction showAction(id = NULL) und selectAction(id) und C2 mit dem ControllerAction showByIdAction(id)
- Beide Plugins sind auf einer Seite eingebunden.

nun löse ich bei Pi1 die Action selectAction(id) aus. Nun soll für das Pi1 die showAction(id) aufgerufen werden und für das Pi2 die selectAction(id). Wie bekomme ich das hin?

Aktuell hab ich folgendes:

```php
public function selectAction($id) {				
		$this->uriBuilder = t3lib_div::makeInstance('Tx_Extbase_MVC_Web_Routing_UriBuilder');
		$this->uriBuilder->setRequest($this->request);
		$uri = $this->uriBuilder->reset()
			->uriFor('showById', $this->request->getArguments(), 'C2', $this->request->getControllerExtensionName(), 'Pi2');
		$this->redirectToURI($uri);
}
```

Leider wird dann natürlich nicht mehr die show() in Pi1 aufgerufen.

```php
$this->forward('showById', 'C2', NULL, array('id' => $id));
```

bietet wiederrum keine Angabe des Ziel-Plugins (Ergebnis wird in Pi1 statt in Pi2 angezeigt)

Wie kann ich da vorgehen? Leider hab ich keine große Erfahrung mit der API. Würd mich freuen wenn mir jemand da weiterhelfen kann.

Gruß,
Ede

## Antworten

### [#2](https://www.typo3.net/d/99853-extbase-action-im-anderen-plugin-starten/2) · ede32 · 2010-07-07

Habs hinbekommen.

```php
public function selectAction($id) {	
     $pi1Prfx = strtolower('tx_' . $this->request->getControllerExtensionName() . '_' . 'pi2');
	$arg = array( $pi1Prfx => array('id' 	=> $id,
									'controller' => 'C2',
									'action' 	=> 'showById'));
	
	$this->uriBuilder = t3lib_div::makeInstance('Tx_Extbase_MVC_Web_Routing_UriBuilder');
	$this->uriBuilder->setRequest($this->request);
	$uri = $this->uriBuilder
		->setArguments($arg)
		->uriFor('show', array('id' => $id));
	$this->redirectToURI($uri);
}
```

Keine Ahnung ob das der saubere Weg ist, aber es funktioniert :)
schade das uriFor() immer jeden Argument das selbe prefix (und somit das selbe plugin) zuweist. Über setArguments() und dort den eigenen prefix vorher erzeugen gehts nun :)

Gruß

---

Quelle: „Extbase Action im anderen Plugin starten“, typo3.net, https://www.typo3.net/d/99853-extbase-action-im-anderen-plugin-starten
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
