Comment afficher la miniature de la catégorie à l'aide de getThumbnailUrl () dans Magento

J'ai essayé de faire fonctionner cela mais je n'ai pas eu de chance. En gros, j'ai besoin d'afficher les catégories de menus principales sur le bloc de contenu et j'ai fait, mais maintenant, j'ai besoin d'afficher la catégorie miniatures à côté du nom de la catégorie dans le bloc de contenu. J'ai créé un nouveau module personnalisé à l'intérieur de l'application / desing / fronend / default / THEME / template / catalogue / navigation / category_listing.php qui ressemble à:

<div class="box layered-nav"> <div class="head"> </div> <div class="border-creator"> <div class="narrow-by"> <dl id="narrow-by-list"> <dd> <ol> <?php foreach ($this->getStoreCategories() as $_category): ?> <dt> <a href="<?php echo $this->getCategoryUrl($_category) ?>"<?php if ($this->isCategoryActive($_category)): ?> class="active"<?php endif ?>><?php echo $this->htmlEscape($_category->getName()) ?> <img src="<?php echo $_category->getThumbnailUrl() ?>" width="100" height="100" style="background:red; height: 100px; width: 100px; display: block" alt="<?php echo $this->htmlEscape($_category->getName()) ?>" /> </a> </dt> <?php endforeach ?> </ol> </dd> </dl><script type="text/javascript">decorateDataList('narrow-by-list')</script> </div> </div> </div> 

Et puis je l'ajoute à l'application / code / core / Mage / Catalogue / modèle / Catégorie.php

  public function getThumbnailUrl() { $url = false; if ($image = $this->getThumbnail()) { $url = Mage::getBaseUrl('media').'catalog/category/'.$image; } return $url; } 

Des idées, pourquoi ne pas tirer et afficher l'image? J'ai déjà ajouté à la catégorie à l'aide du panneau d'administration, j'ai effacé le cache et actualisé les données. Quelques idées?

Magento et Firebug

Utilisez cette fonction ci-dessous pour afficher l'image miniature de la catégorie

  public function getThumbnailImageUrl() { $url = false; if ($image = $this->getThumbnail()) { $url = Mage::getBaseUrl('media').'catalog/category/'.$image; } return $url; } 

Ensuite, en utilisant pour n'importe quelle catégorie:

$ _imageUrl = $ this-> getCurrentCategory () -> getThumbnailImageUrl ()

Vous pouvez obtenir l'image miniature.

Recommandez cet article http://www.douglasradburn.co.uk/getting-category-thumbnail-images-with-magento/

Il n'est pas nécessaire de modifier l'application / code / local / Mage / Catalogue / Modèle / Catégorie.php

Cela peut se faire facilement via cette ligne de code … essayez ceci … Ses Travaux

 $child= Mage::getSingleton('catalog/layer')->getCurrentCategory()->getId(); $imageSrc = Mage::getModel('catalog/category')->load($child)->getThumbnail(); $ThumbnailUrl = Mage::getBaseUrl('media').'catalog/category/'.$imageSrc; echo "<img src='{$ThumbnailUrl}' />"; 

Voici ma solution qui fonctionne sur Magento 1.7.0.2

Créer un fichier sous-catégories.phtml

 Location: app/design/fronend/YOUR-THEME/default/template/catalog/navigation/sub-categories.phtml 

Prenez note de l'endroit où tirer les images miniatures. Vous devrez ajouter un chemin absolu de votre site Web à www.yourwebsitenamehere.com ci-dessous.

Contenu du fichier sous-catégories.phtml:

 <div id="categories"> <?php $_maincategorylisting = $this->getCurrentCategory() ?> <?php $_categories = $this->getCurrentChildCategories() ?> <?php if($_categories->count()): ?> <? foreach($_categories as $_category): ?> <? if($_category->getIsActive()): $cur_category = Mage::getModel('catalog/category')->load($_category->getId()); $layer = Mage::getSingleton('catalog/layer'); $layer->setCurrentCategory($cur_category); $catName = $this->getCurrentCategory()->getName(); if($_imageUrl = !$this->getCurrentCategory()->getThumbnailImageUrl()): ?> <?php /* Default subcategory jpg if no image exists */ ?> <div class="category-box"> <div class="category-image-box"> <a href="<?php echo $this->getCategoryUrl($_category) ?>"> <img src="<?php echo $this->getSkinUrl('images/subcategory-default.jpg') ?>"> </a> </div> <div> <p> <a href="<?php echo $this->getCategoryUrl($_category) ?>"> <?php echo $catName ?></a> </p> </div> </div> <? endif ?> <? if($_imageUrl = $this->getCurrentCategory()->getThumbnailImageUrl()): ?> <?php /* Displays the subcategory image */ ?> <div class="category-box"> <div class="category-image-box"> <a href="<?php echo $this->getCategoryUrl($_category) ?>"> <img src="http://www.yourwebsitenamehere.com/media/catalog/category/<?php echo $_imageUrl ?>"> </a> </div> <div> <p> <a href="<?php echo $this->getCategoryUrl($_category) ?>"> <?php echo $_category->getName() ?></a> </p> </div> </div> <? endif; endif; ?> <? endforeach ?> <?php $layer->setCurrentCategory($_maincategorylisting); ?> <? endif; ?> </div> 

Créez un bloc statique.
1. Titre du bloc: Sub Category Listing
2. Identifiant: sous-catégories
3. Contenu: {{block type="catalog/navigation" template="catalog/navigation/sub-categories.phtml"}}

Créer un fichier Category.php
Copiez l' app/code/core/Mage/Catalog/Model/Category.php dans l' app/code/local/Mage/Catalog/Model/Category.php . Une fois copié, éditez le fichier.

Une fois dans le fichier, regardez près de la ligne 491. Trouver:

 public function getImageUrl() { $url = false; if ($image = $this->getImage()) { $url = Mage::getBaseUrl('media').'catalog/category/'.$image; } return $url; } 

Après cette pâte dans:

 /** * Retrieve thumbnail image URL * * @return string */ public function getThumbnailImageUrl($fullpath = false) { $url = false; if ($image = $this->getThumbnail()) { if ($fullpath == true) { $url = Mage::getBaseUrl('media').'catalog/category/'.$image; } else { $url = $image; } } return $url; } 

Backend Magento.
1. Sélectionnez Catalogue> Gérer les catégories.
2. Créez ou modifiez la catégorie principale qui affiche les miniatures des sous-catégories.
3. Sous l'onglet Paramètres d'affichage
4. Mode d'affichage: bloc statique uniquement
5. Bloc CMS: liste de sous-catégorie
6. Anchor: Non
7. Image miniature: choisissez votre fichier

Si vous ne voyez pas vos modifications, assurez-vous de rincer votre mémoire cache Magento.