Comment changer modèle de page de la catégorie selon le niveau de la catégorie dans le code?

magento.stackexchange https://magento.stackexchange.com/questions/173

Question

J'ai eu un projet où il n'y avait pas de modèle et j'appliqué tous les changements de catégories dans la zone layout Admin (onglet Catalog->Manage Categories->Custom Design). Maintenant, je dois avoir les éléments suivants:
Catégorie parente aura une grille de toutes les sous-catégories avec leurs vignettes et titres.

Sous-catégories ressemblera à peu près comme ceux par défaut - Nom, description et liste des produits / grille

Je voudrais faire et se demander ce qui est dans le bon sens.

Était-ce utile?

La solution

Dans votre catalog/category/view.phtml vous pouvez vérifier le niveau de la catégorie en utilisant ceci:

$this->getCurrentCategory()->getLevel()

Si vous voulez décider cela dans le back-end vous pouvez faire un modèle séparé tout qui affiche toutes les sous-catégories et ajouter ce qui suit à vos mises à jour de mise en page personnalisées:

<reference name="category.products">
    <action method="setTemplate"><template>catalog/category/list.phtml</template></action>
</reference>

Pour lire toutes les sous-catégories que vous pouvez faire ceci:

$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 />';
}

Autres conseils

Vous devriez être en mesure de mettre un bloc si au sommet du modèle de vue catagory.

Quelque chose comme:

<?php if ($this->IsTopCategory()) : ?>

// Insert subcategory grid logic here

<?php endif; ?>
Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top