2010-09-08 2 views
2

Disons que j'ai deux categegories, A et B.Comment afficher la disposition de conception personnalisée de catégorie dans la page de vue du produit?

Je mis A à utiliser « layout_a » sur Catalogue -> Catalogue Catégories -> Cliquez sur une catégorie -> cliquez sur l'onglet conception personnalisée

Je mets B utilisez 'layout_b' sur Catalogue -> Catégories Catalogue -> Cliquez sur une catégorie -> cliquez sur l'onglet design personnalisé

Lorsque je visite les catégories A et B, ils affichent les produits en utilisant leur propre disposition que je définis sur le panneau d'administration. Lorsque je clique sur un élément de la page de liste des produits, la page de vue du produit n'utilise pas de conception personnalisée.

Comment puis-je appliquer la page de vue du produit pour utiliser le design personnalisé de sa catégorie?

+1

Pensez-vous dire « Je mets B utiliser « layout_b 'sur ... ":) –

Répondre

4

J'ai trouvé la réponse par moi-même.

  1. Ouvrir contrôleur produit situé dans /app/code/Mage/Catalog/controllers/ProductController.php

  2. ajouter le code suivant dans la méthode _initProductLayout

    $ update-> addHandle ('CATEGORY _'. $ product-> getCategoryId());

  3. mise en page Ouvrir catalogue xml situé dans /app/design/frontend/default/default/layout/catalog.xml

  4. ajouter

<CATEGORY_"your category id"> 
    <reference name="root"> 
    <action method="setTemplate"><template>yourtemplate here</template></action> 
    </reference> 
</CATEGORY_"your category id"> 
0

Vous pouvez appliquer les mises à jour sur le Custom Design Catalogue des produits> Gérer les produits> Conception et appliquer ensuite selon les catégories

Est-ce que réaliser ce que vous avez besoin?

+1

Presque, mais pas pefect. Je veux appliquer un design personnalisé selon les catégories seulement. Si je définis un design personnalisé sur le catalogue de produits-> manage products-> design, le produit va utiliser une mise en page que j'ai définie. Disons que j'ai un produit qui appartient aux catégories A et B. Si je définis la mise en page B pour le produit, comment puis-je utiliser la mise en page A lorsqu'un client clique sur catégorie-> le produit? – Moon

6

Dans les versions actuelles de Magento, il existe une autre façon de le faire sans changer de noyau code. Disons que vous avez un modèle personnalisé pour l'affichage du produit d'une catégorie. Dans Admin, accédez à Catalogue-> Catégories-> Gérer les catégories et sélectionnez la catégorie à laquelle vous souhaitez appliquer le modèle de produit modifié. Changer "Appliquer aux produits" à Oui et mettre ce qui suit dans la mise à jour de mise en page personnalisée;

<reference name="product.info"> 
    <action method="setTemplate"> <template>catalog/product/NEW_VIEW.phtml</template></action> 
</reference> 

Où NEW_VIEW est le nom du nouveau modèle que vous souhaitez utiliser. Si vous avez des sous-catégories, vous devrez peut-être paramétrer le paramètre «Utiliser les paramètres de la catégorie parente» sur Oui pour qu'il soit diffusé.

0

Créez un attribut avec le type de liste déroulante et le code d'attribut name 'which_category'. Sur l'onglet Options Renseigner 'category_a' et 'category_b'

Créer deux fichiers dans/app/design/frontend/default/YourTemp/modèle/catalogue/produit/

permet de dire: view_cat_a.phtml et view_cat_b .phtml

Vous pouvez concevoir votre page de vue de produit catégorie spécifique en fonction de view.phtml.

Changement view.phtml à:

<?php 
$_helper = $this->helper('catalog/output'); 
$_product = $this->getProduct(); 
    if ($_product->getAttributeText('which_category') == category_a) { 
     include('view_cat_a.phtml'); 
    } else { 
     include('view_cat_b.phtml'); 
    } 

Lorsque vous créez un produit, vous pouvez choisir la catégorie de l'attribut (les définir dans attribute_set)