makinero Posted December 1, 2011 Share Posted December 1, 2011 Bonjour, J'utilise le module product category sur prestashop 1.4 permettant d'afficher une liste des produits de la même catégorie. Quand je vais sur un produit qui est dans plusieurs catégories, le module m'affiche toujours les produits de la catégorie par défaut. J'ai regardé dans le code, il y a ça : /* If the visitor has came to this product by a category, use this one */ if (isset($params['category']->id_category)) $category = $params['category']; /* Else, use the default product category */ else { if (isset($product->id_category_default) AND $product->id_category_default > 1) $category = New Category((int)($product->id_category_default)); } J'ai fait des error_log() dans chaque condition, je tombe toujours dans le else, même si je passe par une catégorie pour voir le produit. Il y a donc un bug. Quelqu'un a-t-il déjà corrigé ça ? Merci d'avance ! Link to comment Share on other sites More sharing options...
doekia Posted December 2, 2011 Share Posted December 2, 2011 J'ai modifié ça pour la version 1.3 d'un client. Le temps de retrouver cette modif dans mes cartons et je poste le code Link to comment Share on other sites More sharing options...
doekia Posted December 2, 2011 Share Posted December 2, 2011 Voici la bête: global $smarty, $cookie; $idProduct = intval(Tools::getValue('id_product')); $product = new Product(intval($idProduct)); if ($product->id) { $category = New Category(intval($product->id_category_default)); // Get infos $sizeOfCategoryProducts = $category->getProducts(intval($cookie->id_lang), 1, 30, NULL, NULL, true); $categoryProducts = $category->getProducts(intval($cookie->id_lang), 1, $sizeOfCategoryProducts); $middlePosition = 0; //remove current product from the list $current_product_key = 0; if (is_array($categoryProducts) AND sizeof($categoryProducts)) { foreach ($categoryProducts as $key => $categoryProduct) { if ($categoryProduct['id_product'] == $idProduct) $current_product_key = $key; $categoryProducts[$key]['isDiscounted'] = 0; if ($categoryProduct['reduction_price'] > 0 OR $categoryProduct['reduction_percent'] > 0) if ( (strtotime($categoryProduct['reduction_to']) == strtotime($categoryProduct['reduction_from']) ) OR ( strtotime($categoryProduct['reduction_to']) < time() AND strtotime($categoryProduct['reduction_from']) > time() ) ) $categoryProducts[$key]['isDiscounted'] = 1; } if (isset($categoryProducts[$current_product_key])) unset($categoryProducts[$current_product_key]); // Get positions $middlePosition = round($sizeOfCategoryProducts / 2, 0); $productPosition = $current_product_key; // If products tab higher than 30, slice it if ($sizeOfCategoryProducts > 30) { $categoryProducts = array_slice($categoryProducts, $middlePosition - 15, 30, true); $middlePosition = 15; } } $smarty->assign(array( 'categoryProducts' => $categoryProducts, 'middlePosition' => $middlePosition )); Le code est peut-etre un poil "outdated" parce que c'était pour une boutique 1.3.1.1 Cordialement, Link to comment Share on other sites More sharing options...
doekia Posted December 2, 2011 Share Posted December 2, 2011 PS à la modération: Peut-être que l'on devrait déplacer ce topic dans "... surcharge et astuces... " Link to comment Share on other sites More sharing options...
shopme Posted April 28, 2012 Share Posted April 28, 2012 Bonjour Quelqu'un a t il la solution pour une version 1.4 xx ? Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now