Wie ändere ich die Vorlage der Kategorie -Seite abhängig von der Kategoriestufe im Code?
Frage
Ich hatte ein Projekt, bei dem es kein Muster gab und alle Änderungen des Kategorienlayouts im Administratorbereich angewendet habe (Catalog->Manage Categories->Custom Design
Tab). Jetzt muss ich Folgendes haben:
Die übergeordnete Kategorie hat ein Netz aller Unterkategorien mit ihren Miniaturansichten und Titeln.
Unterkategorien sehen so ziemlich wie Standards aus - Name, Beschreibung und Produktliste/Grid
Also würde ich das gerne tun und mich fragen, was der richtige Weg ist.
Lösung
In deiner catalog/category/view.phtml
Sie können die Kategoriestufe mit folgendem überprüfen:
$this->getCurrentCategory()->getLevel()
Wenn Sie dies im Backend entscheiden möchten, können Sie eine ganze separate Vorlage erstellen, in der alle Unterkategorien angezeigt werden und Ihren benutzerdefinierten Layout -Updates Folgendes hinzufügen:
<reference name="category.products">
<action method="setTemplate"><template>catalog/category/list.phtml</template></action>
</reference>
Um alle Unterkategorien vorzulesen, können Sie dies tun:
$children = explode(',', $this->getCurrentCategory()->getChildren());
$collection = Mage::getModel('catalog/category')->getCollection()
->addAttributeToSelect('name')
->addAttributeToFilter('entity_id', array(
'in' => $children
))->load();
foreach ($collection as $category) {
echo $category->getName() . '<br />';
}
Andere Tipps
Sie sollten in der Lage sein, einen If -Block oben in der Kategorienansichtsvorlage zu setzen.
Etwas wie:
<?php if ($this->IsTopCategory()) : ?>
// Insert subcategory grid logic here
<?php endif; ?>