Oxid-Funktion überschreiben mit eigenem Modul

Hallo zusammen,

ich möchte gern den Brotkrümel-Pfad “Sie sind hier: Startseite / Produkte / Artikel 1” so überschreiben, dass statt einem / ein > ausgegeben wird.

Das Zeichen wurde leider direkt in die Funktion getHtmlPath() in core/oxcategorylist.php geschrieben, so dass sich hier ein eigenes Modul anbietet.

Die Original-Funktion sieht so aus:


public function getHtmlPath()
{
        $sHtmlCatTree = '';
        $sSep         = '';
        foreach ( $this->_aPath as $oCategory ) {
            $sHtmlCatTree .= " $sSep<a href='".$oCategory->getLink()."'>".$oCategory->oxcategories__oxtitle->value."</a>";
            $sSep = '/ ';
        }
        return $sHtmlCatTree;
}

In meinem Modul will ich natürlich nicht einfach die komplette Funktion noch mal schreiben mit dem Unterschied des gewünschten Zeichens. Mein Ansatz war mit


$replace = str_replace('/ ','> ',$sHtmlCatTree);

das Zeichen auszutauschen. Jedoch weiß ich nicht wie ich die Variable $sHtmlCatTree auslesen und dann wieder überschreibe?

Mein Ansatz war folgender (wahrscheinlich völlig falsch):


class sg_path extends sg_path_parent
{    
    public function getHtmlPath()
    {
		parent::getHtmlPath();				
		$replace = str_replace('/ ','> ',$sHtmlCatTree);
		$sHtmlCatTree = $replace;
		
		return $sHtmlCatTree;
    }
}

Das führt jedenfalls zum Abbruch, da ist irgendwas falsch. Hat jemand einen Tipp?

Danke,
Kathrin

Dafür brauchst du kein Modul. Kannst es gleich im Template _header.tpl vornehmen. Und zwar nach id=“test_link_footer_home” suchen und dann den Bereich folgend anpassen…

<a id="test_link_footer_home" href="[{ oxgetseourl ident=$oViewConf->getHomeLink() }]" rel="nofollow">[{ oxmultilang ident="INC_FOOTER_HOME" }]</a> > [{ $location|replace:"/ ":"> " }]

Mit $location|replace:"/ “:”> " ersetzt du die / in >.

Klasse, das hat ja prima funktioniert :). Vielen Dank!