2017-08-06 7 views
0

J'ai ajouté le module "catégories" à la page d'accueil, et maintenant je vois la liste des catégories avec le nombre de produits sur la page d'accueil, mais ne peut pas voir les pouces de la catégorie.Opencart 1.5.5.1 catégories images sur la page d'accueil

dans le fichier: /public_html/catalog/view/theme/MY-THEME/template/module/category.tpl Je trouve autour de la ligne 10:

<a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>

et je pense que je devrais y sommewhere aussi ajoutez quelque chose comme: category ['thumb'] pour afficher l'image avant le nom de la catégorie mais dois-je ajouter quelque chose dans les fichiers du contrôleur, je soppouse oui mais j'ai besoin d'aide ici.

Je pense que je devrais définir $ category ['thumb'] dans le contrôleur mais comment faire?

Répondre

0

Vous avez raison de dire que vous devez éditer le fichier du contrôleur pour ce module, vous devez ajouter le modèle qui obtient l'image pour cette catégorie ainsi que l'image pour toutes les catégories enfants. Donc, il y a deux modifications que vous devez faire, d'abord au fichier du contrôleur

Ouvrez le catalogue/contrôleur/module/category.php & trouver cette ligne:

$this->load->model('catalog/product'); 

Maintenant, vous devez ajouter le modèle afin que vous pouvez obtenir les données d'image de la DB, ajoutez cette ligne ci-dessous il:

$this->load->model('tool/image'); 

trouvent maintenant cette ligne, il sera dans la boucle foreach:

$children = $this->model_catalog_category>getCategories($category['category_id']); 

Ajoutez ce qui suit ci-dessus la ligne:

$category_info = $this->model_catalog_category>getCategory($category['category_id']);  

if ($category_info['image']) { 
    $image = $category_info['image']; 
} else { 
    $image = ''; 
} 

Vous devez aussi le faire pour les catégories enfants, trouver cette ligne dans la boucle suivante foreach:

$product_total = $this->model_catalog_product->getTotalProducts($data); 

Ajouter ceci directement ci-dessous it:

$child_info = $this->model_catalog_category>getCategory($child['category_id']);  

if ($child_info['image']) { 
    $child_image = $child_info['image']; 
} else { 
    $child_image = ''; 
} 

Pour le moment, nous avons maintenant deux variables qui contiennent les chemins d'image: $image et $child_image, ceux-ci doivent être transmis au fichier modèle, vous pouvez le faire en éditant les deux tableaux qui sont créés. Nous allons d'abord faire le tableau enfant car c'est presque directement en dessous de la dernière édition que vous avez faite.Trouver cette ligne dans le tableau children_data:

'href'  => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) 

Ajouter une virgule à la fin de la ligne et collez cette ligne directement en dessous:

'image'  => $child_image 

nous ajoutons maintenant l'image au tableau $category, trouver cette ligne et ajouter une virgule à la fin comme la dernière étape:

'href'  => $this->url->link('product/category', 'path=' . $category['category_id']) 

l'étape suivante est évidente maintenant, ajoutez la ligne suivante directement en dessous:

'image'  => $image 

Maintenant, vous devez noter que le fichier modèle peut accéder à une nouvelle variable image $ lorsque les foreach boucles. Je vous laisserai le reste comme vous le savez et où vous souhaitez afficher l'image. Le code ci-dessous générer une image si elle est utilisée dans la boucle foreach soit la catégorie:

<img src="<?php echo $category['image']; ?> 

Ou cela peut être utilisé pour une catégorie enfant:

<img src="<?php echo $child['image']; ?>