THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour tout le monde.
Je rencontre un problème depuis un bon moment maintenant. Bref, je compte pour l'instant désactiver le module de livraison sur mon site parce que la livraison se fera dans une ville mais seulement je n'y arrive pas. Voici quelques manipulations que j'ai faites pour y parvenir:
--> modification du formulaire OrderDelivery.php où j'ai mis en commentaire le champ delivery-module et toutes ses contraintes

R1WfyTV.png

--> modification de la page order-delivery.html

3v8ozwu.png

J'arrive finalement à ceci

m7FW5MZ.png

Je me remets à vos humbles avis et suggestions pour résourdre ce problème. Merci d'avance

Offline


{form_field field="delivery_module"} 
...
{/form_field}

avec la balise form_field tu fait comme si tu utilisais un champs du formulaire or tu l'as supprimer (capture 1) d'où l'erreur.
Soit tu supprimer la balise
Soit tu redefinis le champs dans le formulaire (tu peux juste mettre required a false).

Offline


Il ne faut pas modifier les fichiers du core, tu te coupes des mises à jour futures.

Au lieu de modifier ce fichier tu peux réaliser un petit module qui utilise un event listener sur l'event TheliaEvents::FORM_AFTER_BUILD . ".thelia_order_delivery" , et qui supprime le champ, ou modifie la contrainte de vérification du champ. Exemple dans ce module qui renforce la sécurité du mot de passe des clients. L'event listener modifie la contrainte du champ "password" pour utiliser une méthode spécifique : https://github.com/roadster31/BetterPas … er.php#L60


OpenStudio Toulouse

Offline


timmy wrote:
{form_field field="delivery_module"} 
...
{/form_field}

avec la balise form_field tu fait comme si tu utilisais un champs du formulaire or tu l'as supprimer (capture 1) d'où l'erreur.
Soit tu supprimer la balise
Soit tu redefinis le champs dans le formulaire (tu peux juste mettre required a false).

Déjà je vous remercie pour votre prompte réaction. J'ai bel et bien essayé toutes vos propositions mais toujours rien. Merci pour votre contribution, je vous en dirai plus par la suite.

Offline


roadster31 wrote:

Il ne faut pas modifier les fichiers du core, tu te coupes des mises à jour futures.

Au lieu de modifier ce fichier tu peux réaliser un petit module qui utilise un event listener sur l'event TheliaEvents::FORM_AFTER_BUILD . ".thelia_order_delivery" , et qui supprime le champ, ou modifie la contrainte de vérification du champ. Exemple dans ce module qui renforce la sécurité du mot de passe des clients. L'event listener modifie la contrainte du champ "password" pour utiliser une méthode spécifique : https://github.com/roadster31/BetterPas … er.php#L60

Merci pour votre suggestion. J'exploiterai toutes ces précieuses informations. Je vous en dis plus par la suite

Offline


Je me permets de revenir sur ce sujet parce que le problème n'est toujours pas résolu. En prenant en considération la suggestion de @ROADSTER31, à qui je redis merci, j'ai essayé de comprendre son exemple mais pour être honnête je n'ai jamais réalisé un module et donc j'ai décidé de me documenter. Malheureusement je n'ai rien trouvé concernant la réalisation d'un module sur thelia 2. Et là, j'avoue que ça devient compliqué pour moi c'est pourquoi je me tourne à nouveau vers vous. Je compte sur votre bonne compréhension et votre soutien. Merci d'avance!

Offline


Il y a de la documentation sur la réalisation les modules ici : http://doc.thelia.net/en/documentation/ … index.html


OpenStudio Toulouse

Offline


roadster31 wrote:

Il y a de la documentation sur la réalisation les modules ici : http://doc.thelia.net/en/documentation/ … index.html

Ok merci... je me penche dessus immédiatement

Offline


Bonjour @ROADSTER31 et tous ceux qui suivent cette discussion , j'ai pu générer avec succès un module grâce à la commande $ php Thelia module:generate ModuleName. En ce qui concerne sa configuration pour résoudre mon problème, Je veux savoir svp, est ce que je dois juste me contenter de créer et coder le fichier FormHandler.php dans le répertoire Evenlisteners comme dans l'exemple ou alors je dois créer exactement tous les répertoires et fichiers depuis la racine toujours en suivant l'exemple depuis sa racine?

P.S: Pour rappel, je souhaite, dans le cadre d'un projet de vente dans une zone bien définie, contourner le mode de livraison qui m'est imposé à la base sur thélia (cf premier message de la discussion pour plus de détails). Ainsi,  pour bien faire les choses, @ROADSTER31 m'a suggéré de réaliser un module qui lèvera cette contrainte c'est justement ce que je m’attelle à réaliser maintenant.

Offline


Tu as juste besoin d'un event listener qui s'abonne a l'évènement TheliaEvents::FORM_AFTER_BUILD . ".thelia.order.delivery"

Encore une fois, inspire toi du module BetterPassword, qui fait quelque chose de très proche : https://github.com/roadster31/BetterPas … er.php#L64

Typiquement, tu feras un $formBuilder->remove('delivery-module');


OpenStudio Toulouse