2010-01-05 4 views
0

J'utilise cette extension dans mon magasin de Magento: http://www.magentocommerce.com/extension/reviews/module/608/p/2/Magento Store - Extension

J'utilise ce bloc pour appeler l'extension à la page A: {{type bloc = "mostviewed/list" name = » home.mostviewed1.list "alias =" product_homepage "template =" catalogue/produit/top_10_full.phtml "}}

Je voudrais également appeler une version modifiée de ce bloc et le placer à la page B. Comment puis-je fais ceci. Si je modifie le code, il le modifie à la fois pour la page A et B. Comment puis-je avoir des versions légèrement différentes de la même extension. J'ai pensé à le copier mais je ne sais pas quoi changer pour pouvoir appeler la version copiée avec un nom de bloc différent.

Ou est-il possible de renvoyer un paramètre lors de l'appel de l'extension. Par exemple, c'est le morceau de code de l'extension qui devra varier sur chaque page:

$storeId = Mage::app()->getStore()->getStoreId(); 
$category = Mage::getModel('catalog/category')->load('10'); //THIS IS THE CATEGORY ID TO DISPLAY - PUT CAT ID IN HERE 
$this->setStoreId($storeId); 

page A la CategoryID devrait être 10 et sur la page B devrait être 11.

Merci!

Répondre

1

Vous pouvez ajouter un paramètre à l'appel du bloc.
Par exemple:

{{ block type="mostviewed/list" name="home.mostviewed2.list" alias="product_homepage_B" template="catalog/product/top_10_full_B.phtml" cat="10" }} 

Vous pouvez alors obtenir ce paramètre dans le modèle avec

$categoryID = $this->getCat(); 

Ensuite, lorsque vous chargez la catégorie, utilisez

$category = Mage::getModel('catalog/category')->load($categoryID); 

un caveat - Je J'ai utilisé cette méthode dans le code de bloc. Ma raison me dit que cela devrait aussi fonctionner dans le code du template. Si ce n'est pas le cas, c'est le premier endroit où je chercherais.

Espérons que cela aide.

+0

fonctionnait parfaitement !! Merci! – a1anm

0

Je pense que pour cette version modifiée, vous aurez le même nom de la page i. e. top_10_full.phtml donc copiez le contenu de ce fichier et faites un autre fichier avec un nom différent et appelez ce fichier dans la page B.

Je ne sais pas cela vous sera utile. Si ce n'est pas utile, ignorez-le.

+0

Le problème est que la page B doit utiliser une version modifiée de l'extension. Cela entraînerait les deux pages utilisant la même extension. – a1anm

0

Si le code que vous avez posté est en fait dans un fichier phtml, vous pouvez en faire une copie et l'appeler top_10_full_B.phtml par exemple. Changez ensuite l'identifiant de catégorie dans le nouveau fichier en 11 et à la page B, vous pouvez ensuite appeler ce bloc en utilisant. {{block type = "mostviewed/list" nom = "home.mostviewed2.list" alias = "produit_homepage_B" template = "catalogue/produit/top_10_full_B.phtml"}}. Le nom et l'alias sont changés pour les garder uniques, normalement pas strictement nécessaires mais toujours une bonne chose à faire pour éviter les conflits. Et bien sûr, le modèle appelé a été modifié pour utiliser le nouveau.

N'a pas jeté un oeil à l'extension, mais cela devrait fonctionner autant que je sache à partir de votre message.

+0

Le code que j'ai posté ne provient pas d'un fichier phtml. C'est à partir d'un fichier php avec le chemin de app/code/local/Luxe/MostViewed/Block/List.php – a1anm