Jump to content
sangria777

appeler une class existante

Recommended Posts

Bonjour à tous,

 

C'est une demande courante je pense, mais je parviens pas à trouver de réponses sur le forum, j'y suis depuis des heures !!

 

Je voudrais lister les manufacturer dans le header à la manière de manufacturer-list.tpl

 

Il me semble que je dois faire appel à la class manufacturer

 

Comment appelle cette class dans le header.tpl ?

 

Merci pour vos réponses !!

Share this post


Link to post
Share on other sites

Pas de réponse est-ce que m'a demande est claire ? Peut-être n'est-ce pas la bonne méthode ?

Share this post


Link to post
Share on other sites

Bonjour,

Si tu regardes la classe manufacturer, tu as cette fonction :

getManufacturers($get_nb_products = false, $id_lang = 0, $active = true, $p = false,

$n = false, $all_group = false)

qui te retournes un tableau des manufacturers.

Share this post


Link to post
Share on other sites

Merci pour cette réponse !

 

Ce que je veux faire c'est appeler cette fonction dans le header.tpl, et je ne sais pas comment faire !

 

J'ai vu des chose comme ça :

{$manufacturers->getManufacturers(....)}

 

Mais ça ne marche pas !

Est-ce que tu sais comment faire ?

Share this post


Link to post
Share on other sites

Bonjour,

Je ne suis pas spécialiste smarty mais oui c'est ça. Ensuite il te faut faire une boucle foreach. Regardes bien le code, tu devrais trouver ton bonheur.

Share this post


Link to post
Share on other sites

Alala, c'est pas simple pour moi et pourtant j'aimerai vraiment comprendre !!!

 

cette fois ci j'ai une erreur : Fatal error: Call to a member function getManufacturers() on a non-object

 

J'ai fais l'appelle comme ça :

{$manufacturers->getManufacturers(false, 5, true, false, false, false)}

 

Une idée ?

Est-ce que je ne pas faire vant un truc du genre :

$manufacturer=new manufacturer();

Share this post


Link to post
Share on other sites

tu mélanges le smarty et le php. IL est très difficile de savoir ce que tu veux faire et ce que tu fais.

Share this post


Link to post
Share on other sites

Bonjour,

 

Le message d'erreur est explicite, ta variable "$manufacturers" n'existe pas car elle n'est pas initialisée dans le code php.

 

Pour résoudre cela je mettrais en place le fonctionnement suivant :

Override du frontController dans le dossier "Override/classes/" dans le fichier FrontController.php avec le contenu suivant :

 

<?php
class FrontController extends FrontControllerCore
{   
 /**
 * Surcharge du header pour insérer des informations supplémentaires
 */
   public function initHeader() {

    parent::initHeader();

 //Récupération de la liste des manufacturers
 $manufacturersList = Manufacturer::getManufacturers(false, $this->context->language->id);
 //Assignation des valeurs au template
 $this->context->smarty->assign('manufacturersList',$manufacturersList);

   }
}
?>

 

Ensuite dans ton fichier header.tpl tu peux afficher ta liste de la manière suivante :

 

{foreach from=$manufacturersList item=manufacturer}
 {$manufacturer.name}<br />
{/foreach}

Share this post


Link to post
Share on other sites

Bonjour,

 

Après une longue absence...

 

Herve25, je n'ai pas de frontContoller.php dans Override/classes/, est-ce que je dois la créer ?

 

Je suis en version 1.5.4.1, c'est peut-être pour ça ?

 

Merci pour votre aide !

Share this post


Link to post
Share on other sites

Effectivement il faut que tu créé ce nouveau fichier ;-)
Ceci n'est pas lié à ta version de prestashop.

Share this post


Link to post
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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More