Skip to main content

Nombre d'items dans les sous-catégories

More
12 years 3 months ago #158740 by Flooder
Depuis plusieurs mois le nombre d'items de chaque sous-catégorie s'affichait sur ma page d'accueil.

Depuis mon passage à la 2.3.1, les sous-catégories de ma catégorie « vêtements et accessoires » n'affichent plus le nombre d'items dans chacune.

Plutôt, j'obtiens une erreur pour chacune de ces sous-catégories :
« Notice: Undefined property: stdClass::$number_of_products in /home/lapagept/public_html/pt4/components/com_hikashop/views/category/tmpl/listing_div.php on line 210 »

Voyez vous-même : lapagept.com



Toutes les autres catégories affichent normalement leurs sous-catégories et le nombre d'items dans chacune.

Mais qui a-t-il donc de particulier dans ma catégorie « vêtements et accessoires »?

Merci

Hikashop 2.3.1
Joomla 3.3.0
Hikamarket 1.4.1

Please Log in or Create an account to join the conversation.

More
12 years 3 months ago #158750 by Xavier
Bonjour,

Est-ce que tous les listing sont de type "listing_div" ?
Avez vous une surcharge de vue sur listing_div ? Si oui merci de faire un backup et de reset la vue.

Sinon, merci d'essayer de rajouter "$this->assignRef('number_of_products',$number_of_products);" dans "components/com_hikashop/views/category/view.html.php", et remplacer "$number_of_products" par "$this->number_of_products".
The following user(s) said Thank You: Flooder

Please Log in or Create an account to join the conversation.

More
12 years 3 months ago #159052 by Flooder
J'ai identifié le problème.

Je me suis rendu compte que quand je dépubliais une ou deux catégories aléatoires, l'erreur disparaissait.

La ligne qui me cause problème est dans /components/com_hikashop/views/category/view.html.php.

Il s'agit de cette ligne de la fonction _getCount :
Code:
if($level>10) return;

Puisque j'avais plusieurs catégories et que la fonction _getCount est récursive, la variable $level s'incrémente sans cesse et la fonction s'arrête quand elle atteint le level 10.

J'ai changé la ligne pour :
Code:
if($level>15) return;

et ma catégorie « vêtements et accessoires » affiche maintenant le bon nombre d'items pour ses sous-catégories. SAUF QUE...

Please Log in or Create an account to join the conversation.

More
12 years 3 months ago - 12 years 3 months ago #159053 by Flooder
Maintenant il y a un nouveau problème.

Mes deux catégories les plus profondes de mon Hikashop n'affichent pas le bon nombre d'items.

Comme vous pouvez le voir sur cette image, mes sous-catégories « Tampons gros travaux » et « Vêtements vierges » indiquent toutes deux 0 produit.



Les sous-catégories « Tampons gros travaux » et « Vêtements vierges » ont bien des produits, mais dans des sous-catégories :

Produits/produits/Vêtements et accessoires/Vêtements vierges/Manches courtes
Produits/produits/Vêtements et accessoires/Vêtements vierges/Manches longues
Produits/produits/Vêtements et accessoires/Vêtements vierges/Casquettes

« Tampons gros travaux » et « Vêtements vierges » sont mes deux seules sous-catégories de ce niveau contenant elles aussi des sous-catégories.

Hikashop ne semble plus capable de calculer le nombre de produits aussi profondément dans l'arborescence des catégories...

À vous please merci
Last edit: 12 years 3 months ago by Flooder.

Please Log in or Create an account to join the conversation.

More
12 years 3 months ago #159084 by nicolas
Changez la fonction _getCount en :
Code:
function _getCount(&$rows,&$counts,$level=0){ if($level>10) return; $level++; foreach($rows as $k => $row){ $rows[$k]->number_of_products = (int)@$counts[$row->category_id]->number_of_products; if(!empty($rows[$k]->childs)){ $this->_getCount($rows[$k]->childs,$counts,$level); foreach($rows[$k]->childs as $child){ $rows[$k]->number_of_products+=(int)@$child->number_of_products; } } } }
et la fonction _associateChilds en:
Code:
function _associateChilds(&$rows,&$childs,$level=0){ if($level>10) return; $level++; $class = hikashop_get('class.category'); foreach($rows as $k => $row){ $rows[$k]->childs = array(); foreach($childs as $child){ if($child->category_parent_id==$row->category_id){ $class->addAlias($child); $rows[$k]->childs[$child->category_id]=$child; } } $this->_associateChilds($rows[$k]->childs,$childs,$level); } }
dans /components/com_hikashop/views/category/view.html.php et réessayez.
The following user(s) said Thank You: Flooder

Please Log in or Create an account to join the conversation.

More
12 years 3 months ago #159205 by Flooder
Cela semble très bien fonctionner. Merci beaucoup.

Please Log in or Create an account to join the conversation.

Time to create page: 0.173 seconds
Powered by Kunena Forum