Jump to content

pb de module, hook et position


Fredj

Recommended Posts

Bonjour,


pour le module catégories, dans le fichier php on trouve:

function hookLeftColumn($params)
{
  global $smarty;
    return $this->display(__FILE__, 'blockunmodule.tpl');
}

function hookRightColumn($params)
{
    return $this->hookLeftColumn($params);
}


autrement dit, le module catégorie est associé par défaut au hook de la colonne de gauche, et si on le met à droite, il sera toujours redirigé vers la colonne de gauche et y sera affiché.

c'est ce que me confirme aussi le tuto pdf de Laurent Raulier sur la créa de modules je cite page 14:


La syntaxe utilisée est ici celle que les utilisateurs de Zend Framework connaissent
surement : la concaténation de hook et nom_du_hook : hookLeftColumn et
hookRightColumn.
Dans ce cas, si on veut « accrocher » un module (sa partie interface visible) à
droite, il est redirigé vers la colonne de gauche... On ne fait pas toujours ce que
l’on veut dans la vie !!!



Or j'ai voulu placer le block categorie à droite via le BO, modules->positions->greffer un module, celui à été dupliqué et placé sur la colonne de droite, normal comme si de rien n'était :gulp:

j'ai du louper quelque chose ou je n'ai pas compris le fonctionnement des deux fonctions hookRightColumn et hookLeftColumn.

merci de m'éclairer la lanterne


Fredj
Link to comment
Share on other sites

Alors...

Prestashop fonctionne comme cela :

Un module a un id, un hook aussi. il existe une table dans la base de donnée (ps_hook_module) qui correspond à l'enregistrement d'un module a un (ou plusieurs) hook, avec sa position.

Ainsi, lorsque tu greffes un module, tu rajoute une ligne à cette table. le module est inscrit dans le hook.


Les fonctions hookxxxx, où xxx est un nom de hook, sont automatiquement appelée par le site. Ainsi, si ton bloc catégorie est inscrit dans le hook de la colonne de gauche, la fonction hookLeftColumn est appelée, et elle renvoie un .tpl avec certaines variables initialisée.


Dans le cas du bloc catégorie, l'affichage dans le module de gauche ou de droite sera le même. Ainsi, plutôt que de dupliquer inutilement la méthode hookLeftColumn pour en faire une hookRightColumn qui fera exactement la même chose, la fonction hookRightColumn renvoi au site ce que renvoi hookLeftColumn.

C'est magique. J'adore.

Ainsi, ça me fait mal de le dire, mais le tuto pdf de Laurent Raulier, qui m'a beaucoup aidé dans mes début, est inexact sur ce point là.
Alors, au lieu de :

La syntaxe utilisée est ici celle que les utilisateurs de Zend Framework connaissent surement : la concaténation de hook et nom_du_hook : hookLeftColumn et hookRightColumn. Dans ce cas, si on veut « accrocher » un module (sa partie interface visible) à droite, il est redirigé vers la colonne de gauche… On ne fait pas toujours ce que l’on veut dans la vie !!!
Moi, je dirais :
La syntaxe utilisée est ici celle que les utilisateurs de Zend Framework connaissent surement : la concaténation de hook et nom_du_hook : hookLeftColumn et hookRightColumn. Dans ce cas, si on veut « accrocher » un module (sa partie interface visible) à droite, il faudra s'assurer que la méthode hookRightColumn est personnalisée. Cependant, si l'affichage proposé par la méthode hookLeftColumn est adaptée à la colonne de gauche, rien ne nous empeche de rediriger la méthode hookRightColumn vers hookLeftColumn. On peux faire ce qu'on veut dans la vie !!!
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...