Der heutige Blogbeitrag dreht sich seit langer Zeit mal wieder um das Shopsystem Magento. Magento bietet im Standard bereits eine Breadcrumb, oder zu Deutsch Brotkrümelnavigation, an. Der Beginn des Pfades ist allerdings nicht individuell gestaltet und per Default mit dem String „Home“ und Verweis auf die Startseite belegt. Wie kann also der „Home“ String durch einen eigenen Begriff ersetzt werden?

Das HTML-Markup der Breadcrumb befindet sich in eurem Template Verzeichnis unter /app/design/frontend/default/__theme__/template/page/html/ in der Datei breadcrumbs.html. Falls die Datei nicht in dem genannten Verzeichnis liegt, solltet ihr diese 1:1 aus dem Verzeichnis /app/design/frontend/base/default/template/page/html/ kopieren.

Die Datei sieht im Standard folgendermaßen aus:

<?php if($crumbs && is_array($crumbs)): ?>
<div class="breadcrumbs">
    <ul>
        <?php foreach($crumbs as $_crumbName=>$_crumbInfo): ?>
            <li class="<?php echo $_crumbName ?>">
            <?php if($_crumbInfo['link']): ?>
                <a href="<?php echo $_crumbInfo['link'] ?>" title="<?php echo $this->htmlEscape($_crumbInfo['title']) ?>"><?php echo $this->htmlEscape($_crumbInfo['label']) ?></a>
            <?php elseif($_crumbInfo['last']): ?>
                <strong><?php echo $this->htmlEscape($_crumbInfo['label']) ?></strong>
            <?php else: ?>
                <?php echo $this->htmlEscape($_crumbInfo['label']) ?>
            <?php endif; ?>
            <?php if(!$_crumbInfo['last']): ?>
                <span>/ </span>
            <?php endif; ?>
            </li>
        <?php endforeach; ?>
    </ul>
</div>
<?php endif; ?>

Der erste Part der Breadcrumb wird so aktuell nicht berücksichtigt bzw. gesondert behandelt, daher muss das Template etwas angepasst werden, so dass die Datei folgenden Inhalt hat:

<?php if($crumbs && is_array($crumbs)): ?>
<div class="breadcrumbs">
    <ul>
        <?php foreach($crumbs as $_crumbName=>$_crumbInfo): ?>
            <li class="<?php echo $_crumbName ?>">
            <?php if($_crumbName == 'home'): ?>
            	<a href="<?php echo $_crumbInfo['link'] ?>" title="Individueller Home String">Individueller Home String</a>	
            <?php elseif($_crumbInfo['link']): ?>
                <a href="<?php echo $_crumbInfo['link'] ?>" title="<?php echo $this->htmlEscape($_crumbInfo['title']) ?>"><?php echo $this->htmlEscape($_crumbInfo['label']) ?></a>
            <?php elseif($_crumbInfo['last']): ?>
                <strong><?php echo $this->htmlEscape($_crumbInfo['label']) ?></strong>
            <?php else: ?>
                <?php echo $this->htmlEscape($_crumbInfo['label']) ?>
            <?php endif; ?>
            <?php if(!$_crumbInfo['last']): ?>
                <span>/ </span>
            <?php endif; ?>
            </li>
        <?php endforeach; ?>
    </ul>
</div>
<?php endif; ?>

Hinzu gekommen sind zwei Zeilen. In Zeile 6 wurde die IF-Bedingung geändert bzw. die vorhandene in einen ELSEIF-Zweig geschoben. In der neuen IF-Bedingung wird nun lediglich abgefragt, ob der aktuelle Link der Verweis auf die Startseite ist.

Anschließend wird der Link entsprechend der eigenen Wünsche angepasst. Der Verweis auf die Startseite bleibt so aber bestehen, kann aber natürlich auch auf eine individuelle Startseite zeigen.