Jump to content

module actif sur une page


Recommended Posts

Bonjour,

aucun hook n'est défini pour la page "history.php" alors j'ai mis le code de mon module dans "right column", seulement le problème c'est que le code de mon module est présent sur toutes les pages du site, alors que je veux qu'il ne soit actif que sur la page history.php : comment vous y prendriez-vous ? à part checker l'URL pour voir si elle contient "history.php" mais je trouve ça un peu bancal... prestashop n'a pas prévu ce cas de figure ?

merci d'avance

Link to comment
Share on other sites

C'est pas tant que j'aie besoin d'intervenir en amont, c'est surtoutq ue créer un nouveau hook suppose de modifier le header.php et le history.tpl, chose que je peux faire moi même pour une boutique, mais si je souhaite distribuer très largement mon module, je préfère qu'il soit installable et désinstallable en un clic, puisque la complexité est le frein le plus important dans l'installation d'une nouvelle fonctionnalité...

Link to comment
Share on other sites

Bonjour,

peut-être trop tard, mais pour que ton module soit actif uniquement sur la page history.php c'est très (voir trop) simple.
Dans le BO / modules/ positions. Tu édites ton module et dans le champs "Exceptions" tu y mets le nom de TOUTES les pages (php) où tu veux que ton module n'apparaisse pas.
ex: index.php, product.php, shopping-cart.php. my-account.php.....
De ce fait le module n'apparaitra que dans la page history.php .

J'espère que cela t'aura servi.

bye

Link to comment
Share on other sites

Merci beaucoup !
Fonctionnellement, c'est ce que je recherche, mais est-ce possible de programmer ca dans le module directement, comme paramètres par défaut ? Parce que sur les boutiques qui utiliseront le module, beaucoup risquent de ne pas penser à le faire elle même et les conséquences pourraient être pénibles :/

Link to comment
Share on other sites

Je pense qu'au niveau du fichier php de ton module lors de l'install il doit être possible de faire quelque chose mais là mes compétences s'arrètent...
Par contre j'ai utilisé récement une modif te permettant de creer un hook ou tu veux pour y greffer un module.
Ça fonctionne du tonnerre et ça m'a permis de greffer un module dans le product-list ou par defaut il n'y a pas de hook.
Je te donne la modif - voir si ça peut te permettre de greffer ton module directement dans le history.php.

Modif:

1º/ Dans ta Base de données, il est necessaire de creer un "emplacement" pour ton hook.

Avec phpmyadmin tu affiches la table ps_hook (si ps_ est ton préfix ...)
Là tu ajoutes un enregistrement , et non un champ ou encore moins une table.

Dans id tu mets rien , il sera auto généré
dans name tu mets le nom de ton hook - exemple: monmodule
dans title, encore monmodule
dans description, encore monmodule
position tu mets 1 (mais ça ne sert pas)

2º/ Mettre le fichier function.hook.php ci-joint dans /tools/smarty/plugins

3º/Puis dans le BO de presta tu vas dans -> modules, positions et tu cherche dans la list (jusqu'en bas) le champ que tu as créé dans ta Bdd (ex: monmodule) normalement il doit y être.

4º/ Tu places ce code à l'endroit ou tu veux ton hook :
{hook name='leNomDuHook'}

Puis tu attaches ton module à ce hook et tu devrais le voir dans history.php (à condition qu'il soit prévu - dans le php de l'install - d'être mis dans le centre de ton site et non dans une colonne.
Pour ça je ne pourais pas t'aider.
Mais cette modif est super car tu peux mettre un hook partout ou tu veux - enfin là ou il n'y en as pas.

Voilà pour plus d'infos, jette un oeil sur ce lien.
http://www.prestashop.com/forums/viewthread/39310/developpement_et_modules/un_hook_dans_product_list

sinon bonne chance.

salutations

function.hook.php

Link to comment
Share on other sites

Merci encore, en fait j'avais déjà imaginé cette solution, mais c'est toujours pareil : on s'éloigne de la simplicité du module et on demande au marchand de tripatouiller lui même le code, ses bases de données, ses fichiers, etc. et leur boulot, c'est de vendre leurs produits, pas de se transformer en mécanos du PHP ^^ je crois que je vais devoir programmer un en-tête en fonction de l'URI, dommache :/

Link to comment
Share on other sites

Merci beaucoup !
Fonctionnellement, c'est ce que je recherche, mais est-ce possible de programmer ca dans le module directement, comme paramètres par défaut ? Parce que sur les boutiques qui utiliseront le module, beaucoup risquent de ne pas penser à le faire elle même et les conséquences pourraient être pénibles :/


La soluce donnée par hervehh est top , je l'utilise moi même depuis un bail. D'autant que tu peux toi même installer le plugin àau moment de l'installation du module. Reste le tpl certes mais bon , tu fournis un tpl d'origine modifié et le tout est joué.

Sinon,
pour ajouter les exclusions toi même à partir de l'install et les retirer lors de la desinstall , je te propose de loucher vers les methodes registerExceptions et unregistrerExceptions de la classe module.
Link to comment
Share on other sites

ok pour les méthodes un/registerExceptions mais je comprends pas bien ta réserve sur les .tpl ? Si j'arrive à ajouter les exceptions dans l'__install de mon module, pourquoi devrais je fournir un nouveau .tpl ?

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