Jump to content

Recommended Posts

Je viens de mettre à jour en 1.4.6.1, et je n'arrive plus à faire apparaître les produits sur la catégorie home.

Sur les versions précédentes, il suffisait de faire un override sur CategoryController.php pour enlever le test

if ($this->category->id != 1)

Mais j'ai commenté ça sur la nouvelle version, et ça ne fonctionne pas, les produits n'apparaissent toujours pas. Je suppose donc qu'il y a un filtre ailleurs... Une idée d'où je vais trouver ça ?

Link to comment
Share on other sites

Bon, j'ai réussi à rétablir le fonctionnement, mais je ne suis pas sûr de comprendre les raisons.

Pour ceux que ça intéresse, il s'agit donc de pouvoir afficher les produits sur la catégorie "home" ou "accueil". Par défaut, cette page n'affiche que les sous-catégorie, et elle n'est même pas accessible facilement. Mais comme je ne voulais pas passer par le module page d'accueil, qui force à se retaper toute la mise en page si on veut avoir la même apparence que sur les autres catégorie, ben j'ai overridé le test dans CategoryController.

Mais depuis la 1.4.6.1, toujours dans ce CategoryController.php, il y a la fonction productListAssign() qui bloque :


public function productListAssign()
{
$hookExecuted = false;
//Module::hookExec('productListAssign', array('nbProducts' => &$this->nbProducts, 'catProducts' => &$this->cat_products, 'hookExecuted' => &$hookExecuted));
if(!$hookExecuted) // The hook was not executed, standard working
{
self::$smarty->assign('categoryNameComplement', '');
$this->nbProducts = $this->category->getProducts(NULL, NULL, NULL, $this->orderBy, $this->orderWay, true);
$this->pagination((int)$this->nbProducts); // Pagination must be call after "getProducts"
$this->cat_products = $this->category->getProducts((int)(self::$cookie->id_lang), (int)($this->p), (int)($this->n), $this->orderBy, $this->orderWay);
}
else // Hook executed, use the override
$this->pagination((int)$this->nbProducts); // Pagination must be call after "getProducts"
self::$smarty->assign('nb_products', (int)$this->nbProducts);
}

En gros, quand le hook est exécuté, ben les produits ne sont pas appelé sur cette catégorie là. Je n'ai pas réussi à trouver pourquoi, donc j'ai simplement overridé aussi cette fonction (en plus de la fonction process), et j'ai commenté la ligne qui appelle hookExec. Du coup, ça refonctionne, et ça ne semble pas gêner le reste du site.

hth

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...