Nombre d'items dans les sous-catégories

  • Posts: 263
  • Thank you received: 11
10 years 3 months ago #158740

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

Attachments:

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

  • Posts: 13201
  • Thank you received: 2322
10 years 3 months ago #158750

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.

  • Posts: 263
  • Thank you received: 11
10 years 3 months ago #159052

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 :

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 :
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.

  • Posts: 263
  • Thank you received: 11
10 years 3 months ago #159053

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

Attachments:
Last edit: 10 years 3 months ago by Flooder.

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

  • Posts: 82565
  • Thank you received: 13288
  • MODERATOR
10 years 3 months ago #159084

Changez la fonction _getCount en :

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:
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.

  • Posts: 263
  • Thank you received: 11
10 years 3 months ago #159205

Cela semble très bien fonctionner. Merci beaucoup.

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

Time to create page: 0.087 seconds
Powered by Kunena Forum