3 Dinge die man mit Kategorien tun kann
Ein paar Code-Schnippsel von Dingen die man im Umgang mit Mage::getModel(‘catalog/category’) gebrauchen kann
1. Die Eltern-Kategorie aufrufen
$_category = Mage::getModel('catalog/category')->load( 1234 );
$_parentcategory = $_category->getParentCategory();
Nützlich um z.B. den Farbcode der Parent-Kategorie zu übernehmen.
2. Das Level der Kategorie ermitteln
Das Level einer Kategorie gibt an wie tief die Kategorie verschachtelt ist oder anders wie viele Oberkategorien sie einschließlich sich selbst hat.
- Hauptkategorie/ Root-Kategorie (Level = 1)
- Bekleidung ( Level = 2 )
- Socken ( Level = 3)
- Hosen ( Level = 3)
- Bekleidung ( Level = 2 )
$_level = $_category->getLevel(); var_dump($_level);
Nützlich um z.B. die dritte Ebene anders darzustellen.
3. Für alle Kategorien Level 1 isAnchor aktivieren
Wenn die Layered-Navigation benutzt werden soll muss bei den Kategorien im jeweiligen Level aktiviert werden das sie als Anker dienen. Das bedeutet soviel wie das, unabhängig vom Filter, die Kategorie aktiv bleibt. Bei vielen vielen Unterkategorien kostet das manuelle Bearbeiten viel zu viel Zeit deswegen geht es mit folgendem Code-Schnipsel deutlich schneller:
// Alle Kategorien abrufen + durchlaufen
$categories = Mage::getModel("catalog/category")->getCollection();
foreach( $categories AS $cat ) {
$cat = Mage::getModel("catalog/category")->load( $cat->getId() );
if ( $cat->getLevel() == 1 ) {
// Nur für Level 1
$cat->setData('is_anchor', 1);
// Nur verändertes Attribute speichern (geht deutlich schneller)
$cat->getResource()->saveAttribute($cat, 'is_anchor' );
}
}
Der Autor
Tobias Vogt arbeitet seit 2008 mit Magento und ist seit 2011 durch Magento zertifizierter Entwickler. Beschäftigt ist er bei der code-x GmbH, einer Agentur für Internet und Marketing aus Paderborn. Er gehört zum Gründer-Team der Webguys und ist seit November 2011 Bachelor of Science (Wirtschaftsinformatik). Sie erreichen Ihn per E-Mail unter tobi@webguys.de.



