# Hook in sRewriteTable

**URL:** <https://forum.shopware.com/t/hook-in-srewritetable/36613>\
**Category:** Programmierung\
**Created:** [9. Mai 2016 um 07:52 UTC](https://forum.shopware.com/t/hook-in-srewritetable/36613 "2016-05-09T07:52:59Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Misengo](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/misengo/32/21446_2.png) [@Misengo](https://forum.shopware.com/u/Misengo)\
**Post date:** [9. Mai 2016 um 07:52 UTC](https://forum.shopware.com/t/hook-in-srewritetable/36613/1 "2016-05-09T07:52:59Z")

</div>

Ich möchte gerne einen before Hook in der sRewriteTable anlegen und habe dazu ein Plugin geschrieben, dort habe ich meine Event subscribed ([http://community.shopware.com/Shopware-4-Events-und-Hooks\_detail\_981.html](http://community.shopware.com/Shopware-4-Events-und-Hooks_detail_981.html))

```
$this->subscribeEvent(
    'sRewriteTable::sCleanupPath::before',
    'onRewrite'
);

```

und lese über $form-setElement aus ob true oder false gesetzt ist (das ganze muss Subshopfähig sein).

Ich weiß allerdings jetzt nicht genau, wie ich die Funktion/ das Array in soweit anpasse, dass er mir das ä mit einem a etc. ersetzt. Standardmäßig wird es mit einem ae ersetzt, dass soll aber für den einen Subshop nicht gelten.

```
function onRewrite(Enlight_Event_EventArgs $args)
{
    $config = Shopware()->Plugins()->Backend()->PluginRewriteTable()->Config();
    $show = $config->show;
    
    
    if ($config->show == true){
        
    }
    else {
        
    }

```

Muss ich die komplette Funktion ersetzen oder nur das Array?&nbsp;

---

<div class="post-metadata">

**Author:** ![Misengo](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/misengo/32/21446_2.png) [@Misengo](https://forum.shopware.com/u/Misengo)\
**Post date:** [12. Mai 2016 um 12:25 UTC](https://forum.shopware.com/t/hook-in-srewritetable/36613/2 "2016-05-12T12:25:02Z")

</div>

Gelöst: anbei meine Lösung für alle Interessierten

&nbsp;

```
function onRewrite(Enlight_Event_EventArgs $args)
    {
        $config = Shopware()->Plugins()->Backend()->functionRewriteTable()->Config();

        if ($config->show == true){

            $replaceRules = array(
                // Numeric characters
                dein Array
            );

            $path = html_entity_decode($args->getPath());
            $path = str_replace(array_keys($replaceRules), array_values($replaceRules), $path);

            $args->set('path',trim($path, '-'));
        }

    }

```

&nbsp;
