Magento: Titel der aktuellen Seite auslesen
Für die Entwicklung eigener Magento-Skins kann es sinnvoll und notwendig werden, den Titel der aktuell dargestellten Seite - egal, ob Kategorie, Produkt oder CMS-Seite - auszulesen und an einer spezifisch festgelegten Stelle zu positionieren. Unter Verwendung der Magento-Registry ist dies einfach, zum Beispiel unter Verwendung folgenden Codes, zu realisieren:
01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| <?php
if (Mage::registry('current_product')) {
echo Mage::registry('current_product')->getName();
} else if (Mage::registry('current_category')) {
echo Mage::registry('current_category')->getName();
} else {
$title = explode("|",$this->getLayout()->getBlock('head')->getTitle());
echo $title[0];
};
?> |
Wenn die momentan gezeigte Seite also eine Produktseite ist, wird auf
Mage::registry('current_product')->getName(); zugegriffen, im Fall einer Kategorieseite ganz analog auf
Mage::registry('current_category')->getName();. Wenn beides nicht zutrifft - im Fall von CMS-Seiten und Steuerungsseiten wie Warenkorb, Login etc. - gehen wir den Umweg über
$this->getLayout()->getBlock('head')->getTitle(), eine Methode, die den Text liefert, der eigentlich dafür gedacht ist, zwischen den
<title>-Tags des ausgelieferten HTML-Dokumentes zu stehen. Wir benötigen davon nur den linken Teil und trennen diesen daher mittels
explode und Zugriff auf den Index 0 des resultierenden Arrays ab.