Jump to content

Hook displayHome avec Bloc Promotions [Résolu]


Recommended Posts

Bonjour,

J'essaye sans fin d'accrocher le module bloc promotions sur le hook displayHome, sans réussite, j'appelle alors à l'aide ahah.

J'ai déjà essayé de dupliquer les fonctions de base pour l'affichage des hooks displayHomeTab et displayHomeTabContent sans résultat positif.

Si quelqu'un connait le code à mettre dans cette fonction pour afficher les produits soldés dans le displayHome j'en serais ravi ! :D

 

Merci d'avance pour votre aide.

 

Edit : Pour l'instant j'ai fais ça :

 

    public function hookDisplayHome($params)
    {
        return $this->hookDisplayHomeTabContent($params);
    }
 

Mais, j'obtiens juste la réponse d'erreur de la fonction hookDisplayHomeTabContent c'est à dire aucun produits en promotions

Alors qu'il y a des produits en promo et que cette fonction fonctionne car elle est en ce moment présente sur ma home page T_T

Edited by niceteamplay (see edit history)
Link to comment
Share on other sites

Merci pour votre réponse!

 

Elle fait ça :

 

public function hookDisplayHomeTabContent($params)
    {
        if (Configuration::get('PS_CATALOG_MODE'))
            return;

        if (!$this->isCached('blockspecials-home.tpl', $this->getCacheId('blockspecials-home')))
        {
            $this->smarty->assign(array(
                'specials' => BlockSpecials::$cache_specials,
                'homeSize' => Image::getSize(ImageType::getFormatedName('home'))
            ));
        }

        if (BlockSpecials::$cache_specials === false)
            return false;

        return $this->display(__FILE__, 'blockspecials-home.tpl', $this->getCacheId('blockspecials-home'));
    }

 

J'ai essayé avec la fonction de l'autre hook aussi

 

    public function hookDisplayHomeTab($params)
    {
        if (Configuration::get('PS_CATALOG_MODE'))
            return;

        if (!$this->isCached('tab.tpl', $this->getCacheId('blockspecials-tab')))
            BlockSpecials::$cache_specials = Product::getPricesDrop((int)$params['cookie']->id_lang, 0, Configuration::get('BLOCKSPECIALS_SPECIALS_NBR'));

        if (BlockSpecials::$cache_specials === false)
            return false;

        return $this->display(__FILE__, 'tab.tpl', $this->getCacheId('blockspecials-tab'));
    }

 

mais celle ci me donne aucun affichage donc je pense que la hookDisplayHomeTabContent est plus proche du résultat que hookDisplayHomeTab

Edited by niceteamplay (see edit history)
Link to comment
Share on other sites

Oui il est déjà ajouté dans la BO car sur ma home page dans le hook displayHome j'ai une erreur "Aucun produit en promotion pour le moment".

 

Alors que juste au dessus dans le hookDisplayHomeTabContent j'ai bien l'affichage de mes produits soldés.

 

C'est pour ça que je trouve étrange le fait que ça ne fonctionne pas dans le hookDisplayHome et que je recherche de l'aide :/

 

Encore merci pour votre réponse.

Edited by niceteamplay (see edit history)
Link to comment
Share on other sites

Bonjour,

Merci de m'aider à résoudre ce problème c'est vraiment sympa et désolé pour cette réponse tardive je n'ai pas pu retourner sur le pc avant ce matin,

 

J'ai effectué le test, ça fonctionne bien (j'ai bien l'affichage du H1 sur ma homepage à l'endroit souhaité) donc le module se place dans le bon hook et l'affichage est possible mais impossible d'avoir mes produits.

Edited by niceteamplay (see edit history)
Link to comment
Share on other sites

J'ai trouvé une solution mais .... pas terrible pour l'affichage 

 

public function hookDisplayHome($params)
{
return $this->hookRightColumn($params);
 
}
 
Je retourne une autre fonction qui affiche aussi les produits en promo .... et ça fonctionne je comprends toujours pas pourquoi l'affichage de l'autre fonction ne fonctionne pas je vais adapter le css avec le hookrightColumn même si je suis vraiment dessus de pas pouvoir utiliser l'autre fonction (hookDisplayHomeTabContent) si quelqu'un à une idée de pourquoi ça ne fonctionne pas avec la fonction hookDisplayHomeTabContent je suis toujours preneur... 
 
edit : voici la fonction que j'utilise :
 
if (Configuration::get('PS_CATALOG_MODE'))
return;
 
// We need to create multiple caches because the products are sorted randomly
$random = date('Ymd').'|'.round(rand(1, max(Configuration::get('BLOCKSPECIALS_NB_CACHES'), 1)));
 
if (!Configuration::get('BLOCKSPECIALS_NB_CACHES') || !$this->isCached('blockspecials.tpl', $this->getCacheId('blockspecials|'.$random)))
{
if (!($special = Product::getRandomSpecial((int)$params['cookie']->id_lang)) && !Configuration::get('PS_BLOCK_SPECIALS_DISPLAY'))
return;
 
$this->smarty->assign(array(
'special' => $special,
'priceWithoutReduction_tax_excl' => Tools::ps_round($special['price_without_reduction'], 2),
'mediumSize' => Image::getSize(ImageType::getFormatedName('medium')),
));
}
 
return $this->display(__FILE__, 'blockspecials.tpl', (Configuration::get('BLOCKSPECIALS_NB_CACHES') ? $this->getCacheId('blockspecials|'.$random) : null));
 
Elle prend aléatoirement un produit je ne suis pas assez bon en php/prestashop pour modifier ce code de façon à ce qu'il prenne tous les produit (bien sur j'ai envie de copier le code la fonction displayHomeTabContent car le code contient l'affichage que je recherche mais ça fonctionne pas :(
 
cdlt,
NTP
Edited by niceteamplay (see edit history)
Link to comment
Share on other sites

Désolé pour cette réponse très tardive je pensais avoir répondu le jour même...

 

Finalement j'ai abandonné l'idée de déplacer ce module et j'ai déplacé l'autre module qui ne me convenais pas dans le hook au dessus, ça a fonctionné du premier coup avec la fonction

 

   public function hookDisplayHome($params)
    {
        return $this->hookDisplayHomeTabContent($params);
    }

 

Mon problème est donc résolu, mais je n'ai tout de même pas réussi à déplacer ce fichu module blockspeacials, peut importe, le résultat attendu est là c'est ce qui compte.

 

Cordialement,

Je vous remercie fortement pour votre aide!

NTP.

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