Jump to content

[semi-résolu] Blocs (devises et langues) qui n'apparaissent pas


Recommended Posts

Bonjour,

Je réalise ma toute première intégration de PrestaShop, qui me semble un excellent produit, bravo aux dévelopeurs et à la communauté!

Dans ma colonne de gauche, je suis sensé voir les blocs suivants:
Bloc langues v0.1
Bloc Mon compte v1.2
Bloc catégories v1.0
Bloc panier v1.2
Bloc devises v0.1
Bloc informations v1.1
Bloc logo de paiement v0.2

Mais malheureusement je ne vois que
Bloc catégories v1.0
Bloc panier v1.2
Bloc informations v1.1
Bloc logo de paiement v0.2

En d'autres termes les blocs
Bloc langues v0.1
Bloc devises v0.1
ne s'affichent pas...

Ce n'est pas un problème de CSS, il n'y a rien dans le code HTML.

C'est n'est pas un problème d'installation / activation du module, puisque le back-office me dit:
- Bloc langues v0.1 est installé et activé
- Bloc devises v0.1 est installé et activé

J'ai vérifié dans les tables et tous emble OK:

table "ps_hook"

id_hook     name     title     description     position
7     leftColumn     Left column blocks     NULL     1



table "ps_module"

id_module     name     active
11     blockcurrencies     1
13     blocklanguages     1



table "ps_hook_module"

id_module     id_hook     position
13     7     1
15     7     2
10     7     3
9     7     4
11     7     5
12     7     6
17     7     7



table "ps_hook_module_exceptions"

vide, 0 enregistrements



header.tpl

{$HOOK_LEFT_COLUMN}



Une idée, pour faire apparaitre les blocs "langues" et "devises"?

Link to comment
Share on other sites

Bonjour bidochon,

Merci pour votre réponse!

Toutefois, comme on le voit sur l'image annexe, mes blocks en questions ne sont pas dans le Hook "Top" mais dans le Hook "leftColumn" (c'est aussi ce que je voulais montrer par le contenu de mes tables. Et donc, ces blocs devraient être inclus dans le {$HOOK_LEFT_COLUMN} de mon template Smarty, non?

Est-ce un bug?

39132_tBi6DUmsdGGyRaV5Qn0v_t

Link to comment
Share on other sites

Par défaut c'est dans le Top of pages

vous pouvez les y inclure à l'aide de la fonction "greffer un module" (en haut de modules>position), soit ça a été purement et simplement supprimé dans le global.css de votre thème sans chercher plus loin les conséquences, soit ils ont été mal déclarés, avez-vous remplacé les modules d'origine par ceux fournis avec votre thème ? si oui tentez de vérifier leur "hook" ou remettez ceux d'origine, dans ce cas ils se retrouveront dans le top...

Link to comment
Share on other sites

Oui, merci.

Comme on le voit sur mon image jointe, les blocs sont bel et biens greffés dans le leftColumn, non?

Ils devraient donc apparaitre dans ma leftColumn avec les autres blocs (panier, informations, etc.) qui eux apparaissent bien, n'est-ce pas?

Où est le problème, donc?

Link to comment
Share on other sites

Dans l'ancrage (hook) des modules, on ne peut pas placer tous les modules à tous les endroits, cela dépend de la structure de votre thème etc... C’est à dire que si vous greffer un module sur la colonne de droite (qui n’a été prévu de base que pour l’emplacement du haut), il faut développer la fonction PHP dans ce module. Il existe déjà une fonction pour le hook top, il faut en créer une pour le hook colonne de droite.

je cite des réponses déjà données pour vous éviter une recherche.

cordialement.

Link to comment
Share on other sites

Si je comprends bien ce que vous dites, les modules (blocs) "devices" et "langues" ont été prévu pour le hook "top".

Pour qu'ils soient affichable ssur le hook "leftColumn" il faut que je crée la fonction PHP qui permette ceci.

Dans le template de base (1.3) nommé "prestashop" dans quels fichiers dois-je intervenir, où m'inspirer pour créer cette fonction d'affichage?

Encore merci!

Link to comment
Share on other sites

salut,
les fichier php des modules correspondants et pour t'inspirer je pense que tu pourras bien regarder la syntaxe et voir comment sont faites ce genre de déclaration , j'avais déja eu ce genre de PB, moi novice donc je suppose que si tu sais de quoi il s'agit sa pourra aller

Link to comment
Share on other sites

Merci à bidochon et lowes!

J'ai donc édité le fichier module/blockcurrencies.php et ajouté la fonction suivante:

function hookLeftColumn($params)
   {
       global $smarty;
       $currencies = Currency::getCurrencies();
       if (!sizeof($currencies))
           return '';
       $smarty->assign('currencies', $currencies);
       return $this->display(__FILE__, 'blockcurrencies.tpl');
   }


qui est une réplique de la fonction hookTop.

Idem avec le fichier module/blocklanguages.php.

Ca fonctionne, et le problème est réglé.

Toutefois, ça posera des problème au prochain update du core, non?
Puisque je suppose que les modules de base (comme blockcurrencies et blocklanguages) seront écrasés... n'est-ce pas?

N'y a-t-il pas un moyen plus propre de procéder?
Par exemple en surchargeant ces classes au niveau de mon template?

Link to comment
Share on other sites

la surcharge se fait au niveau des fichiers.tpl, pas aux php à ma connaissance, et oui c'est considéré comme une modification du core, donc oui il faudra refaire à chaque mise à jour, par contre si vous êtes en v1.3.7 vous devriez être tranquille un moment je pense, la sortie de la v1.4 se rapprochant à grands pas ça m'étonnerai que les v1.3 évoluent encore.

Link to comment
Share on other sites

  • 6 months later...

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