custom url slugger für Dumme :)

So 100% steige ich hier Create custom url slugger nicht durch.
Klar - wie ich die XML einbinde oder ein Plugin erstelle, ist kein Hexenwerk - aber ich möchte jetzt nicht alles tauschen oder ersetzen.
Ich möchte einfach nur, dass ein „@“ nicht mehr zu „at“ wird, sondern zu „a“.
Kann mir da bitte jemand Dummie-gerecht die Erleuchtung bringen, wie ich das mit der xml jetzt genau anstellen muss?  Wink

 

Hey Sonic,

so wie ich das sehe, kannst du konkrete Ersetzungsregeln mit dem XML nicht manipulieren. Möglich sind da nur der Regex, der “Sonderzeichen” erkennt, Groß- und Kleinschreibung, Separator und die Regel-Sammlungen. Da jetzt eine eigene Regelsammlung anzulegen ist sicher zu fummelig - entsprechend würde ich an deiner Stelle eher das Beispiel-Plugin am Ende des Dokuments benutzen: https://developers.shopware.com/exampleplugins/SwagCustomSlugService.zip

Dort kannst du in “SlugService.php” Ersetzungen vornehmen BEVOR das Ding an den Slugger weitergereicht wird:

    public function slugify($string, $separator = null)
    {
        $string = html_entity_decode($string);
        
        // HIER DEINE ANPASSUNG
        
        return $this->coreSlugService->slugify($string, $separator);
    }

Das sollte funktionieren - habe es jetzt aber nicht getestet.

 

Besten Gruß

Daniel

2 Likes

Klingt gut - werde ich die Tage mal testen.
*bedankt*

*Krass* ist das einfach  Thumb-Up
Quick & Dirty ohne Config oder so - eine Zeile: 

public function slugify($string, $separator = null)
{
    $string = html_entity_decode($string);
    $string = str_replace("@","a",$string);
		
    return $this->coreSlugService->slugify($string, $separator);
}

Und aus dem @ wurde kein at, sondern ein a
Danke für den Denkanstoß, Daniel