# Registrierfunktion ersetzen

**URL:** <https://forum.shopware.com/t/registrierfunktion-ersetzen/48501>\
**Category:** Programmierung\
**Created:** [27. September 2017 um 08:29 UTC](https://forum.shopware.com/t/registrierfunktion-ersetzen/48501 "2017-09-27T08:29:30Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![schlueter550v](https://avatars.discourse-cdn.com/v4/letter/s/b782af/32.png) [@schlueter550v](https://forum.shopware.com/u/schlueter550v)\
**Post date:** [27. September 2017 um 08:29 UTC](https://forum.shopware.com/t/registrierfunktion-ersetzen/48501/1 "2017-09-27T08:29:30Z")

</div>

Hallo Community,

ich bin derzeit beschäftigt ein Plugin zu schreiben, welches den kompletten Regestrierungsprozess ersetzen soll.  
Ich will quasi nur die POST Daten der Registrierung abfangen. Bis jetzt versuche ich es über:

```
public function install()
{
	$this->subscribeEvent(
            'Shopware_Controllers_Frontend_Register.saveRegisterAction',
            'replaceRegister'
        );

	return true;
}

public function replaceRegister(Enlight_Event_EventArgs $args)
{
	//code

$args->getSubject()->forward("finishedRegistration","callRegister");

}

```

&nbsp;

Wenn ich nun eine Regestrierung absende, wird aber immer noch die Standardfunktion aufgerufen, und nicht meine Funktion “replaceRegister”.  
Was mach ich falsch? woher weiß ich genau wie das Event heißt, welches ich ersetzen will?

Grüße, schlueter550v

---

<div class="post-metadata">

**Author:** ![wabAB](https://avatars.discourse-cdn.com/v4/letter/w/7feea3/32.png) [@wabAB](https://forum.shopware.com/u/wabAB)\
**Post date:** [27. September 2017 um 09:44 UTC](https://forum.shopware.com/t/registrierfunktion-ersetzen/48501/2 "2017-09-27T09:44:03Z")

</div>

Hi, mein PHPStorm schlägt mir folgendes vor:

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/8/89ef296f030a474de468b944691111a929884481.png)

hilft das vielleicht weiter?

&nbsp;

VG

---

<div class="post-metadata">

**Author:** ![schlueter550v](https://avatars.discourse-cdn.com/v4/letter/s/b782af/32.png) [@schlueter550v](https://forum.shopware.com/u/schlueter550v)\
**Post date:** [27. September 2017 um 10:16 UTC](https://forum.shopware.com/t/registrierfunktion-ersetzen/48501/3 "2017-09-27T10:16:45Z")

</div>

Hallo,

ja es hat mir schonmal geholfen, bei dem Wort Hook kam ne kleine Glühbirne zum Vorschein

```
$this->subscribeEvent(
            'Shopware_Controllers_Frontend_Register::saveRegisterAction::replace',
            'replaceRegister'
        );

```

damit ruft er zumindest schonmal meine Funktion auf. Nur leider leitet er mich nun nicht auf mein Template weiter, sonder auf die Startseite. Folgender Code greift nicht:

```
$args->getSubject()->forward("finishedRegistration","callRegister");

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![wabAB](https://avatars.discourse-cdn.com/v4/letter/w/7feea3/32.png) [@wabAB](https://forum.shopware.com/u/wabAB)\
**Post date:** [28. September 2017 um 11:08 UTC](https://forum.shopware.com/t/registrierfunktion-ersetzen/48501/4 "2017-09-28T11:08:23Z")

</div>

Hast du möglicherweise in dem Class Namen oder in dem Action Namen tippfehler?

---

<div class="post-metadata">

**Author:** ![schlueter550v](https://avatars.discourse-cdn.com/v4/letter/s/b782af/32.png) [@schlueter550v](https://forum.shopware.com/u/schlueter550v)\
**Post date:** [2. Oktober 2017 um 06:21 UTC](https://forum.shopware.com/t/registrierfunktion-ersetzen/48501/5 "2017-10-02T06:21:28Z")

</div>

Hallo,

ich habe es nochmal überprüft, vllt. überseh ich es andauernd. Hier mal was ich habe:  
in der Bootstrap.php:

```
$args->getSubject()->forward("finishedRegistration","callRegister");

```

Dann in der Controllers/Frontend/callRegister.php

```
View()->loadTemplate('frontend/RegisterWithFile/finishedRegistration.tpl');
    }
?>

```

und abschließend in der Views/frontend/RegisterWithFile/finishedRegistration.tpl

```
{extends file="parent:frontend/index/index.tpl"}

{block name='frontend_index_content_main'}
	blabla
{/block}

```

überseh ich da andauernd etwas?

---

<div class="post-metadata">

**Author:** ![Moritz\_Naczenski](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/moritz_naczenski/32/7792_2.png) [@Moritz\_Naczenski](https://forum.shopware.com/u/Moritz_Naczenski)\
**Post date:** [2. Oktober 2017 um 09:32 UTC](https://forum.shopware.com/t/registrierfunktion-ersetzen/48501/6 "2017-10-02T09:32:10Z")

</div>

Wird dein Controller denn registriert oder klappt nur die Weiterleitung nicht?  
Am besten rufst du mal /callRegister auf. Wenn der Controller registriert ist, solltest du auch irgendeine ausgabe bekommen (ggf. weiße Seite) oder du haust einen die(“Bla”); rein.

---

<div class="post-metadata">

**Author:** ![schlueter550v](https://avatars.discourse-cdn.com/v4/letter/s/b782af/32.png) [@schlueter550v](https://forum.shopware.com/u/schlueter550v)\
**Post date:** [2. Oktober 2017 um 10:25 UTC](https://forum.shopware.com/t/registrierfunktion-ersetzen/48501/7 "2017-10-02T10:25:11Z")

</div>

Ich habe den Fehler herausgefunden:

1. Ich habe versäumt den Controller zu registrieren.  
dies in die install function gepackt:

2. Ich habe jetzt einen redirect statt forward benutzt:  
&nbsp;

und zu letzt 3. Ich musste die Datei callRegister.php in CallRegister.php umbenennen. Wieso ich mit einem Großbuchstaben anfangen muss weiß ich nicht.

---

<div class="post-metadata">

**Author:** ![wabAB](https://avatars.discourse-cdn.com/v4/letter/w/7feea3/32.png) [@wabAB](https://forum.shopware.com/u/wabAB)\
**Post date:** [4. Oktober 2017 um 11:24 UTC](https://forum.shopware.com/t/registrierfunktion-ersetzen/48501/8 "2017-10-04T11:24:56Z")

</div>

Zu 3. ich meine mal irgendwo darauf gestoßen zu sein: Da wandelt Shopware bei Event Listenern im Controller-Pfad die Datei und Verzeichnis Namen um, sodass die mit Großbuchstaben anfangen. Und dann wird die Datei Controller/Frontend/CallRegister.php nicht gefunden wenn diese callRegister.php heißt.
