Jump to content

Afficher les produits d'une catégorie ?


Recommended Posts

Bonjour,

 

je recherche la fonction qui appelle la liste des produits d'une catégorie !

 

Exemple : la "fonction"

Product::getPricesDrop

appelle les produits en promotions, j'aimerais remplacer ce code par la liste des produits d'une catégorie, produit de l'accueil par exemple ou l'ID d'une autre catégorie.

 

Il y a peut-être une liste quelque part, qui informe les développeurs de toutes les variables et fonctions standards de Prestashop ?

 

:huh:

Link to comment
Share on other sites

  • 3 weeks later...

Dans category.php :

 

/**
  * Return current category products
  *
  * @param integer $id_lang Language ID
  * @param integer $p Page number
  * @param integer $n Number of products per page
  * @param boolean $getTotal return the number of results instead of the results themself
  * @param boolean $active return only active products
  * @param boolean $random active a random filter for returned products
  * @param int $randomNumberProducts number of products to return if random is activated
  * @param boolean $checkAccess set to false to return all products (even if customer hasn't access)
  * @return mixed Products or number of products
  */
public function getProducts($id_lang, $p, $n, $orderBy = NULL, $orderWay = NULL, $getTotal = false, $active = true, $random = false, $randomNumberProducts = 1, $checkAccess = true)
{

Link to comment
Share on other sites

  • 3 weeks later...

Bonjour,

 

Si le but est de changer sur la page d'accueil les produits affichés dans le bloque produit phare. Alors allez dans le répertoire

"ma_boutique/modules/homefeatured" et modifiez le fichier homefeatured.php comme suit en changeant le numero de catégorie en rouge:

 

function hookHome($params)

{

global $smarty;

$category = new Category(1, Configuration::get('PS_LANG_DEFAULT'));

$nb = (int)(Configuration::get('HOME_FEATURED_NBR'));

$products = $category->getProducts((int)($params['cookie']->id_lang), 1, ($nb ? $nb : 10));

$smarty->assign(array(

'products' => $products,

'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'),

'homeSize' => Image::getSize('home')));

return $this->display(__FILE__, 'homefeatured.tpl');

}

 

Sinon pour tous autres developpement vous pouvez récupèrer les produits d'une catégories avec les lignes suivante:

$category = new Category(1, Configuration::get('PS_LANG_DEFAULT'));

$nb = 100; //nombre de produits retourné

$products = $category->getProducts((int)($params['cookie']->id_lang), 1, ($nb ? $nb : 10));

 

Pour information je me ferais une joie de vous aider à personnaliser votre boutique. Mes tarifs sont raisonnables n'hésitez pas à me contacter par le biais de ma signature.

 

Cordialement G. PREVEAUX

  • Like 1
Link to comment
Share on other sites

Bonjour,

 

Les 2 prix sont affichés clairement HT=TTC et j'ai rajouté la phrase obligatoire pour les autoentrepreneurs.

Je ne vois pas comment je peux faire les choses plus clairement.

impc_tva.jpg

 

Je pense faire un peu plus que de la pub pour moi car ici comme ailleur je donne vraiment les solutions.

 

Cordialement G. PREVEAUX

Link to comment
Share on other sites

Ok c'est bien sur le cas sur mes factures. Je trouve par contre que l'affichage sur mon site justement ne sème pas le doute.

 

Merci pour tes infos mes nous devrions finir cette convertion en MP car ici ce n'est pas le sujet.

 

Cordialement G. PREVEAUX

Link to comment
Share on other sites

Et bien, c'est un règlement de compte à OK CORAL ici !

 

Merci de ton aide xueid89 ! Je trouve que coeos n'est pas très correcte avec toi.

 

Il est présent sur le forum juste pour agresser les personnes qui apporte une assistance gratuite et un partage de connaissance ?

 

coeos, je pense que tu as une vu de l'open source un peu trop,... je ne sais quoi en fait !!!

 

Mais il semble que l’esprit d'entraide n'est pas là ! C'est pourtant le sens de se forum non ? Et ton agression n'a rien à voir avec le sujet de ce post.

 

Pour reprendre le sujet, pour ma part il m’intéresse de savoir comment appeler les produits d'une catégorie pour modifier le module gratuit "blockspecialscarroussel" et d'y afficher la liste des produits d'une catégorie, l'ID 3 par exemple.

 

J'ai essayé d’insérer ton code xueid89, mais il ne doit pas être adapté !

 

J'ai fais ça :

function hookRightColumn($params)
{
 global $smarty, $cookie;
			$catproducts = new Category(1, Configuration::get('PS_LANG_DEFAULT'));
$nb = 100; //nombre de produits retourné
$products = $catproducts->getProducts((int)($params['cookie']->id_lang), 1, ($nb ? $nb : 10));
			$new_product = array();
 if ($catproducts)
  foreach ($catproducts AS $CProduct)
$new_product[] = $CProduct;
 $smarty->assign(array(
				'version' => substr(_PS_VERSION_, 2, 1),
				'timeEffet' => $this->timeEffet,
				'timeTrans' => $this->timeTrans,
				'catlistproducts' => $new_product));

 if($catproducts  || !$this->disapear)
				return $this->display(__FILE__, 'blockcatcarroussel.tpl');
			else
				return '';
}

 

C'est pas joli ! post-296958-0-39317000-1321553272_thumb.jpg

Link to comment
Share on other sites

Frank tu es à coté de la plaque et je vais t'y laisser, je suis depuis un bail sur le forum, ce qui n'est pas ton cas, et moi j'aide les gens ce qui n'est pas ton cas, pour les prix à afficher HT et pas TTC ce n'est pas moi qui fais les lois.

 

 

"juste pour agresser les personnes qui apporte une assistance gratuite " j'agresse qui ?

 

A mon avis le type qui agresse les autres c'est toi, je vous ai aiguillé sur la fonction à utiliser (getProducts) et j'ai signalé à xueid89 qu'il ne respectait pas la loi en affichant les prix ttc... mais effectivement mon action est de l'agression pure et dure

Link to comment
Share on other sites

  • 3 months later...

function hookRightColumn($params)
{
 global $smarty, $cookie;
			$catproducts = new Category(1, Configuration::get('PS_LANG_DEFAULT'));
$nb = 100; //nombre de produits retourné
$products = $catproducts->getProducts((int)($params['cookie']->id_lang), 1, ($nb ? $nb : 10));
			$new_product = array();
 if ($catproducts)
  foreach ($catproducts AS $CProduct)
$new_product[] = $CProduct;

 

C'est pas joli ! post-296958-0-39317000-1321553272_thumb.jpg

 

Ton problème est dans le code ci-dessus :

Tu parcours $catproducts : foreach ($catproducts AS $CProduct)

Alors ques tes produits sont dans $products :

$products = $catproducts->getProducts((int)($params['cookie']->id_lang), 1, ($nb ? $nb : 10));

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