# hook will nicht

**URL:** https://forum.shopware.com/t/hook-will-nicht/3744
**Category:** Shopware 3.5
**Tags:** programming
**Created:** [2. August 2011 um 14:39 UTC](https://forum.shopware.com/t/hook-will-nicht/3744 "2011-08-02T14:39:16Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![pino](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/pino/32/14373_2.png) [@pino](https://forum.shopware.com/u/pino)
#### Post date: [2. August 2011 um 14:39 UTC](https://forum.shopware.com/t/hook-will-nicht/3744/1 "2011-08-02T14:39:16Z")

</div>

hi, geh weiter die examples durch. hab das gefühl das nix geht. eigentlich soll folgender code eine die() ausgabe machen. [code]\<?php class Shopware\_Plugins\_Frontend\_Example3\_Bootstrap extends Shopware\_Components\_Plugin\_Bootstrap  
{  
public function install()  
{

```
	$hookReplace = $this->createHook( 'sArticles', 'sGetArticleById', 'onArticleReplace', Enlight\_Hook\_HookHandler::TypeReplace, 0 ); $this-\>subscribeHook($hookReplace); return true; } static function onArticleReplace (Enlight\_Hook\_HookArgs $args) { die("Artikel gesperrt"); } } [/code] wie in meinen [url=http://forum.shopware.de/plugins-erweiterungen-f20/if-using-firebug-1-8-you-need-developercompanion-t3690.html]1. post[/url], passiert nix. cache geleert, plugin mehrmals installiert ... kann mir jemand sagen was ich falsch mache?
```

---

<div class="post-metadata">

### Author: ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)
#### Post date: [2. August 2011 um 20:51 UTC](https://forum.shopware.com/t/hook-will-nicht/3744/2 "2011-08-02T20:51:21Z")

</div>

[quote=“pino”]hi, geh weiter die examples durch. hab das gefühl das nix geht. eigentlich soll folgender code eine die() ausgabe machen. [code]\<?php class Shopware\_Plugins\_Frontend\_Example3\_Bootstrap extends Shopware\_Components\_Plugin\_Bootstrap  
{  
public function install()  
{

```
	$hookReplace = $this->createHook( 'sArticles', 'sGetArticleById', 'onArticleReplace', Enlight\_Hook\_HookHandler::TypeReplace, 0 ); $this-\>subscribeHook($hookReplace); return true; } static function onArticleReplace (Enlight\_Hook\_HookArgs $args) { die("Artikel gesperrt"); } } [/code] wie in meinen [url=http://forum.shopware.de/plugins-erweiterungen-f20/if-using-firebug-1-8-you-need-developercompanion-t3690.html]1. post[/url], passiert nix. cache geleert, plugin mehrmals installiert ... kann mir jemand sagen was ich falsch mache?[/quote] Was machst du um dies Auszuführen? Du musst ja irgendeine Action im Shop machen, welche die Function sGetArticleById aufruft.
```

---

<div class="post-metadata">

### Author: ![pino](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/pino/32/14373_2.png) [@pino](https://forum.shopware.com/u/pino)
#### Post date: [3. August 2011 um 10:22 UTC](https://forum.shopware.com/t/hook-will-nicht/3744/3 "2011-08-03T10:22:39Z")

</div>

hi, ich rufe ein artikel auf. z.b. /lifestyle-wohnen/6/karaffe ` Enlight\_Controller\_Request\_RequestHttp Object ( [\_paramSources:protected] =\> Array ( [0] =\> \_GET [1] =\> \_POST ) [\_requestUri:protected] =\> /lifestyle-wohnen/6/karaffe [\_baseUrl:protected] =\> [\_basePath:protected] =\> [\_pathInfo:protected] =\> /lifestyle-wohnen/6/karaffe [\_params:protected] =\> Array ( [RewriteUrl] =\> 1 [sViewport] =\> detail [sArticle] =\> 6 ) [\_rawBody:protected] =\> [\_aliases:protected] =\> Array ( ) [\_dispatched:protected] =\> 1 [\_module:protected] =\> frontend [\_moduleKey:protected] =\> module [\_controller:protected] =\> detail [\_controllerKey:protected] =\> sViewport [\_action:protected] =\> index [\_actionKey:protected] =\> sAction ) `

---

<div class="post-metadata">

### Author: ![pino](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/pino/32/14373_2.png) [@pino](https://forum.shopware.com/u/pino)
#### Post date: [9. August 2011 um 12:57 UTC](https://forum.shopware.com/t/hook-will-nicht/3744/4 "2011-08-09T12:57:07Z")

</div>

hi, das problem besteht leider immer noch. [quote=“[http://wiki.shopware.de/Einfuehrung-Hook-System\_detail\_615.html](http://wiki.shopware.de/Einfuehrung-Hook-System_detail_615.html)”] Schauen wir uns beispielsweise einmal die Methode sGetArticleById aus der Klasse /engine/core/class/sArticles.php an. Diese wird im Detail-Controller aufgerufen, um alle Daten eines spezifischen Artikels aus der Datenbank abzufragen. [/quote] ich bin in detail `<?php class Shopware_Plugins_Frontend_myHook_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{
   public function install()
   {
       $hook = $this->createHook( 'sArticles', 'sGetArticleById', 'onArticle', Enlight\_Hook\_HookHandler::TypeAfter, 0 ); $this-\>subscribeHook($hook); return true; } static function onArticle(Enlight\_Hook\_HookArgs $args) { $article = $args-\>getReturn(); $article["price"] = str\_replace(",",".",$article["price"]); // Preis ist an dieser Stelle bereits formatiert, also Komma durch Punkt ersetzen, damit wir mit dem Ergebnis rechnen können $article["price"]\*= 1.1; // Preis um 10 % erhöhen $article["price"] = $args-\>getSubject()-\>sFormatPrice($article["price"]); // Aufruf einer Methode aus der Original-Klasse, um den Preis entsprechend zu formatieren $args-\>setReturn($article); // Rückgabe der Methode definieren } } ?\> ` kann keiner der erfahrenen hier was dazu sagen? // edit [quote=“[http://wiki.shopware.de/Einfuehrung-Hook-System\_detail\_615.html](http://wiki.shopware.de/Einfuehrung-Hook-System_detail_615.html)”] Im Hintergrund erzeugt Shopware automatisch die benötigten Objekte und Klassen im Verzeichnis engine/Shopware/Proxies/ In unserem Fall finden wir dort nun die Datei myArticlesProxy.php (myArticles, weil für die Klasse sArticles im Auslieferungszustand bereits eine Vererbung stattfindet) [/quote] soll: [code]\<?php class Shopware\_Proxies\_myArticlesProxy extends myArticles implements Enlight\_Hook\_Proxy  
{  
public function excuteParent($method, $args=null)  
{  
return call\_user\_func\_array(array($this, ‘parent::’.$method), $args);  
}

```
public static function getHookMethods()
{
	return array ( 0 => 'sGetArticleById',); } public function sGetArticleById($id=0) { if(!Enlight::Instance()-\>Hooks()-\>hasHooks('myArticles', 'sGetArticleById')) { return parent::sGetArticleById($id); } $obj\_args = new Enlight\_Hook\_HookArgs($this, 'sGetArticleById', array('id'=\>$id)); return Enlight::Instance()-\>Hooks()-\>executeHooks($obj\_args); } } [/code] ist: [code]
```

---

<div class="post-metadata">

### Author: ![pino](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/pino/32/14373_2.png) [@pino](https://forum.shopware.com/u/pino)
#### Post date: [8. September 2011 um 12:49 UTC](https://forum.shopware.com/t/hook-will-nicht/3744/5 "2011-09-08T12:49:26Z")

</div>

push das thema ist leider nicht vom tisch. kann mir jemand erklären wie das mit den hooks ist und der benötigten \*proxy datei? dazu noch ne frage: wie kann ich ein hook auf index/home machen?

---

<div class="post-metadata">

### Author: ![Stefan\_Hamann](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Stefan\_Hamann](https://forum.shopware.com/u/Stefan_Hamann)
#### Post date: [8. September 2011 um 13:10 UTC](https://forum.shopware.com/t/hook-will-nicht/3744/6 "2011-09-08T13:10:13Z")

</div>

Lösche mal alle Proxies unter Shopware\Proxies - in der 3.5.4 gibt es diesbzgl. noch einen Fehler, so dass die Dateien nicht neu generiert werden. Das ist aber in 3.5.5 behoben bzw. gibt es dazu im Trac auch einen Fix! Damit sollte sich das Problem erledigt haben!

---

<div class="post-metadata">

### Author: ![pino](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/pino/32/14373_2.png) [@pino](https://forum.shopware.com/u/pino)
#### Post date: [8. September 2011 um 13:20 UTC](https://forum.shopware.com/t/hook-will-nicht/3744/7 "2011-09-08T13:20:39Z")

</div>

gesagt, getan. von 43 auf 4 dateien. scheint aber alles zu laufen. muß ich mal im auge behalten, danke schon mal. // edit ok, ich muss die proxie datei immer löschen, damit diese neu erstelt wird.

---

<div class="post-metadata">

### Author: ![henna](https://avatars.discourse-cdn.com/v4/letter/h/3bc359/32.png) [@henna](https://forum.shopware.com/u/henna)
#### Post date: [3. November 2012 um 12:13 UTC](https://forum.shopware.com/t/hook-will-nicht/3744/8 "2012-11-03T12:13:03Z")

</div>

hallo zusammen, wie haben in einem shop (3.5.6) ein pfandsystem-plugin installiert, welches wir noch modifizieren müssten. das ganze läuft über ein paar hooks, die auch einwandfrei funktionieren, ABER: - änderungen z.B. mit einem weiteren hook im gleichen plugin bewirken in der ausgabe gar nichts … - auch wenn das plugin deaktiviert wird … - oder bestehende hooks in diesem plugin auskommentiert werden, passiert gar nichts, das plugin wird weiterhin in der alten version dargestellt. - wir haben alle proxies gelöscht, - den cache des öfteren geleert, der effekt ist immer der gleiche, es passiert nix … wie wenn die hooks einmalig initialisiert worden sind, und änderungen nicht mehr angenommen werden. hat irgendjemand eine idee ??? vielen dank christian
